diff --git a/index.html b/index.html index 7e70c2ae326..659e12573c2 100644 --- a/index.html +++ b/index.html @@ -8,11 +8,11 @@ - +
- + diff --git a/main/404.html b/main/404.html index 50ab3d11a34..fc74e3c9acf 100644 --- a/main/404.html +++ b/main/404.html @@ -8,11 +8,11 @@ - +
Error 404 : You seem lost fellow cosmonaut,
Let us take you Back to Home
- + diff --git a/main/DOCS_README.html b/main/DOCS_README.html index ead947d9845..bd73ee7712b 100644 --- a/main/DOCS_README.html +++ b/main/DOCS_README.html @@ -8,7 +8,7 @@ - + @@ -36,6 +36,6 @@ Copy make install
Found an Issue?
Help us improve this page by suggesting edits on GitHub.
- + diff --git a/main/architecture/PROCESS.html b/main/architecture/PROCESS.html index 2e80edb18f4..042141f480f 100644 --- a/main/architecture/PROCESS.html +++ b/main/architecture/PROCESS.html @@ -8,7 +8,7 @@ - + @@ -24,6 +24,6 @@ C --> E[ACCEPTED or REJECTED] E --> F[SUPERSEDED by ADR-xxx]

# Language used in ADR

Found an Issue?
Help us improve this page by suggesting edits on GitHub.
- + diff --git a/main/architecture/adr-001-interchain-accounts.html b/main/architecture/adr-001-interchain-accounts.html index 7bd0774671c..c36414372e8 100644 --- a/main/architecture/adr-001-interchain-accounts.html +++ b/main/architecture/adr-001-interchain-accounts.html @@ -8,7 +8,7 @@ - + @@ -22,6 +22,6 @@

# Project Integrations [optional]

# Downstream User Impact Report

(Needs to be created)

# Upstream Partner Impact Report

(Needs to be created)

# Inter-module Dependence Report

(Needs to be created)

# Support

Documentation (opens new window)

# Additional Research & References

Found an Issue?
Help us improve this page by suggesting edits on GitHub.
- + diff --git a/main/architecture/adr-002-globalfee.html b/main/architecture/adr-002-globalfee.html index 4dad5db2a48..02641008014 100644 --- a/main/architecture/adr-002-globalfee.html +++ b/main/architecture/adr-002-globalfee.html @@ -8,7 +8,7 @@ - + @@ -101,6 +101,6 @@ }

# Consequences

# Positive

This refactor results in code that is easier to maintain. It prevents malicious validators from escaping fee checks and make the bypass messages work at network level.

# Negative

The introduction of FeeDecorator has replaced the usage of MempoolFeeDecorator in the Cosmos SDK. Currently, if both FeeDecorator and MempoolFeeDecorator are added to the AnteDecorator chain, it will result in redundant checks. However, there's potential for FeeDecorator and MempoolFeeDecorator to become incompatible in the future, depending on updates to the Cosmos SDK.

# References

Found an Issue?
Help us improve this page by suggesting edits on GitHub.
- + diff --git a/main/architecture/adr-template.html b/main/architecture/adr-template.html index 9eccc7f7164..0bae4535687 100644 --- a/main/architecture/adr-template.html +++ b/main/architecture/adr-template.html @@ -8,7 +8,7 @@ - + @@ -22,6 +22,6 @@ If the proposed change will be large, please also indicate a way to do the change to maximize ease of review. (e.g. the optimal split of things to do between separate PR's)

# Consequences

This section describes the consequences, after applying the decision. All consequences should be summarized here, not just the "positive" ones.

# Positive

# Negative

# Neutral

# References

Are there any relevant PR comments, issues that led up to this, or articles referrenced for why we made the given design choice? If so link them here!

Found an Issue?
Help us improve this page by suggesting edits on GitHub.
- + diff --git a/main/architecture/index.html b/main/architecture/index.html index 1205a076ccb..28934f89a6c 100644 --- a/main/architecture/index.html +++ b/main/architecture/index.html @@ -8,7 +8,7 @@ - + @@ -22,6 +22,6 @@ When writing RFCs, key words are used to signify the requirements in the specification. These words are often capitalized: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL. They are to be interpreted as described in RFC 2119 (opens new window).

# ADR Table of Contents

# Accepted

# Proposed

# Draft

# Rejected

Found an Issue?
Help us improve this page by suggesting edits on GitHub.
- + diff --git a/main/assets/js/105.11092534.js b/main/assets/js/105.da49e64f.js similarity index 98% rename from main/assets/js/105.11092534.js rename to main/assets/js/105.da49e64f.js index 550aa6e197a..e1dbccca792 100644 --- a/main/assets/js/105.11092534.js +++ b/main/assets/js/105.da49e64f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{589:function(e,t,o){"use strict";o.r(t);var r=o(1),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"parameter-change-lower-minimum-proposal-deposit-amount"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#parameter-change-lower-minimum-proposal-deposit-amount"}},[e._v("#")]),e._v(" Parameter change: lower minimum proposal deposit amount")]),e._v(" "),o("h2",{attrs:{id:"summary"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#summary"}},[e._v("#")]),e._v(" Summary")]),e._v(" "),o("p",[e._v("The current deposit amount of 512 ATOMs prohibits valuable governance activity from small holders or those with most of their ATOM staked. We propose lowering the requirement to 64 ATOMS.")]),e._v(" "),o("h2",{attrs:{id:"objectives"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#objectives"}},[e._v("#")]),e._v(" Objectives")]),e._v(" "),o("ol",[o("li",[e._v("Enable community members with good ideas but little capital to participate in governance and request resources from the community pool treasury.")]),e._v(" "),o("li",[e._v("Improve the governance UX for holders who keep most of their ATOM staked.")]),e._v(" "),o("li",[e._v("Increase utilisation of treasury (currently 666,457 ATOM, approximately $14 MM USD, at time of writing).")]),e._v(" "),o("li",[e._v("Accelerate Cosmos Hub development and growth.")])]),e._v(" "),o("h2",{attrs:{id:"background"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#background"}},[e._v("#")]),e._v(" Background")]),e._v(" "),o("p",[e._v("Current deposit is 512 ATOMs (approximately $10k USD today). The ATOM price when the community treasury was activated (2019-05-03) was $4.99 (source: CoinMarketCap), meaning the total required deposit to submit a proposal was $2,555. Today, most proposers must coordinate with large ATOM holders to request additional funds in order to meet the minimum deposit requirements. This also applies to large ATOM holders who want to be active in governance but do not have enough liquid ATOM to meet the deposit requirements, as staked ATOM cannot be used to post deposits.")]),e._v(" "),o("h2",{attrs:{id:"proposers"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposers"}},[e._v("#")]),e._v(" Proposers")]),e._v(" "),o("p",[e._v("Federico Kunze Küllmer (Tharsis) and Sam Hart (Interchain).")]),e._v(" "),o("p",[e._v("Credit to Gavin Birch (Figment Networks) and the Cosmos Governance Working Group (GWG) for initiating a recent conversation that motivated this proposal.")]),e._v(" "),o("h2",{attrs:{id:"proposed-parameter-change"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposed-parameter-change"}},[e._v("#")]),e._v(" Proposed Parameter Change")]),e._v(" "),o("p",[e._v("Change the minimum proposal deposit requirement from 512 ATOMs (aprox. $10,000 USD) to 64 ATOMs (aprox. $1,300 USD).")]),e._v(" "),o("p",[e._v("Note: Parameters are denominated in micro-ATOMs, as described in the "),o("a",{attrs:{href:"https://github.com/cosmos/governance/blob/master/params-change/Governance.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("governance parameter list"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"risks"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),o("p",[o("strong",[e._v("This change makes it easier to submit spam proposals.")])]),e._v(" "),o("p",[e._v("While this is true, in order to fully mitigate spam the Cosmos Hub must increase the minimum deposit required for proposal "),o("a",{attrs:{href:"https://cosmoscan.net/proposal/28",target:"_blank",rel:"noopener noreferrer"}},[e._v("submission"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("By increasing the number of submissions, voter participation or the level of consideration given to each proposal may decrease.")])]),e._v(" "),o("p",[e._v("We believe this is a justifiable trade-off for promoting more community-driven initiatives and enthusiasm for advancing Cosmos. As we lower the barrier to entry for governance participation, we invite community members to take this opportunity to enact more effective and efficient governance practices. The upcoming Groups, Authz, and Interchain Accounts modules will provide powerful abstractions to this end.")]),e._v(" "),o("h2",{attrs:{id:"alternatives"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#alternatives"}},[e._v("#")]),e._v(" Alternatives")]),e._v(" "),o("p",[o("strong",[e._v("Wait for the Cosmos Hub to adopt proposed changes to the Governance module for variable deposit amounts, quorom thresholds, and voting periods.")])]),e._v(" "),o("p",[e._v("These initiatives should not be mutually exclusive. While research and development of these features is ongoing, the Cosmos Hub will benefit from this parameter change today, as well as the precedent it sets for self-improving governance.")]),e._v(" "),o("p",[o("strong",[e._v("Since the ATOM price fluctuates with respect to USD, make proposal thresholds reference a stable price oracle")])]),e._v(" "),o("p",[e._v("This is an interesting design space, however it becomes more plausible if and when the Cosmos Hub adds a decentralized exchange that can be used to produce a reference rate. Lowering the proposal threshold is a temporary solution that will help in the short-term.")]),e._v(" "),o("h2",{attrs:{id:"governance-votes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#governance-votes"}},[e._v("#")]),e._v(" Governance Votes")]),e._v(" "),o("p",[e._v("The following items summarise the voting options and what it means for this proposal.")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("YES")]),e._v(": You approve the parameter change proposal to decrease the governance proposal deposit requirements from 512 to 64 ATOMs.")]),e._v(" "),o("li",[o("strong",[e._v("NO")]),e._v(": You disapprove of the parameter change in its current form (please indicate in the Cosmos Forum why this is the case).")]),e._v(" "),o("li",[o("strong",[e._v("NO WITH VETO")]),e._v(": You are strongly opposed to this change and will exit the network if passed.")]),e._v(" "),o("li",[o("strong",[e._v("ABSTAIN")]),e._v(": You are impartial to the outcome of the proposal.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{590:function(e,t,o){"use strict";o.r(t);var r=o(1),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"parameter-change-lower-minimum-proposal-deposit-amount"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#parameter-change-lower-minimum-proposal-deposit-amount"}},[e._v("#")]),e._v(" Parameter change: lower minimum proposal deposit amount")]),e._v(" "),o("h2",{attrs:{id:"summary"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#summary"}},[e._v("#")]),e._v(" Summary")]),e._v(" "),o("p",[e._v("The current deposit amount of 512 ATOMs prohibits valuable governance activity from small holders or those with most of their ATOM staked. We propose lowering the requirement to 64 ATOMS.")]),e._v(" "),o("h2",{attrs:{id:"objectives"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#objectives"}},[e._v("#")]),e._v(" Objectives")]),e._v(" "),o("ol",[o("li",[e._v("Enable community members with good ideas but little capital to participate in governance and request resources from the community pool treasury.")]),e._v(" "),o("li",[e._v("Improve the governance UX for holders who keep most of their ATOM staked.")]),e._v(" "),o("li",[e._v("Increase utilisation of treasury (currently 666,457 ATOM, approximately $14 MM USD, at time of writing).")]),e._v(" "),o("li",[e._v("Accelerate Cosmos Hub development and growth.")])]),e._v(" "),o("h2",{attrs:{id:"background"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#background"}},[e._v("#")]),e._v(" Background")]),e._v(" "),o("p",[e._v("Current deposit is 512 ATOMs (approximately $10k USD today). The ATOM price when the community treasury was activated (2019-05-03) was $4.99 (source: CoinMarketCap), meaning the total required deposit to submit a proposal was $2,555. Today, most proposers must coordinate with large ATOM holders to request additional funds in order to meet the minimum deposit requirements. This also applies to large ATOM holders who want to be active in governance but do not have enough liquid ATOM to meet the deposit requirements, as staked ATOM cannot be used to post deposits.")]),e._v(" "),o("h2",{attrs:{id:"proposers"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposers"}},[e._v("#")]),e._v(" Proposers")]),e._v(" "),o("p",[e._v("Federico Kunze Küllmer (Tharsis) and Sam Hart (Interchain).")]),e._v(" "),o("p",[e._v("Credit to Gavin Birch (Figment Networks) and the Cosmos Governance Working Group (GWG) for initiating a recent conversation that motivated this proposal.")]),e._v(" "),o("h2",{attrs:{id:"proposed-parameter-change"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposed-parameter-change"}},[e._v("#")]),e._v(" Proposed Parameter Change")]),e._v(" "),o("p",[e._v("Change the minimum proposal deposit requirement from 512 ATOMs (aprox. $10,000 USD) to 64 ATOMs (aprox. $1,300 USD).")]),e._v(" "),o("p",[e._v("Note: Parameters are denominated in micro-ATOMs, as described in the "),o("a",{attrs:{href:"https://github.com/cosmos/governance/blob/master/params-change/Governance.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("governance parameter list"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"risks"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),o("p",[o("strong",[e._v("This change makes it easier to submit spam proposals.")])]),e._v(" "),o("p",[e._v("While this is true, in order to fully mitigate spam the Cosmos Hub must increase the minimum deposit required for proposal "),o("a",{attrs:{href:"https://cosmoscan.net/proposal/28",target:"_blank",rel:"noopener noreferrer"}},[e._v("submission"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("By increasing the number of submissions, voter participation or the level of consideration given to each proposal may decrease.")])]),e._v(" "),o("p",[e._v("We believe this is a justifiable trade-off for promoting more community-driven initiatives and enthusiasm for advancing Cosmos. As we lower the barrier to entry for governance participation, we invite community members to take this opportunity to enact more effective and efficient governance practices. The upcoming Groups, Authz, and Interchain Accounts modules will provide powerful abstractions to this end.")]),e._v(" "),o("h2",{attrs:{id:"alternatives"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#alternatives"}},[e._v("#")]),e._v(" Alternatives")]),e._v(" "),o("p",[o("strong",[e._v("Wait for the Cosmos Hub to adopt proposed changes to the Governance module for variable deposit amounts, quorom thresholds, and voting periods.")])]),e._v(" "),o("p",[e._v("These initiatives should not be mutually exclusive. While research and development of these features is ongoing, the Cosmos Hub will benefit from this parameter change today, as well as the precedent it sets for self-improving governance.")]),e._v(" "),o("p",[o("strong",[e._v("Since the ATOM price fluctuates with respect to USD, make proposal thresholds reference a stable price oracle")])]),e._v(" "),o("p",[e._v("This is an interesting design space, however it becomes more plausible if and when the Cosmos Hub adds a decentralized exchange that can be used to produce a reference rate. Lowering the proposal threshold is a temporary solution that will help in the short-term.")]),e._v(" "),o("h2",{attrs:{id:"governance-votes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#governance-votes"}},[e._v("#")]),e._v(" Governance Votes")]),e._v(" "),o("p",[e._v("The following items summarise the voting options and what it means for this proposal.")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("YES")]),e._v(": You approve the parameter change proposal to decrease the governance proposal deposit requirements from 512 to 64 ATOMs.")]),e._v(" "),o("li",[o("strong",[e._v("NO")]),e._v(": You disapprove of the parameter change in its current form (please indicate in the Cosmos Forum why this is the case).")]),e._v(" "),o("li",[o("strong",[e._v("NO WITH VETO")]),e._v(": You are strongly opposed to this change and will exit the network if passed.")]),e._v(" "),o("li",[o("strong",[e._v("ABSTAIN")]),e._v(": You are impartial to the outcome of the proposal.")])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/main/assets/js/106.8f56e5e6.js b/main/assets/js/106.40c4773d.js similarity index 99% rename from main/assets/js/106.8f56e5e6.js rename to main/assets/js/106.40c4773d.js index 78a4159b646..3f3455ddc47 100644 --- a/main/assets/js/106.8f56e5e6.js +++ b/main/assets/js/106.40c4773d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{525:function(e,t,o){"use strict";o.r(t);var i=o(1),a=Object(i.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"proposal-46-extend-luna-mission-to-fund-atom-marketing"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposal-46-extend-luna-mission-to-fund-atom-marketing"}},[e._v("#")]),e._v(" Proposal 46: Extend Luna Mission to Fund ATOM Marketing")]),e._v(" "),o("p",[e._v("The Cosmos community approved Proposal 34 on 2021-01-20 allocating 129,208 ATOM to implement a comprehensive ATOM marketing plan executed in collaboration with key community stakeholders. Proposal 46 is requesting an extension of the time allowed to spend the approved budget and allocate existing funds for additional ATOM-focused priorities. Below are details of this request and an outline of the successful results of Proposal 34 marketing spend as of 2021-03-31.")]),e._v(" "),o("h2",{attrs:{id:"proposal-46-request"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposal-46-request"}},[e._v("#")]),e._v(" PROPOSAL 46 REQUEST:")]),e._v(" "),o("ol",[o("li",[o("em",[o("em",[e._v("Prop 34 Time Extension:")])]),e._v(" The Prop 34 Implementation team seeks a three-month extension (until 2021-07-20) to fully spend the existing budget allocation under the terms approved in Proposal 34. The multisig team and AiB (Tendermint) invested significant time and energy properly researching, vetting and managing vendors, contractors, and opportunities requiring additional time to complete the Prop 34 expenditure of funds. With the approval of Proposal 46, any unspent funds remaining from Proposal 34 efforts will be returned to the community pool on 2021-07-20.")]),e._v(" "),o("li",[o("em",[o("em",[e._v("Additional Budget Priority - Project Execution Fund Pool:")])]),e._v(" Execution, oversight, and accountability for this significant marketing spend requires substantive operational support. In addition to the 5 multisig administrators, Zaki Manian, Jack Zampolin, Immasssi, Jhonnie and Joe Dirtay, extensive support is being provided by Adriana Mihai (Kalpatech), Garrette Furo (Regen Network), David Fortson (Regen Network/LOACOM), and others. We request an allocation of 3000 ATOM (from the existing budget) to compensate the aforementioned contributors for previous and ongoing support of this expansive marketing campaign. Funds will be distributed through the multisig administration.")]),e._v(" "),o("li",[o("em",[o("em",[e._v("Additional Budget Priority - Gravity DEX:")])]),e._v(" This proposal seeks to allocate 10,000 - 20,000 ATOM (from approved Prop 34 budget) to identify and support robust marketing of the Gravity DEX testnet and DEX mainnet launch- an AMM exchange that will have a significant impact on ATOM valuation if successful. Gravity DEX is initially planned as an automated market maker (AMM) exchange that will allow users to trade IBC token pairs and provide liquidity for traders. These tokens would arrive on the Hub through IBC-enabled chains, IBC-wrapped ETH and ERC20 tokens, IBC-wrapped BTC tokens, and as well as future blockchain ecosystems that implement the IBC protocol.")]),e._v(" "),o("li",[o("em",[o("em",[e._v("Community Created YouTube Videos:")])]),e._v(" After evaluating the existing meme campaign, the project management team is recommending ceasing the community meme campaign and reallocating remaining funds for community-created YouTube videos. This campaign would reward community members for creating select videos for prospective or new token holders focused on ‘How to’ and explainer videos on topics such as “How to set up your wallet,” “How to stake your $ATOM,” “How to delegate, redelegate and participate in governance,” and more.")])]),e._v(" "),o("h2",{attrs:{id:"section-i-overview"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-i-overview"}},[e._v("#")]),e._v(" SECTION I OVERVIEW")]),e._v(" "),o("p",[e._v("A summary report of current marketing activities and related analytics can be found here. Highlights include (Date Range 2021-01-20 to 2021-03-31):")]),e._v(" "),o("ul",[o("li",[e._v("ATOM Valuation: ATOM valuation has increased from $8.92 to $19.10 - a 214% increase.")]),e._v(" "),o("li",[e._v("Twitter: New 2020 and 2021 record on new followers and engagement:\n"),o("ul",[o("li",[o("em",[e._v("New followers:")]),e._v(" Q1 Twitter: 45,380 new followers ( 2,236 in Q1 2020, 1940% increase)")]),e._v(" "),o("li",[o("em",[e._v("Engagement:")]),e._v(" 10.3M impressions ( 2,16M in Q1 2020, 476% increase)")])])]),e._v(" "),o("li",[e._v("Youtube\n"),o("ul",[o("li",[o("em",[e._v("New subscribers:")]),e._v(" 1,3k new subscribers (195 in Q1 2020, 667% increase)")]),e._v(" "),o("li",[o("em",[e._v("Impressions and views:")]),e._v(" 447k impressions ( 126k in Q1 2020, 355% increase) , 47,4k views ( 10,1k views Q1 2020, 469% increase)")])])]),e._v(" "),o("li",[e._v("Cosmos website\n"),o("ul",[o("li",[e._v("+396% new users, +355% sessions")]),e._v(" "),o("li",[e._v("+380% unique page views, +64% pages per session, -28% bounce rate")]),e._v(" "),o("li",[e._v("1,079,000 visitors, 244,000 new users from which 28,804 acquired new users from the marketing campaign.")])])]),e._v(" "),o("li",[e._v("Cosmos Hub\n"),o("ul",[o("li",[e._v("31,408 new delegators (increase from 41,885 to 73,293 - a 74% increase.)")]),e._v(" "),o("li",[e._v("92,561 new ATOM accounts (increase from 136,219 accounts to 228,780 accounts - a 68% increase.)")])])]),e._v(" "),o("li",[e._v("Blockfolio Signal\n"),o("ul",[o("li",[e._v("270,000 new followers, increase from 220,000 to 490,000 as of March 31st. ( As of April 21st, total number of followers reached 1,3 Million followers)")])])])]),e._v(" "),o("h3",{attrs:{id:"spend-overview"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#spend-overview"}},[e._v("#")]),e._v(" Spend Overview")]),e._v(" "),o("p",[e._v("As of 2021-03-31, a total of 41,912 ATOM have been spent in the following ways:")]),e._v(" "),o("ul",[o("li",[e._v("Meme Contest: 0 ATOM")]),e._v(" "),o("li",[e._v("Banner ads - 8,750 ATOM")]),e._v(" "),o("li",[e._v("Influencers: twitter posts and youtube shows - 25,462 ATOM")]),e._v(" "),o("li",[e._v("Podcasts, newsletters- 6,200 ATOM")]),e._v(" "),o("li",[e._v("Media/TV: 1,000 ATOM")]),e._v(" "),o("li",[e._v("Signers fee: 500 ATOM")])]),e._v(" "),o("p",[e._v("Additionally as of 2021-04-21, a total of 22,610 ATOM have been spent for:")]),e._v(" "),o("ul",[o("li",[e._v("Meme contest: 240 ATOM")]),e._v(" "),o("li",[e._v("PR company: 990 ATOM")]),e._v(" "),o("li",[e._v("Twitter influencers: 9,550 ATOM")]),e._v(" "),o("li",[e._v("Community management: 150 ATOM")]),e._v(" "),o("li",[e._v("Banner ads: 11,680 ATOM")])]),e._v(" "),o("h4",{attrs:{id:"total-atom-spent-as-of-2021-04-21-is-of-64-522-atom-remaining-budget-is-of-64-655-atom"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#total-atom-spent-as-of-2021-04-21-is-of-64-522-atom-remaining-budget-is-of-64-655-atom"}},[e._v("#")]),e._v(" Total ATOM spent as of 2021-04-21 is of 64,522 ATOM, remaining budget is of 64,655 ATOM.")]),e._v(" "),o("h2",{attrs:{id:"section-ii-history"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-ii-history"}},[e._v("#")]),e._v(" SECTION II - HISTORY")]),e._v(" "),o("p",[e._v("The Cosmos Hub (ATOM) community approved the passage of Proposal 34 - Luna Mission - Funding $ATOM on 2021-01-20 at 74% yes, 18.9% abstain and 7.1% no.")]),e._v(" "),o("p",[e._v("Proposal 34 authorized a spending pool of 129,208 ATOM to implement a comprehensive ATOM marketing plan executed in collaboration with AiB (Tendermint). The funds deriving from Prop 34 have been approved by @johnniecosmos, @JoeDirtay, @jackzampolin (Jack Zampolin, Pylon Validator), @immasssi (SG-1 Validator), @zakimanian (Zaki Manian, Iqlusion Validator), as the designated multisig committee. Current funding allocation is due to expire and be returned to the community pool if Proposal 46 does not pass.")]),e._v(" "),o("h2",{attrs:{id:"section-iii-deliverables"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-iii-deliverables"}},[e._v("#")]),e._v(" SECTION III - DELIVERABLES")]),e._v(" "),o("p",[e._v("Proposal 34 - Results Summary - 2021-01-20 to 2021-03-31")]),e._v(" "),o("ol",[o("li",[e._v("Banner Ads\n"),o("ul",[o("li",[e._v("Locations:\n"),o("ul",[o("li",[e._v("Wallets: Blockfolio, Coinstats")]),e._v(" "),o("li",[e._v("Platforms: Coingecko, Stacking Rewards")])])]),e._v(" "),o("li",[e._v("Sample Banner: https://drive.google.com/drive/folders/1JFpJewRGsQfrK57BxEdE0Pk3ae37ldpL")]),e._v(" "),o("li",[e._v("Duration of the campaign ads: 1-3 months")]),e._v(" "),o("li",[e._v("Total performance on all 4 venues: (#37,000,000 impressions, #28,804 new acquired visitors, over #100,000 new wallets downloads with ATOM as preset currency)")]),e._v(" "),o("li",[e._v("Total Spent: "),o("em",[e._v("8,750 ATOMs")])])])]),e._v(" "),o("li",[e._v("Marketing contracts\n"),o("ul",[o("li",[e._v("Podcasts:\n"),o("ul",[o("li",[e._v("Charlie Shrem\n"),o("ul",[o("li",[e._v("Twitter account: https://twitter.com/CharlieShrem")]),e._v(" "),o("li",[e._v("Followers: 199k")]),e._v(" "),o("li",[e._v("https://twitter.com/CharlieShrem/status/1376550892321730563?s=20")]),e._v(" "),o("li",[e._v("Performance: 268K Twitter Impressions, 6265 Podcast Downloads, & 7600 youtube views.")])])]),e._v(" "),o("li",[e._v("Scott Melker\n"),o("ul",[o("li",[e._v("Twitter Account: https://twitter.com/scottmelker")]),e._v(" "),o("li",[e._v("Followers: 290K")]),e._v(" "),o("li",[e._v("https://www.youtube.com/watch?v=MdIb6xImS5Q")])])])])]),e._v(" "),o("li",[e._v("Newsletters/Articles:\n"),o("ul",[o("li",[e._v("Scott Melker: https://thewolfofallstreets.link/cosmos​")]),e._v(" "),o("li",[e._v("The Daily Chain\n"),o("ul",[o("li",[e._v("https://thedailychain.com/the-stargate-upgrade-launch-is-coming-on-cosmos-hub/")]),e._v(" "),o("li",[e._v("https://thedailychain.com/cosmos-hub-governance-passes-new-proposals-to-improve-the-project/")]),e._v(" "),o("li",[e._v("https://thedailychain.com/solving-blockchain-interoperability-with-the-cosmos-hub/")])])]),e._v(" "),o("li",[e._v("Blockworks\n"),o("ul",[o("li",[e._v("Tweet https://twitter.com/Blockworks_/status/1381969023584272395?s=20")]),e._v(" "),o("li",[e._v("Article https://blockworks.co/cosmos-why-we-need-interoperability-in-blockchain/")]),e._v(" "),o("li",[e._v("250,255 Dedicated Twitter Impressions, 10,653 Newsletter Impressions, 1,147 pageviews")])])]),e._v(" "),o("li",[e._v("Total Spent: "),o("em",[e._v("6,200 ATOM")])])])])])]),e._v(" "),o("li",[e._v("Influencers\n"),o("ul",[o("li",[e._v("Twitter\n"),o("ul",[o("li",[e._v("Over 30 Twitter influencers engaged including Crypto Dog, Michaël van de Poppe and the Wolf of all Streets.")]),e._v(" "),o("li",[e._v("Sample Posts:\n"),o("ul",[o("li",[o("a",{attrs:{href:"https://twitter.com/thecryptodog/status/1376640286428864514?s=21",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Dog"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/CryptoMichNL/status/1381264254033133569?s=20",target:"_blank",rel:"noopener noreferrer"}},[e._v("Michaël van de Poppe"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/scottmelker/status/1383155303525576706?s=20",target:"_blank",rel:"noopener noreferrer"}},[e._v("Scott Melker "),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/stackingusd/status/1362133942435012608?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("StackingUSD"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/macrocrg/status/1364606751878881288?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("MacroCRG"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/trader_xo/status/1369038610415161347?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("Trader_XO"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/crypto_chase/status/1381696722557136899?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto_Chasr"),o("OutboundLink")],1)])])]),e._v(" "),o("li",[e._v("Results: from the 1st-month Twitter only (second-month data was not complete in time)\n"),o("ul",[o("li",[e._v("245 tweets, 20,000 Likes, 4,000 Retweets, 1700 Comments")])])])])]),e._v(" "),o("li",[e._v("YouTube Shows & Podcasts\n"),o("ul",[o("li",[e._v("Programs: Crypto Daily, Data Dash, Tech Con Catalina,Crypto Busy, Hashoshi, Crypto Michael.")]),e._v(" "),o("li",[e._v("Featured Shows:\n"),o("ul",[o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=g55JAdwVs2Q&t=254s&ab_channel=CryptoDaily",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Daily"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Subscribers: 193K")]),e._v(" "),o("li",[e._v("Video views: 52,834")]),e._v(" "),o("li",[e._v("Publish date: March 1st")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=vaZLBgi5o-w",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Dash"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Subscribers: 423K")]),e._v(" "),o("li",[e._v("Video views: 40,150")]),e._v(" "),o("li",[e._v("Publish date: Feb 17th")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=H5kHoFXjMyM",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tech Con Catalina"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 115K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 42,415")]),e._v(" "),o("li",[e._v("Publish date: April 12th")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=G2zHiIw_DZM",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Busy"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 152K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 24,468")]),e._v(" "),o("li",[e._v("Publish date: March 3rd")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=jVjcCjfGOxU",target:"_blank",rel:"noopener noreferrer"}},[e._v("Hashoshi"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 116K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 6,218 views")]),e._v(" "),o("li",[e._v("Publish date: April 20th")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=xTUCsRs89no",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Michael"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 67K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 4,499 views")]),e._v(" "),o("li",[e._v("Publish date: April 14th")])])]),e._v(" "),o("li",[e._v("Delphi Digital podcasts & Brand Sponsor\n"),o("ul",[o("li",[e._v("Podcast ads are just starting, clubhouse (later aired as podcast) w/ key cosmonauts soon")])])])])])])]),e._v(" "),o("li",[e._v("Total Spent on Influencers (Twitter &YouTube): "),o("em",[e._v("25,462 ATOMS")])])])])]),e._v(" "),o("p",[e._v("And many more videos to be dropping soon Cosmonauts!")]),e._v(" "),o("h2",{attrs:{id:"section-iv-public-relations"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-iv-public-relations"}},[e._v("#")]),e._v(" SECTION IV - Public Relations")]),e._v(" "),o("p",[e._v("Hired GFCA - work begins 2021-04-07, placements were done in April 2021:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://www.businessinsider.com/crypto-investing-experts-bitcoin-price-drop-explainer-charts-data-watch-2021-4",target:"_blank",rel:"noopener noreferrer"}},[e._v("Peng Zhong featured in Business Insider"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Notes: world's favorite business brand — by a wide margin. With over 70 million unique visitors a month.")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.financemagnates.com/cryptocurrency/news/are-nfts-a-good-long-term-investment-on-ownership-long-term-viability/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Garrette Furo featured in Finance Magnates"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Notes: global business news outlet that focuses on alternatives and trading industries with 553,507 unique monthly visitors.\nSpend: "),o("em",[e._v("990 ATOM")])])])])]),e._v(" "),o("h2",{attrs:{id:"section-v-meme-competition-2021"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-v-meme-competition-2021"}},[e._v("#")]),e._v(" SECTION V - MEME Competition 2021")]),e._v(" "),o("p",[e._v("Start 22nd of March (3 Total stages)\nSpend total: "),o("em",[e._v("3915 ATOM")]),e._v(" (Split up for each stage)\nStage 1 accepted entries for prizes (so far): 170+\n- Total valid entries: 2000+\n- Cosmonaut Telegram channel growth: 700+ new people in 2 weeks (organic)\n- Cosmonaut Twitter channel growth: 400+ new people in 2 weeks (organic)\n"),o("a",{attrs:{href:"https://docs.google.com/spreadsheets/d/1w8ry3-SxIRuEjMT1PoES8H19CsRT1aSjiKvVJEjFp_k/edit#gid=0",target:"_blank",rel:"noopener noreferrer"}},[e._v("MEME Live tracker"),o("OutboundLink")],1),e._v(" "),o("a",{attrs:{href:"https://twitter.com/ATOMCosmonauts/status/1373952259013349376?s=20",target:"_blank",rel:"noopener noreferrer"}},[e._v("Competition outline"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{526:function(e,t,o){"use strict";o.r(t);var i=o(1),a=Object(i.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"proposal-46-extend-luna-mission-to-fund-atom-marketing"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposal-46-extend-luna-mission-to-fund-atom-marketing"}},[e._v("#")]),e._v(" Proposal 46: Extend Luna Mission to Fund ATOM Marketing")]),e._v(" "),o("p",[e._v("The Cosmos community approved Proposal 34 on 2021-01-20 allocating 129,208 ATOM to implement a comprehensive ATOM marketing plan executed in collaboration with key community stakeholders. Proposal 46 is requesting an extension of the time allowed to spend the approved budget and allocate existing funds for additional ATOM-focused priorities. Below are details of this request and an outline of the successful results of Proposal 34 marketing spend as of 2021-03-31.")]),e._v(" "),o("h2",{attrs:{id:"proposal-46-request"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#proposal-46-request"}},[e._v("#")]),e._v(" PROPOSAL 46 REQUEST:")]),e._v(" "),o("ol",[o("li",[o("em",[o("em",[e._v("Prop 34 Time Extension:")])]),e._v(" The Prop 34 Implementation team seeks a three-month extension (until 2021-07-20) to fully spend the existing budget allocation under the terms approved in Proposal 34. The multisig team and AiB (Tendermint) invested significant time and energy properly researching, vetting and managing vendors, contractors, and opportunities requiring additional time to complete the Prop 34 expenditure of funds. With the approval of Proposal 46, any unspent funds remaining from Proposal 34 efforts will be returned to the community pool on 2021-07-20.")]),e._v(" "),o("li",[o("em",[o("em",[e._v("Additional Budget Priority - Project Execution Fund Pool:")])]),e._v(" Execution, oversight, and accountability for this significant marketing spend requires substantive operational support. In addition to the 5 multisig administrators, Zaki Manian, Jack Zampolin, Immasssi, Jhonnie and Joe Dirtay, extensive support is being provided by Adriana Mihai (Kalpatech), Garrette Furo (Regen Network), David Fortson (Regen Network/LOACOM), and others. We request an allocation of 3000 ATOM (from the existing budget) to compensate the aforementioned contributors for previous and ongoing support of this expansive marketing campaign. Funds will be distributed through the multisig administration.")]),e._v(" "),o("li",[o("em",[o("em",[e._v("Additional Budget Priority - Gravity DEX:")])]),e._v(" This proposal seeks to allocate 10,000 - 20,000 ATOM (from approved Prop 34 budget) to identify and support robust marketing of the Gravity DEX testnet and DEX mainnet launch- an AMM exchange that will have a significant impact on ATOM valuation if successful. Gravity DEX is initially planned as an automated market maker (AMM) exchange that will allow users to trade IBC token pairs and provide liquidity for traders. These tokens would arrive on the Hub through IBC-enabled chains, IBC-wrapped ETH and ERC20 tokens, IBC-wrapped BTC tokens, and as well as future blockchain ecosystems that implement the IBC protocol.")]),e._v(" "),o("li",[o("em",[o("em",[e._v("Community Created YouTube Videos:")])]),e._v(" After evaluating the existing meme campaign, the project management team is recommending ceasing the community meme campaign and reallocating remaining funds for community-created YouTube videos. This campaign would reward community members for creating select videos for prospective or new token holders focused on ‘How to’ and explainer videos on topics such as “How to set up your wallet,” “How to stake your $ATOM,” “How to delegate, redelegate and participate in governance,” and more.")])]),e._v(" "),o("h2",{attrs:{id:"section-i-overview"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-i-overview"}},[e._v("#")]),e._v(" SECTION I OVERVIEW")]),e._v(" "),o("p",[e._v("A summary report of current marketing activities and related analytics can be found here. Highlights include (Date Range 2021-01-20 to 2021-03-31):")]),e._v(" "),o("ul",[o("li",[e._v("ATOM Valuation: ATOM valuation has increased from $8.92 to $19.10 - a 214% increase.")]),e._v(" "),o("li",[e._v("Twitter: New 2020 and 2021 record on new followers and engagement:\n"),o("ul",[o("li",[o("em",[e._v("New followers:")]),e._v(" Q1 Twitter: 45,380 new followers ( 2,236 in Q1 2020, 1940% increase)")]),e._v(" "),o("li",[o("em",[e._v("Engagement:")]),e._v(" 10.3M impressions ( 2,16M in Q1 2020, 476% increase)")])])]),e._v(" "),o("li",[e._v("Youtube\n"),o("ul",[o("li",[o("em",[e._v("New subscribers:")]),e._v(" 1,3k new subscribers (195 in Q1 2020, 667% increase)")]),e._v(" "),o("li",[o("em",[e._v("Impressions and views:")]),e._v(" 447k impressions ( 126k in Q1 2020, 355% increase) , 47,4k views ( 10,1k views Q1 2020, 469% increase)")])])]),e._v(" "),o("li",[e._v("Cosmos website\n"),o("ul",[o("li",[e._v("+396% new users, +355% sessions")]),e._v(" "),o("li",[e._v("+380% unique page views, +64% pages per session, -28% bounce rate")]),e._v(" "),o("li",[e._v("1,079,000 visitors, 244,000 new users from which 28,804 acquired new users from the marketing campaign.")])])]),e._v(" "),o("li",[e._v("Cosmos Hub\n"),o("ul",[o("li",[e._v("31,408 new delegators (increase from 41,885 to 73,293 - a 74% increase.)")]),e._v(" "),o("li",[e._v("92,561 new ATOM accounts (increase from 136,219 accounts to 228,780 accounts - a 68% increase.)")])])]),e._v(" "),o("li",[e._v("Blockfolio Signal\n"),o("ul",[o("li",[e._v("270,000 new followers, increase from 220,000 to 490,000 as of March 31st. ( As of April 21st, total number of followers reached 1,3 Million followers)")])])])]),e._v(" "),o("h3",{attrs:{id:"spend-overview"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#spend-overview"}},[e._v("#")]),e._v(" Spend Overview")]),e._v(" "),o("p",[e._v("As of 2021-03-31, a total of 41,912 ATOM have been spent in the following ways:")]),e._v(" "),o("ul",[o("li",[e._v("Meme Contest: 0 ATOM")]),e._v(" "),o("li",[e._v("Banner ads - 8,750 ATOM")]),e._v(" "),o("li",[e._v("Influencers: twitter posts and youtube shows - 25,462 ATOM")]),e._v(" "),o("li",[e._v("Podcasts, newsletters- 6,200 ATOM")]),e._v(" "),o("li",[e._v("Media/TV: 1,000 ATOM")]),e._v(" "),o("li",[e._v("Signers fee: 500 ATOM")])]),e._v(" "),o("p",[e._v("Additionally as of 2021-04-21, a total of 22,610 ATOM have been spent for:")]),e._v(" "),o("ul",[o("li",[e._v("Meme contest: 240 ATOM")]),e._v(" "),o("li",[e._v("PR company: 990 ATOM")]),e._v(" "),o("li",[e._v("Twitter influencers: 9,550 ATOM")]),e._v(" "),o("li",[e._v("Community management: 150 ATOM")]),e._v(" "),o("li",[e._v("Banner ads: 11,680 ATOM")])]),e._v(" "),o("h4",{attrs:{id:"total-atom-spent-as-of-2021-04-21-is-of-64-522-atom-remaining-budget-is-of-64-655-atom"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#total-atom-spent-as-of-2021-04-21-is-of-64-522-atom-remaining-budget-is-of-64-655-atom"}},[e._v("#")]),e._v(" Total ATOM spent as of 2021-04-21 is of 64,522 ATOM, remaining budget is of 64,655 ATOM.")]),e._v(" "),o("h2",{attrs:{id:"section-ii-history"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-ii-history"}},[e._v("#")]),e._v(" SECTION II - HISTORY")]),e._v(" "),o("p",[e._v("The Cosmos Hub (ATOM) community approved the passage of Proposal 34 - Luna Mission - Funding $ATOM on 2021-01-20 at 74% yes, 18.9% abstain and 7.1% no.")]),e._v(" "),o("p",[e._v("Proposal 34 authorized a spending pool of 129,208 ATOM to implement a comprehensive ATOM marketing plan executed in collaboration with AiB (Tendermint). The funds deriving from Prop 34 have been approved by @johnniecosmos, @JoeDirtay, @jackzampolin (Jack Zampolin, Pylon Validator), @immasssi (SG-1 Validator), @zakimanian (Zaki Manian, Iqlusion Validator), as the designated multisig committee. Current funding allocation is due to expire and be returned to the community pool if Proposal 46 does not pass.")]),e._v(" "),o("h2",{attrs:{id:"section-iii-deliverables"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-iii-deliverables"}},[e._v("#")]),e._v(" SECTION III - DELIVERABLES")]),e._v(" "),o("p",[e._v("Proposal 34 - Results Summary - 2021-01-20 to 2021-03-31")]),e._v(" "),o("ol",[o("li",[e._v("Banner Ads\n"),o("ul",[o("li",[e._v("Locations:\n"),o("ul",[o("li",[e._v("Wallets: Blockfolio, Coinstats")]),e._v(" "),o("li",[e._v("Platforms: Coingecko, Stacking Rewards")])])]),e._v(" "),o("li",[e._v("Sample Banner: https://drive.google.com/drive/folders/1JFpJewRGsQfrK57BxEdE0Pk3ae37ldpL")]),e._v(" "),o("li",[e._v("Duration of the campaign ads: 1-3 months")]),e._v(" "),o("li",[e._v("Total performance on all 4 venues: (#37,000,000 impressions, #28,804 new acquired visitors, over #100,000 new wallets downloads with ATOM as preset currency)")]),e._v(" "),o("li",[e._v("Total Spent: "),o("em",[e._v("8,750 ATOMs")])])])]),e._v(" "),o("li",[e._v("Marketing contracts\n"),o("ul",[o("li",[e._v("Podcasts:\n"),o("ul",[o("li",[e._v("Charlie Shrem\n"),o("ul",[o("li",[e._v("Twitter account: https://twitter.com/CharlieShrem")]),e._v(" "),o("li",[e._v("Followers: 199k")]),e._v(" "),o("li",[e._v("https://twitter.com/CharlieShrem/status/1376550892321730563?s=20")]),e._v(" "),o("li",[e._v("Performance: 268K Twitter Impressions, 6265 Podcast Downloads, & 7600 youtube views.")])])]),e._v(" "),o("li",[e._v("Scott Melker\n"),o("ul",[o("li",[e._v("Twitter Account: https://twitter.com/scottmelker")]),e._v(" "),o("li",[e._v("Followers: 290K")]),e._v(" "),o("li",[e._v("https://www.youtube.com/watch?v=MdIb6xImS5Q")])])])])]),e._v(" "),o("li",[e._v("Newsletters/Articles:\n"),o("ul",[o("li",[e._v("Scott Melker: https://thewolfofallstreets.link/cosmos​")]),e._v(" "),o("li",[e._v("The Daily Chain\n"),o("ul",[o("li",[e._v("https://thedailychain.com/the-stargate-upgrade-launch-is-coming-on-cosmos-hub/")]),e._v(" "),o("li",[e._v("https://thedailychain.com/cosmos-hub-governance-passes-new-proposals-to-improve-the-project/")]),e._v(" "),o("li",[e._v("https://thedailychain.com/solving-blockchain-interoperability-with-the-cosmos-hub/")])])]),e._v(" "),o("li",[e._v("Blockworks\n"),o("ul",[o("li",[e._v("Tweet https://twitter.com/Blockworks_/status/1381969023584272395?s=20")]),e._v(" "),o("li",[e._v("Article https://blockworks.co/cosmos-why-we-need-interoperability-in-blockchain/")]),e._v(" "),o("li",[e._v("250,255 Dedicated Twitter Impressions, 10,653 Newsletter Impressions, 1,147 pageviews")])])]),e._v(" "),o("li",[e._v("Total Spent: "),o("em",[e._v("6,200 ATOM")])])])])])]),e._v(" "),o("li",[e._v("Influencers\n"),o("ul",[o("li",[e._v("Twitter\n"),o("ul",[o("li",[e._v("Over 30 Twitter influencers engaged including Crypto Dog, Michaël van de Poppe and the Wolf of all Streets.")]),e._v(" "),o("li",[e._v("Sample Posts:\n"),o("ul",[o("li",[o("a",{attrs:{href:"https://twitter.com/thecryptodog/status/1376640286428864514?s=21",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Dog"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/CryptoMichNL/status/1381264254033133569?s=20",target:"_blank",rel:"noopener noreferrer"}},[e._v("Michaël van de Poppe"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/scottmelker/status/1383155303525576706?s=20",target:"_blank",rel:"noopener noreferrer"}},[e._v("Scott Melker "),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/stackingusd/status/1362133942435012608?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("StackingUSD"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/macrocrg/status/1364606751878881288?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("MacroCRG"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/trader_xo/status/1369038610415161347?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("Trader_XO"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://twitter.com/crypto_chase/status/1381696722557136899?s=28",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto_Chasr"),o("OutboundLink")],1)])])]),e._v(" "),o("li",[e._v("Results: from the 1st-month Twitter only (second-month data was not complete in time)\n"),o("ul",[o("li",[e._v("245 tweets, 20,000 Likes, 4,000 Retweets, 1700 Comments")])])])])]),e._v(" "),o("li",[e._v("YouTube Shows & Podcasts\n"),o("ul",[o("li",[e._v("Programs: Crypto Daily, Data Dash, Tech Con Catalina,Crypto Busy, Hashoshi, Crypto Michael.")]),e._v(" "),o("li",[e._v("Featured Shows:\n"),o("ul",[o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=g55JAdwVs2Q&t=254s&ab_channel=CryptoDaily",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Daily"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Subscribers: 193K")]),e._v(" "),o("li",[e._v("Video views: 52,834")]),e._v(" "),o("li",[e._v("Publish date: March 1st")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=vaZLBgi5o-w",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Dash"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Subscribers: 423K")]),e._v(" "),o("li",[e._v("Video views: 40,150")]),e._v(" "),o("li",[e._v("Publish date: Feb 17th")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=H5kHoFXjMyM",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tech Con Catalina"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 115K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 42,415")]),e._v(" "),o("li",[e._v("Publish date: April 12th")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=G2zHiIw_DZM",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Busy"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 152K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 24,468")]),e._v(" "),o("li",[e._v("Publish date: March 3rd")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=jVjcCjfGOxU",target:"_blank",rel:"noopener noreferrer"}},[e._v("Hashoshi"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 116K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 6,218 views")]),e._v(" "),o("li",[e._v("Publish date: April 20th")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.youtube.com/watch?v=xTUCsRs89no",target:"_blank",rel:"noopener noreferrer"}},[e._v("Crypto Michael"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("YouTube Followers - 67K Subscribers")]),e._v(" "),o("li",[e._v("Video views: 4,499 views")]),e._v(" "),o("li",[e._v("Publish date: April 14th")])])]),e._v(" "),o("li",[e._v("Delphi Digital podcasts & Brand Sponsor\n"),o("ul",[o("li",[e._v("Podcast ads are just starting, clubhouse (later aired as podcast) w/ key cosmonauts soon")])])])])])])]),e._v(" "),o("li",[e._v("Total Spent on Influencers (Twitter &YouTube): "),o("em",[e._v("25,462 ATOMS")])])])])]),e._v(" "),o("p",[e._v("And many more videos to be dropping soon Cosmonauts!")]),e._v(" "),o("h2",{attrs:{id:"section-iv-public-relations"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-iv-public-relations"}},[e._v("#")]),e._v(" SECTION IV - Public Relations")]),e._v(" "),o("p",[e._v("Hired GFCA - work begins 2021-04-07, placements were done in April 2021:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://www.businessinsider.com/crypto-investing-experts-bitcoin-price-drop-explainer-charts-data-watch-2021-4",target:"_blank",rel:"noopener noreferrer"}},[e._v("Peng Zhong featured in Business Insider"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Notes: world's favorite business brand — by a wide margin. With over 70 million unique visitors a month.")])])]),e._v(" "),o("li",[o("a",{attrs:{href:"https://www.financemagnates.com/cryptocurrency/news/are-nfts-a-good-long-term-investment-on-ownership-long-term-viability/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Garrette Furo featured in Finance Magnates"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Notes: global business news outlet that focuses on alternatives and trading industries with 553,507 unique monthly visitors.\nSpend: "),o("em",[e._v("990 ATOM")])])])])]),e._v(" "),o("h2",{attrs:{id:"section-v-meme-competition-2021"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#section-v-meme-competition-2021"}},[e._v("#")]),e._v(" SECTION V - MEME Competition 2021")]),e._v(" "),o("p",[e._v("Start 22nd of March (3 Total stages)\nSpend total: "),o("em",[e._v("3915 ATOM")]),e._v(" (Split up for each stage)\nStage 1 accepted entries for prizes (so far): 170+\n- Total valid entries: 2000+\n- Cosmonaut Telegram channel growth: 700+ new people in 2 weeks (organic)\n- Cosmonaut Twitter channel growth: 400+ new people in 2 weeks (organic)\n"),o("a",{attrs:{href:"https://docs.google.com/spreadsheets/d/1w8ry3-SxIRuEjMT1PoES8H19CsRT1aSjiKvVJEjFp_k/edit#gid=0",target:"_blank",rel:"noopener noreferrer"}},[e._v("MEME Live tracker"),o("OutboundLink")],1),e._v(" "),o("a",{attrs:{href:"https://twitter.com/ATOMCosmonauts/status/1373952259013349376?s=20",target:"_blank",rel:"noopener noreferrer"}},[e._v("Competition outline"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/main/assets/js/107.af3fb946.js b/main/assets/js/107.57088e77.js similarity index 99% rename from main/assets/js/107.af3fb946.js rename to main/assets/js/107.57088e77.js index 581be6c142e..60161d55574 100644 --- a/main/assets/js/107.af3fb946.js +++ b/main/assets/js/107.57088e77.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{526:function(e,t,s){"use strict";s.r(t);var a=s(1),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"signaling-proposal-deployment-of-gravity-bridge-on-the-cosmos-hub"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#signaling-proposal-deployment-of-gravity-bridge-on-the-cosmos-hub"}},[e._v("#")]),e._v(" Signaling Proposal - Deployment of Gravity Bridge on the Cosmos Hub")]),e._v(" "),s("p",[s("img",{attrs:{src:"https://raw.githubusercontent.com/althea-net/cosmos-gravity-bridge/main/gravity-bridge.svg",alt:"Gravity Bridge"}})]),e._v(" "),s("h2",{attrs:{id:"summary"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#summary"}},[e._v("#")]),e._v(" Summary")]),e._v(" "),s("p",[e._v("This proposal is a Request For Comment from the ATOM community regarding the activation of the Gravity Bridge module onto the Cosmos Hub.")]),e._v(" "),s("p",[e._v("By voting YES to this proposal, you will signal that you approve of having the Gravity Ethereum <> Cosmos bridge deployed onto the Cosmos Hub.")]),e._v(" "),s("h2",{attrs:{id:"vision"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#vision"}},[e._v("#")]),e._v(" Vision")]),e._v(" "),s("p",[e._v("Gravity as an Ethereum-Cosmos bridge is designed for the Cosmos Hub to pull as much value as possible into the orbits of Cosmos via a direct and decentralized bridge. Gravity will be able to bring ERC20 assets from Ethereum into Cosmos, as well as Cosmos assets to Ethereum ERC20 representations. ATOM, and any other asset in the Cosmos ecosystem, will be able to trade on Uniswap and other Ethereum AMMs, and interact with Ethereum DeFi like any ERC20 token. As well, Cosmos Hub users can use the Gravity DEX to trade between ERC20 assets and tokens that are transferred using IBC. This will bring a tremendous amount of liquidity and utility to these multi-chain assets.")]),e._v(" "),s("h2",{attrs:{id:"cosmos-ethereum-and-gravity"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-ethereum-and-gravity"}},[e._v("#")]),e._v(" Cosmos, Ethereum, and Gravity")]),e._v(" "),s("p",[e._v("Gravity is a secure and highly efficient bridge between EVM and Cosmos SDK-based blockchains. At a high-level, Gravity enables token transfers from Ethereum to the Cosmos Hub and back again by locking tokens on the Ethereum side and minting equivalent tokens on the Cosmos side.")]),e._v(" "),s("p",[e._v("Gravity is completely non-custodial. Control of the bridge mirrors the active validator set on the Cosmos SDK-based chain, and validator stake on Cosmos can be slashed for misbehavior involving the Gravity bridge.")]),e._v(" "),s("p",[e._v("The Gravity Ethereum contract is highly optimized, utilizing batches to dramatically reduce the cost of Cosmos -> Ethereum transfers. Sending funds from Cosmos back to Ethereum can be up to 50% less costly than a normal ERC20 send.")]),e._v(" "),s("h2",{attrs:{id:"how-do-validators-support-the-gravity-bridge"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-do-validators-support-the-gravity-bridge"}},[e._v("#")]),e._v(" How do validators support the Gravity Bridge?")]),e._v(" "),s("p",[e._v("Cosmos Hub validators will run three key software components of the Gravity bridge:")]),e._v(" "),s("ul",[s("li",[e._v("The Gravity bridge module, integrated into gaiad (the binary that runs the Cosmos Hub)")]),e._v(" "),s("li",[e._v("The Gravity bridge Orchestrator")]),e._v(" "),s("li",[e._v("A Geth light client or any Ethereum full node implementing the JSON-rpc standard")])]),e._v(" "),s("h3",{attrs:{id:"cosmos-to-ethereum"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-to-ethereum"}},[e._v("#")]),e._v(" Cosmos to Ethereum:")]),e._v(" "),s("p",[e._v("To send transactions from Cosmos to Ethereum, the Gravity Bridge module of a validator's Gaia instance first packages the transaction data, and makes it available on an endpoint. The Orchestrator then signs this data with the validator’s Ethereum key, and submits it as a message to the Ethereum network. The Ethereum signature of each Cosmos validator needs to be assembled and submitted to the Ethereum chain by relayers.")]),e._v(" "),s("p",[e._v("Validators may be slashed if they fail to submit Ethereum signatures within 10,000 blocks (about twelve to fourteen hours) of their creation.")]),e._v(" "),s("p",[e._v("The current liveness rules require a validator to sign at least 500 of the last 10,000 blocks (about twelve to fourteen hours)")]),e._v(" "),s("p",[e._v("Validators may also be slashed if they sign a message with their Ethereum key that was not created by the Gravity bridge module.")]),e._v(" "),s("p",[e._v("Gravity bridge has no other slashing conditions.")]),e._v(" "),s("h3",{attrs:{id:"ethereum-to-cosmos"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ethereum-to-cosmos"}},[e._v("#")]),e._v(" Ethereum to Cosmos:")]),e._v(" "),s("p",[e._v("The Orchestrator also monitors the Ethereum chain, submitting events that occur on Ethereum to Cosmos as messages. When more than 2/3 of the active voting power has sent a message observing the same Ethereum event, the Gravity module will take action.")]),e._v(" "),s("p",[e._v("This oracle action will not be incentivized, nor will it be enforced with slashing. If validators making up more than 33% of the staked tokens do not participate in the oracle, new deposits and withdrawals will not be processed until those validators resume their oracle obligations.")]),e._v(" "),s("p",[e._v("The oracle was designed to adhere to the Cosmos Hub validator security model without slashing conditions to ensure that a consensus failure on Ethereum does not affect operation of the Cosmos chain.")]),e._v(" "),s("h3",{attrs:{id:"slashing-conditions-spec"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#slashing-conditions-spec"}},[e._v("#")]),e._v(" Slashing Conditions Spec")]),e._v(" "),s("p",[e._v("https://github.com/cosmos/gravity-bridge/blob/main/spec/slashing-spec.md")]),e._v(" "),s("h2",{attrs:{id:"how-does-it-work"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-does-it-work"}},[e._v("#")]),e._v(" How does it work?")]),e._v(" "),s("p",[e._v("Gravity consists of 4 parts:")]),e._v(" "),s("ul",[s("li",[e._v("An Ethereum contract called Gravity.sol")]),e._v(" "),s("li",[e._v("The Gravity Cosmos module of Gaia")]),e._v(" "),s("li",[e._v("The orchestrator program which is run by Cosmos validators alongside the Gravity module")]),e._v(" "),s("li",[e._v("A market of relayers, who compete to submit transactions to Ethereum")])]),e._v(" "),s("h3",{attrs:{id:"gravity-sol"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gravity-sol"}},[e._v("#")]),e._v(" Gravity.sol")]),e._v(" "),s("p",[e._v("The Gravity Ethereum contract is a highly compact and efficient representation of weighted powers voting on Ethereum. It contains an Etheruem key from each Cosmos validator, as well as their voting power. This signer set is continuously updated as validation power changes on Cosmos, ensuring that it matches the current Cosmos validator set.")]),e._v(" "),s("p",[e._v("Sending tokens, or updating the validator set, contained in Gravity.sol requires more than 66% of the total voting power to approve the action. In this way Gravity.sol mirrors Tendermint consensus on the Cosmos chain as closely as possible on Ethereum.")]),e._v(" "),s("h3",{attrs:{id:"gravity-cosmos-module"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gravity-cosmos-module"}},[e._v("#")]),e._v(" Gravity Cosmos Module")]),e._v(" "),s("p",[e._v("The Gravity module governs and coordinates the bridge. Generating messages for the validators to sign with their Ethereum keys and providing these signatures to relayers who assemble and submit them to the Ethereum chain.")]),e._v(" "),s("h3",{attrs:{id:"orchestrator"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#orchestrator"}},[e._v("#")]),e._v(" Orchestrator")]),e._v(" "),s("p",[e._v("The Gravity bridge orchestrator performs all the external tasks the Gravity bridge requires for validators, which includes submission of signatures and submission of Ethereum events.")]),e._v(" "),s("p",[e._v("While the Gravity module concerns itself with the correctness and consensus state of the bridge, the Orchestrator is responsible for locating and creating the correct inputs.")]),e._v(" "),s("h3",{attrs:{id:"market-of-relayers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#market-of-relayers"}},[e._v("#")]),e._v(" Market of Relayers")]),e._v(" "),s("p",[e._v("Relayers are an unpermissioned role that observes the Cosmos chain for messages ready to be submitted to Ethereum.")]),e._v(" "),s("p",[e._v("The relayer then packages the validators signatures into an Ethereum transaction and submits that transaction to the Ethereum blockchain. All rewards in the Gravity bridge design are paid to msg.sender on Ethereum. This means that relayers do not require any balance on the Cosmos side and can immediately liquidate their earnings into ETH while continuing to relay newer messages.")]),e._v(" "),s("h2",{attrs:{id:"security-assumptions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#security-assumptions"}},[e._v("#")]),e._v(" Security assumptions")]),e._v(" "),s("p",[e._v("The Gravity bridge is designed with the assumption that the total amount of funds in Gravity.sol is less than the value of the validator set’s total staked tokens.")]),e._v(" "),s("p",[e._v("If this assumption does not hold true, it would be more profitable for validators to steal the funds in the bridge and simply lose their stake to slashing.")]),e._v(" "),s("p",[e._v("There is no automated enforcement of this assumption. It is up to the $ATOM holders to take action if the amount deposited in the bridge exceeds the total value of all stake on the hub.")]),e._v(" "),s("p",[e._v("It should be noted that this condition is not unique to the Gravity bridge. The same dynamic exists for any IBC connection, and even exists in scenarios other than cross-chain communication. For example, in a hypothetical blockchain keeping domain name records, this same vulnerability would exist if the potential profit from exploiting the domain name system was greater than the value of the validator set’s total staked tokens.")]),e._v(" "),s("h2",{attrs:{id:"ongoing-work"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ongoing-work"}},[e._v("#")]),e._v(" Ongoing work")]),e._v(" "),s("p",[e._v("The Gravity Bridge has been continuously tested throughout Q1/Q2 2021 by multiple ongoing test nets with a diverse group of validators.")]),e._v(" "),s("h3",{attrs:{id:"testing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),s("p",[e._v("The Althea team is committed to playing a long-term role in upgrading, documenting, and supporting Gravity over the coming years.\nThe Gravity bridge is currently live and running in a testnet, which validators can join by following the instructions "),s("a",{attrs:{href:"https://github.com/althea-net/althea-chain/blob/main/docs/althea/testnet-2.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),s("OutboundLink")],1)]),e._v(" "),s("h3",{attrs:{id:"audit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#audit"}},[e._v("#")]),e._v(" Audit:")]),e._v(" "),s("p",[e._v("The Gravity bridge module is currently undergoing an audit with Informal Systems estimated to be completed by the end of July, 2021.")]),e._v(" "),s("p",[e._v("Phase one of the audit has been completed, which resulted in the addition of evidence based slashing and several other minor design fixes.")]),e._v(" "),s("p",[e._v("The phase two design audit will be completed by the end of June. To be followed by phrase three, an implementation audit to be completed by the end of July.")]),e._v(" "),s("h3",{attrs:{id:"conclusion"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion:")]),e._v(" "),s("p",[e._v("With this proposal, the Althea team, together with Cosmos ecosystem partners, will expedite the development of the Gravity Bridge with an incentivized testnet and launch in Q3 2021. Althea will be closely shepherding the Gravity Bridge throughout all phases related to the testing, audit, and implementation process on the Cosmos Hub.")]),e._v(" "),s("h2",{attrs:{id:"proposers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#proposers"}},[e._v("#")]),e._v(" Proposers")]),e._v(" "),s("p",[s("em",[e._v("The Althea Gravity bridge team.")])]),e._v(" "),s("p",[e._v("Deborah Simpiler, Justin Kilpatrick and, Jehan Tremback")]),e._v(" "),s("p",[e._v("We’d like to share praise and thank you for contributions from the following teams!")]),e._v(" "),s("p",[e._v("Interchain Foundation")]),e._v(" "),s("p",[e._v("All in Bits/Tendermint")]),e._v(" "),s("p",[e._v("Sommelier, Informal, Injective, Confio")]),e._v(" "),s("p",[s("em",[e._v("Gravity Readiness Committee:")])]),e._v(" "),s("p",[e._v("Justin Kilpatrick and Jehan Tremback, Althea")]),e._v(" "),s("p",[e._v("Zarko Milosevic, Informal Systems")]),e._v(" "),s("p",[e._v("Zaki Manian, Sommelier/Iqlusion")]),e._v(" "),s("h2",{attrs:{id:"governance-votes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#governance-votes"}},[e._v("#")]),e._v(" Governance Votes")]),e._v(" "),s("p",[e._v("The following items summarize the voting options and what it means for this proposal.")]),e._v(" "),s("ul",[s("li",[s("strong",[e._v("YES")]),e._v(": You agree that Gravity Bridge should be deployed to the Cosmos Hub.")]),e._v(" "),s("li",[s("strong",[e._v("NO")]),e._v(": You disapprove of deploying Gravity bridge on the Cosmos Hub in its current form (please indicate in the "),s("a",{attrs:{href:"https://forum.cosmos.network/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Forum"),s("OutboundLink")],1),e._v(" why this is the case).")]),e._v(" "),s("li",[s("strong",[e._v("NO WITH VETO")]),e._v(": You are strongly opposed to the deployment of Gravity bridge on the Cosmos Hub and will exit the network if this occurred.")]),e._v(" "),s("li",[s("strong",[e._v("ABSTAIN")]),e._v(": You are impartial to the outcome of the proposal.")])]),e._v(" "),s("h2",{attrs:{id:"appendix"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#appendix"}},[e._v("#")]),e._v(" Appendix")]),e._v(" "),s("h3",{attrs:{id:"faq"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#faq"}},[e._v("#")]),e._v(" FAQ")]),e._v(" "),s("h3",{attrs:{id:"is-running-the-gravity-module-difficult-for-cosmos-validators"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#is-running-the-gravity-module-difficult-for-cosmos-validators"}},[e._v("#")]),e._v(" Is running the Gravity Module difficult for Cosmos Validators?")]),e._v(" "),s("p",[e._v("Soliciting feedback from dozens of Cosmos hub validators and over 100 test net participants, we found that running the Gravity module is not a difficult task or undue burden on Cosmos validators.")]),e._v(" "),s("h3",{attrs:{id:"is-the-gravity-bridge-secure"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#is-the-gravity-bridge-secure"}},[e._v("#")]),e._v(" Is the Gravity bridge secure?")]),e._v(" "),s("p",[e._v("The Gravity bridge is undergoing an audit by Informal Systems. It will then be up to ATOM holders to interpret the results of the code audit and weigh implementation risks in another governance proposal before deployment. Fundamentally, the design of the Gravity Bridge means that its security is directly represented by the security of the validator set on Cosmos Hub. On the Cosmos side, the Gravity Bridge security design adheres to the Cosmos network's ideal of safety over liveness assured by 2/3+ validator voting power, but without sacrificing safety or liveness due to issues that may rarely arise with Ethereum.")]),e._v(" "),s("h3",{attrs:{id:"are-slashing-conditions-a-problem-for-validators"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#are-slashing-conditions-a-problem-for-validators"}},[e._v("#")]),e._v(" Are slashing conditions a problem for validators?")]),e._v(" "),s("p",[e._v("Gravity Bridge slashing conditions closely mirror the slashing conditions which validators are already subject to.")]),e._v(" "),s("ul",[s("li",[s("p",[e._v("Uptime: Validators on Cosmos currently must keep their validator software running at all times, or risk slashing. Gravity adds an additional binary which must be run, which is low in difficulty, resource usage, and operational requirements.")])]),e._v(" "),s("li",[s("p",[e._v("Equivocation: Validators on Cosmos are subject to slashing if they sign two blocks at the same height. It is possible for this to happen through accidental misconfiguration. Gravity adds an additional item which must not be signed, which are the fraudulent bridge transactions that never existed on Cosmos. It is not possible for this to happen by accident, so this slashing condition is much less of a risk than the Hub’s existing slashing conditions.")])])]),e._v(" "),s("h3",{attrs:{id:"what-about-peg-zones"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-about-peg-zones"}},[e._v("#")]),e._v(" What about peg zones?")]),e._v(" "),s("p",[e._v('The concept of a "peg zone" has been around in Cosmos for a while. This is a separate chain which runs the Gravity Bridge and connects to Ethereum or another blockchain. We believe that running Gravity Bridge on the Cosmos Hub and connecting directly is the superior solution. First, let\'s look at what different forms peg zones could take.')]),e._v(" "),s("ol",[s("li",[s("p",[e._v("The most likely type of peg zone is what will result if this proposal does not pass. There are at least 5 Cosmos SDK chains who will be using the Gravity Bridge module to connect to Ethereum. There will be no official way to bridge Ethereum assets into the Cosmos ecosystem. Instead there will be many dueling representations of Ethereum assets. It goes without saying that this will confuse Cosmos users. If one of these peg zones gains the upper hand and becomes dominant, the Cosmos Hub will miss out on all the transaction fees that it generates.")])]),e._v(" "),s("li",[s("p",[e._v("It would also be possible to establish an official peg zone, and airdrop its staking token 1:1 to current Atom holders. This would at least allow the Cosmos Hub stakeholders to keep the economic benefit of activity on the peg zone. However, this is capital inefficient. A dollar staked on this peg zone would not be staked on the hub and vice versa. Splitting stake between these two important chains would make both weaker. Cosmos users will also need to choose whether to put value into Atom or put value into the peg zone token, resulting in less value in Atom.")])]),e._v(" "),s("li",[s("p",[e._v("Shared security has been talked about for a long time in Cosmos, but it is not yet in production. Establishing a peg zone with shared security with the Cosmos Hub would allow the same validator set to validate both chains, and put the same Atoms at stake to secure each of them. This would avoid the issues of scenarios 1 and 2 above. However, we cannot afford to wait. Many other PoS blockchains already have Ethereum bridges and Cosmos needs to continue innovating to stay relevant.")])])]),e._v(" "),s("p",[e._v("This is easier to both design and debug, and is ideal for high-value chains like the Hub.")]),e._v(" "),s("h3",{attrs:{id:"why-not-use-ibc-to-create-a-bridge-to-ethereum"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#why-not-use-ibc-to-create-a-bridge-to-ethereum"}},[e._v("#")]),e._v(" Why not use IBC to create a bridge to Ethereum?")]),e._v(" "),s("p",[e._v("Ethereum as it currently exists (ETH1) fundamentally can not implement IBC. It may be possible in the future to create an IBC bridge with ETH2.")]),e._v(" "),s("p",[e._v("Implementing IBC for ETH2 require significant development effort and coordination with the Ethereum team as well as the completion and deployment of ETH2, which is on an uncertain timeline.")]),e._v(" "),s("p",[e._v("Gravity bridge is a design that can be deployed in the forseeable future and will continue to function so long as ETH1 compatibility is maintained.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{525:function(e,t,s){"use strict";s.r(t);var a=s(1),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"signaling-proposal-deployment-of-gravity-bridge-on-the-cosmos-hub"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#signaling-proposal-deployment-of-gravity-bridge-on-the-cosmos-hub"}},[e._v("#")]),e._v(" Signaling Proposal - Deployment of Gravity Bridge on the Cosmos Hub")]),e._v(" "),s("p",[s("img",{attrs:{src:"https://raw.githubusercontent.com/althea-net/cosmos-gravity-bridge/main/gravity-bridge.svg",alt:"Gravity Bridge"}})]),e._v(" "),s("h2",{attrs:{id:"summary"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#summary"}},[e._v("#")]),e._v(" Summary")]),e._v(" "),s("p",[e._v("This proposal is a Request For Comment from the ATOM community regarding the activation of the Gravity Bridge module onto the Cosmos Hub.")]),e._v(" "),s("p",[e._v("By voting YES to this proposal, you will signal that you approve of having the Gravity Ethereum <> Cosmos bridge deployed onto the Cosmos Hub.")]),e._v(" "),s("h2",{attrs:{id:"vision"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#vision"}},[e._v("#")]),e._v(" Vision")]),e._v(" "),s("p",[e._v("Gravity as an Ethereum-Cosmos bridge is designed for the Cosmos Hub to pull as much value as possible into the orbits of Cosmos via a direct and decentralized bridge. Gravity will be able to bring ERC20 assets from Ethereum into Cosmos, as well as Cosmos assets to Ethereum ERC20 representations. ATOM, and any other asset in the Cosmos ecosystem, will be able to trade on Uniswap and other Ethereum AMMs, and interact with Ethereum DeFi like any ERC20 token. As well, Cosmos Hub users can use the Gravity DEX to trade between ERC20 assets and tokens that are transferred using IBC. This will bring a tremendous amount of liquidity and utility to these multi-chain assets.")]),e._v(" "),s("h2",{attrs:{id:"cosmos-ethereum-and-gravity"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-ethereum-and-gravity"}},[e._v("#")]),e._v(" Cosmos, Ethereum, and Gravity")]),e._v(" "),s("p",[e._v("Gravity is a secure and highly efficient bridge between EVM and Cosmos SDK-based blockchains. At a high-level, Gravity enables token transfers from Ethereum to the Cosmos Hub and back again by locking tokens on the Ethereum side and minting equivalent tokens on the Cosmos side.")]),e._v(" "),s("p",[e._v("Gravity is completely non-custodial. Control of the bridge mirrors the active validator set on the Cosmos SDK-based chain, and validator stake on Cosmos can be slashed for misbehavior involving the Gravity bridge.")]),e._v(" "),s("p",[e._v("The Gravity Ethereum contract is highly optimized, utilizing batches to dramatically reduce the cost of Cosmos -> Ethereum transfers. Sending funds from Cosmos back to Ethereum can be up to 50% less costly than a normal ERC20 send.")]),e._v(" "),s("h2",{attrs:{id:"how-do-validators-support-the-gravity-bridge"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-do-validators-support-the-gravity-bridge"}},[e._v("#")]),e._v(" How do validators support the Gravity Bridge?")]),e._v(" "),s("p",[e._v("Cosmos Hub validators will run three key software components of the Gravity bridge:")]),e._v(" "),s("ul",[s("li",[e._v("The Gravity bridge module, integrated into gaiad (the binary that runs the Cosmos Hub)")]),e._v(" "),s("li",[e._v("The Gravity bridge Orchestrator")]),e._v(" "),s("li",[e._v("A Geth light client or any Ethereum full node implementing the JSON-rpc standard")])]),e._v(" "),s("h3",{attrs:{id:"cosmos-to-ethereum"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-to-ethereum"}},[e._v("#")]),e._v(" Cosmos to Ethereum:")]),e._v(" "),s("p",[e._v("To send transactions from Cosmos to Ethereum, the Gravity Bridge module of a validator's Gaia instance first packages the transaction data, and makes it available on an endpoint. The Orchestrator then signs this data with the validator’s Ethereum key, and submits it as a message to the Ethereum network. The Ethereum signature of each Cosmos validator needs to be assembled and submitted to the Ethereum chain by relayers.")]),e._v(" "),s("p",[e._v("Validators may be slashed if they fail to submit Ethereum signatures within 10,000 blocks (about twelve to fourteen hours) of their creation.")]),e._v(" "),s("p",[e._v("The current liveness rules require a validator to sign at least 500 of the last 10,000 blocks (about twelve to fourteen hours)")]),e._v(" "),s("p",[e._v("Validators may also be slashed if they sign a message with their Ethereum key that was not created by the Gravity bridge module.")]),e._v(" "),s("p",[e._v("Gravity bridge has no other slashing conditions.")]),e._v(" "),s("h3",{attrs:{id:"ethereum-to-cosmos"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ethereum-to-cosmos"}},[e._v("#")]),e._v(" Ethereum to Cosmos:")]),e._v(" "),s("p",[e._v("The Orchestrator also monitors the Ethereum chain, submitting events that occur on Ethereum to Cosmos as messages. When more than 2/3 of the active voting power has sent a message observing the same Ethereum event, the Gravity module will take action.")]),e._v(" "),s("p",[e._v("This oracle action will not be incentivized, nor will it be enforced with slashing. If validators making up more than 33% of the staked tokens do not participate in the oracle, new deposits and withdrawals will not be processed until those validators resume their oracle obligations.")]),e._v(" "),s("p",[e._v("The oracle was designed to adhere to the Cosmos Hub validator security model without slashing conditions to ensure that a consensus failure on Ethereum does not affect operation of the Cosmos chain.")]),e._v(" "),s("h3",{attrs:{id:"slashing-conditions-spec"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#slashing-conditions-spec"}},[e._v("#")]),e._v(" Slashing Conditions Spec")]),e._v(" "),s("p",[e._v("https://github.com/cosmos/gravity-bridge/blob/main/spec/slashing-spec.md")]),e._v(" "),s("h2",{attrs:{id:"how-does-it-work"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-does-it-work"}},[e._v("#")]),e._v(" How does it work?")]),e._v(" "),s("p",[e._v("Gravity consists of 4 parts:")]),e._v(" "),s("ul",[s("li",[e._v("An Ethereum contract called Gravity.sol")]),e._v(" "),s("li",[e._v("The Gravity Cosmos module of Gaia")]),e._v(" "),s("li",[e._v("The orchestrator program which is run by Cosmos validators alongside the Gravity module")]),e._v(" "),s("li",[e._v("A market of relayers, who compete to submit transactions to Ethereum")])]),e._v(" "),s("h3",{attrs:{id:"gravity-sol"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gravity-sol"}},[e._v("#")]),e._v(" Gravity.sol")]),e._v(" "),s("p",[e._v("The Gravity Ethereum contract is a highly compact and efficient representation of weighted powers voting on Ethereum. It contains an Etheruem key from each Cosmos validator, as well as their voting power. This signer set is continuously updated as validation power changes on Cosmos, ensuring that it matches the current Cosmos validator set.")]),e._v(" "),s("p",[e._v("Sending tokens, or updating the validator set, contained in Gravity.sol requires more than 66% of the total voting power to approve the action. In this way Gravity.sol mirrors Tendermint consensus on the Cosmos chain as closely as possible on Ethereum.")]),e._v(" "),s("h3",{attrs:{id:"gravity-cosmos-module"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gravity-cosmos-module"}},[e._v("#")]),e._v(" Gravity Cosmos Module")]),e._v(" "),s("p",[e._v("The Gravity module governs and coordinates the bridge. Generating messages for the validators to sign with their Ethereum keys and providing these signatures to relayers who assemble and submit them to the Ethereum chain.")]),e._v(" "),s("h3",{attrs:{id:"orchestrator"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#orchestrator"}},[e._v("#")]),e._v(" Orchestrator")]),e._v(" "),s("p",[e._v("The Gravity bridge orchestrator performs all the external tasks the Gravity bridge requires for validators, which includes submission of signatures and submission of Ethereum events.")]),e._v(" "),s("p",[e._v("While the Gravity module concerns itself with the correctness and consensus state of the bridge, the Orchestrator is responsible for locating and creating the correct inputs.")]),e._v(" "),s("h3",{attrs:{id:"market-of-relayers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#market-of-relayers"}},[e._v("#")]),e._v(" Market of Relayers")]),e._v(" "),s("p",[e._v("Relayers are an unpermissioned role that observes the Cosmos chain for messages ready to be submitted to Ethereum.")]),e._v(" "),s("p",[e._v("The relayer then packages the validators signatures into an Ethereum transaction and submits that transaction to the Ethereum blockchain. All rewards in the Gravity bridge design are paid to msg.sender on Ethereum. This means that relayers do not require any balance on the Cosmos side and can immediately liquidate their earnings into ETH while continuing to relay newer messages.")]),e._v(" "),s("h2",{attrs:{id:"security-assumptions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#security-assumptions"}},[e._v("#")]),e._v(" Security assumptions")]),e._v(" "),s("p",[e._v("The Gravity bridge is designed with the assumption that the total amount of funds in Gravity.sol is less than the value of the validator set’s total staked tokens.")]),e._v(" "),s("p",[e._v("If this assumption does not hold true, it would be more profitable for validators to steal the funds in the bridge and simply lose their stake to slashing.")]),e._v(" "),s("p",[e._v("There is no automated enforcement of this assumption. It is up to the $ATOM holders to take action if the amount deposited in the bridge exceeds the total value of all stake on the hub.")]),e._v(" "),s("p",[e._v("It should be noted that this condition is not unique to the Gravity bridge. The same dynamic exists for any IBC connection, and even exists in scenarios other than cross-chain communication. For example, in a hypothetical blockchain keeping domain name records, this same vulnerability would exist if the potential profit from exploiting the domain name system was greater than the value of the validator set’s total staked tokens.")]),e._v(" "),s("h2",{attrs:{id:"ongoing-work"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ongoing-work"}},[e._v("#")]),e._v(" Ongoing work")]),e._v(" "),s("p",[e._v("The Gravity Bridge has been continuously tested throughout Q1/Q2 2021 by multiple ongoing test nets with a diverse group of validators.")]),e._v(" "),s("h3",{attrs:{id:"testing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),s("p",[e._v("The Althea team is committed to playing a long-term role in upgrading, documenting, and supporting Gravity over the coming years.\nThe Gravity bridge is currently live and running in a testnet, which validators can join by following the instructions "),s("a",{attrs:{href:"https://github.com/althea-net/althea-chain/blob/main/docs/althea/testnet-2.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),s("OutboundLink")],1)]),e._v(" "),s("h3",{attrs:{id:"audit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#audit"}},[e._v("#")]),e._v(" Audit:")]),e._v(" "),s("p",[e._v("The Gravity bridge module is currently undergoing an audit with Informal Systems estimated to be completed by the end of July, 2021.")]),e._v(" "),s("p",[e._v("Phase one of the audit has been completed, which resulted in the addition of evidence based slashing and several other minor design fixes.")]),e._v(" "),s("p",[e._v("The phase two design audit will be completed by the end of June. To be followed by phrase three, an implementation audit to be completed by the end of July.")]),e._v(" "),s("h3",{attrs:{id:"conclusion"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#conclusion"}},[e._v("#")]),e._v(" Conclusion:")]),e._v(" "),s("p",[e._v("With this proposal, the Althea team, together with Cosmos ecosystem partners, will expedite the development of the Gravity Bridge with an incentivized testnet and launch in Q3 2021. Althea will be closely shepherding the Gravity Bridge throughout all phases related to the testing, audit, and implementation process on the Cosmos Hub.")]),e._v(" "),s("h2",{attrs:{id:"proposers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#proposers"}},[e._v("#")]),e._v(" Proposers")]),e._v(" "),s("p",[s("em",[e._v("The Althea Gravity bridge team.")])]),e._v(" "),s("p",[e._v("Deborah Simpiler, Justin Kilpatrick and, Jehan Tremback")]),e._v(" "),s("p",[e._v("We’d like to share praise and thank you for contributions from the following teams!")]),e._v(" "),s("p",[e._v("Interchain Foundation")]),e._v(" "),s("p",[e._v("All in Bits/Tendermint")]),e._v(" "),s("p",[e._v("Sommelier, Informal, Injective, Confio")]),e._v(" "),s("p",[s("em",[e._v("Gravity Readiness Committee:")])]),e._v(" "),s("p",[e._v("Justin Kilpatrick and Jehan Tremback, Althea")]),e._v(" "),s("p",[e._v("Zarko Milosevic, Informal Systems")]),e._v(" "),s("p",[e._v("Zaki Manian, Sommelier/Iqlusion")]),e._v(" "),s("h2",{attrs:{id:"governance-votes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#governance-votes"}},[e._v("#")]),e._v(" Governance Votes")]),e._v(" "),s("p",[e._v("The following items summarize the voting options and what it means for this proposal.")]),e._v(" "),s("ul",[s("li",[s("strong",[e._v("YES")]),e._v(": You agree that Gravity Bridge should be deployed to the Cosmos Hub.")]),e._v(" "),s("li",[s("strong",[e._v("NO")]),e._v(": You disapprove of deploying Gravity bridge on the Cosmos Hub in its current form (please indicate in the "),s("a",{attrs:{href:"https://forum.cosmos.network/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Forum"),s("OutboundLink")],1),e._v(" why this is the case).")]),e._v(" "),s("li",[s("strong",[e._v("NO WITH VETO")]),e._v(": You are strongly opposed to the deployment of Gravity bridge on the Cosmos Hub and will exit the network if this occurred.")]),e._v(" "),s("li",[s("strong",[e._v("ABSTAIN")]),e._v(": You are impartial to the outcome of the proposal.")])]),e._v(" "),s("h2",{attrs:{id:"appendix"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#appendix"}},[e._v("#")]),e._v(" Appendix")]),e._v(" "),s("h3",{attrs:{id:"faq"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#faq"}},[e._v("#")]),e._v(" FAQ")]),e._v(" "),s("h3",{attrs:{id:"is-running-the-gravity-module-difficult-for-cosmos-validators"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#is-running-the-gravity-module-difficult-for-cosmos-validators"}},[e._v("#")]),e._v(" Is running the Gravity Module difficult for Cosmos Validators?")]),e._v(" "),s("p",[e._v("Soliciting feedback from dozens of Cosmos hub validators and over 100 test net participants, we found that running the Gravity module is not a difficult task or undue burden on Cosmos validators.")]),e._v(" "),s("h3",{attrs:{id:"is-the-gravity-bridge-secure"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#is-the-gravity-bridge-secure"}},[e._v("#")]),e._v(" Is the Gravity bridge secure?")]),e._v(" "),s("p",[e._v("The Gravity bridge is undergoing an audit by Informal Systems. It will then be up to ATOM holders to interpret the results of the code audit and weigh implementation risks in another governance proposal before deployment. Fundamentally, the design of the Gravity Bridge means that its security is directly represented by the security of the validator set on Cosmos Hub. On the Cosmos side, the Gravity Bridge security design adheres to the Cosmos network's ideal of safety over liveness assured by 2/3+ validator voting power, but without sacrificing safety or liveness due to issues that may rarely arise with Ethereum.")]),e._v(" "),s("h3",{attrs:{id:"are-slashing-conditions-a-problem-for-validators"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#are-slashing-conditions-a-problem-for-validators"}},[e._v("#")]),e._v(" Are slashing conditions a problem for validators?")]),e._v(" "),s("p",[e._v("Gravity Bridge slashing conditions closely mirror the slashing conditions which validators are already subject to.")]),e._v(" "),s("ul",[s("li",[s("p",[e._v("Uptime: Validators on Cosmos currently must keep their validator software running at all times, or risk slashing. Gravity adds an additional binary which must be run, which is low in difficulty, resource usage, and operational requirements.")])]),e._v(" "),s("li",[s("p",[e._v("Equivocation: Validators on Cosmos are subject to slashing if they sign two blocks at the same height. It is possible for this to happen through accidental misconfiguration. Gravity adds an additional item which must not be signed, which are the fraudulent bridge transactions that never existed on Cosmos. It is not possible for this to happen by accident, so this slashing condition is much less of a risk than the Hub’s existing slashing conditions.")])])]),e._v(" "),s("h3",{attrs:{id:"what-about-peg-zones"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-about-peg-zones"}},[e._v("#")]),e._v(" What about peg zones?")]),e._v(" "),s("p",[e._v('The concept of a "peg zone" has been around in Cosmos for a while. This is a separate chain which runs the Gravity Bridge and connects to Ethereum or another blockchain. We believe that running Gravity Bridge on the Cosmos Hub and connecting directly is the superior solution. First, let\'s look at what different forms peg zones could take.')]),e._v(" "),s("ol",[s("li",[s("p",[e._v("The most likely type of peg zone is what will result if this proposal does not pass. There are at least 5 Cosmos SDK chains who will be using the Gravity Bridge module to connect to Ethereum. There will be no official way to bridge Ethereum assets into the Cosmos ecosystem. Instead there will be many dueling representations of Ethereum assets. It goes without saying that this will confuse Cosmos users. If one of these peg zones gains the upper hand and becomes dominant, the Cosmos Hub will miss out on all the transaction fees that it generates.")])]),e._v(" "),s("li",[s("p",[e._v("It would also be possible to establish an official peg zone, and airdrop its staking token 1:1 to current Atom holders. This would at least allow the Cosmos Hub stakeholders to keep the economic benefit of activity on the peg zone. However, this is capital inefficient. A dollar staked on this peg zone would not be staked on the hub and vice versa. Splitting stake between these two important chains would make both weaker. Cosmos users will also need to choose whether to put value into Atom or put value into the peg zone token, resulting in less value in Atom.")])]),e._v(" "),s("li",[s("p",[e._v("Shared security has been talked about for a long time in Cosmos, but it is not yet in production. Establishing a peg zone with shared security with the Cosmos Hub would allow the same validator set to validate both chains, and put the same Atoms at stake to secure each of them. This would avoid the issues of scenarios 1 and 2 above. However, we cannot afford to wait. Many other PoS blockchains already have Ethereum bridges and Cosmos needs to continue innovating to stay relevant.")])])]),e._v(" "),s("p",[e._v("This is easier to both design and debug, and is ideal for high-value chains like the Hub.")]),e._v(" "),s("h3",{attrs:{id:"why-not-use-ibc-to-create-a-bridge-to-ethereum"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#why-not-use-ibc-to-create-a-bridge-to-ethereum"}},[e._v("#")]),e._v(" Why not use IBC to create a bridge to Ethereum?")]),e._v(" "),s("p",[e._v("Ethereum as it currently exists (ETH1) fundamentally can not implement IBC. It may be possible in the future to create an IBC bridge with ETH2.")]),e._v(" "),s("p",[e._v("Implementing IBC for ETH2 require significant development effort and coordination with the Ethereum team as well as the completion and deployment of ETH2, which is on an uncertain timeline.")]),e._v(" "),s("p",[e._v("Gravity bridge is a design that can be deployed in the forseeable future and will continue to function so long as ETH1 compatibility is maintained.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/main/assets/js/108.4cae5fcd.js b/main/assets/js/108.903f8c9f.js similarity index 98% rename from main/assets/js/108.4cae5fcd.js rename to main/assets/js/108.903f8c9f.js index 63602dcd39a..899edc5bc75 100644 --- a/main/assets/js/108.4cae5fcd.js +++ b/main/assets/js/108.903f8c9f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{590:function(e,t,o){"use strict";o.r(t);var i=o(1),s=Object(i.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"atom-🤝-osmosis-allocate-community-pool-to-atom-liquidity-incentives"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#atom-🤝-osmosis-allocate-community-pool-to-atom-liquidity-incentives"}},[e._v("#")]),e._v(" ATOM 🤝 Osmosis: Allocate Community Pool to ATOM Liquidity Incentives")]),e._v(" "),o("p",[e._v("ATOMs should be the base money of Cosmos, just like ETH is the base money of the entire Ethereum DeFi ecosystem. ATOM is currently well positioned to play this role among Cosmos assets because it has the highest market cap, most liquidity, largest brand, and many integrations with fiat onramps. ATOM is the gateway to Cosmos.")]),e._v(" "),o("p",[e._v("In the Cosmos Hub Port City vision, ATOMs are pitched as equity in the Cosmos Hub. However, this alone is insufficient to establish ATOM as the base currency of the Cosmos ecosystem as a whole. Instead, the ATOM community must work to actively promote the use of ATOMs throughout the Cosmos ecosystem, rather than passively relying on the Hub's reputation to create ATOM's value.")]),e._v(" "),o("p",[e._v("In order to cement the role of ATOMs in Cosmos DeFi, the Cosmos Hub should leverage its community pool to help align incentives with other protocols within the Cosmos ecosystem. We propose beginning this initiative by using the community pool ATOMs to incentivize deep ATOM base pair liquidity pools on the Osmosis Network.")]),e._v(" "),o("p",[e._v("Osmosis is the first IBC-enabled DeFi application. Within its 3 weeks of existence, it has already 100x’d the number of IBC transactions ever created, demonstrating the power of IBC and the ability of the Cosmos SDK to bootstrap DeFi protocols with $100M+ TVL in a short period of time. Since its announcement Osmosis has helped bring renewed attention and interest to Cosmos from the crypto community at large and kickstarted the era of Cosmos DeFi.")]),e._v(" "),o("p",[e._v("Osmosis has already helped in establishing ATOM as the Schelling Point of the Cosmos ecosystem. The genesis distribution of OSMO was primarily based on an airdrop to ATOM holders specifically, acknowledging the importance of ATOM to all future projects within the Cosmos. Furthermore, the Osmosis LP rewards currently incentivize ATOMs to be one of the main base pairs of the platform.")]),e._v(" "),o("p",[e._v("Osmosis has the ability to incentivize AMM liquidity, a feature not available on any other IBC-enabled DEX. Osmosis already uses its own native OSMO liquidity rewards to incentivize ATOMs to be one of the main base pairs, leading to ~2.2 million ATOMs already providing liquidity on the platform.")]),e._v(" "),o("p",[e._v("In addition to these native OSMO LP Rewards, the platform also includes a feature called “external incentives” that allows anyone to permissionlessly add additional incentives in any token to the LPs of any AMM pools they wish. You can read more about this mechanism here: https://medium.com/osmosis/osmosis-liquidity-mining-101-2fa58d0e9d4d#f413 . Pools containing Cosmos assets such as AKT and XPRT are already planned to receive incentives from their respective community pools and/or foundations.")]),e._v(" "),o("p",[e._v("We propose the Cosmos Hub dedicate 100,000 ATOMs from its Community Pool to be allocated towards liquidity incentives on Osmosis over the next 3 months. This community fund proposal will transfer 100,000 ATOMs to a multisig group who will then allocate the ATOMs to bonded liquidity gauges on Osmosis on a biweekly basis, according to direction given by Cosmos Hub governance. For simplicity, we propose setting the liquidity incentives to initially point to Osmosis Pool #1, the ATOM/OSMO pool, which is the pool with by far the highest TVL and Volume. Cosmos Hub governance can then use Text Proposals to further direct the multisig members to reallocate incentives to new pools.")]),e._v(" "),o("p",[e._v("The multisig will consist of a 2/3 key holder set consisting of the following individuals whom have all agreed to participate in this process shall this proposal pass:")]),e._v(" "),o("ul",[o("li",[e._v("Zaki Manian")]),e._v(" "),o("li",[e._v("Federico Kunze")]),e._v(" "),o("li",[e._v("Marko Baricevic")])]),e._v(" "),o("p",[e._v("This is one small step for the Hub, but one giant leap for ATOM-aligned.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{589:function(e,t,o){"use strict";o.r(t);var i=o(1),s=Object(i.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"atom-🤝-osmosis-allocate-community-pool-to-atom-liquidity-incentives"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#atom-🤝-osmosis-allocate-community-pool-to-atom-liquidity-incentives"}},[e._v("#")]),e._v(" ATOM 🤝 Osmosis: Allocate Community Pool to ATOM Liquidity Incentives")]),e._v(" "),o("p",[e._v("ATOMs should be the base money of Cosmos, just like ETH is the base money of the entire Ethereum DeFi ecosystem. ATOM is currently well positioned to play this role among Cosmos assets because it has the highest market cap, most liquidity, largest brand, and many integrations with fiat onramps. ATOM is the gateway to Cosmos.")]),e._v(" "),o("p",[e._v("In the Cosmos Hub Port City vision, ATOMs are pitched as equity in the Cosmos Hub. However, this alone is insufficient to establish ATOM as the base currency of the Cosmos ecosystem as a whole. Instead, the ATOM community must work to actively promote the use of ATOMs throughout the Cosmos ecosystem, rather than passively relying on the Hub's reputation to create ATOM's value.")]),e._v(" "),o("p",[e._v("In order to cement the role of ATOMs in Cosmos DeFi, the Cosmos Hub should leverage its community pool to help align incentives with other protocols within the Cosmos ecosystem. We propose beginning this initiative by using the community pool ATOMs to incentivize deep ATOM base pair liquidity pools on the Osmosis Network.")]),e._v(" "),o("p",[e._v("Osmosis is the first IBC-enabled DeFi application. Within its 3 weeks of existence, it has already 100x’d the number of IBC transactions ever created, demonstrating the power of IBC and the ability of the Cosmos SDK to bootstrap DeFi protocols with $100M+ TVL in a short period of time. Since its announcement Osmosis has helped bring renewed attention and interest to Cosmos from the crypto community at large and kickstarted the era of Cosmos DeFi.")]),e._v(" "),o("p",[e._v("Osmosis has already helped in establishing ATOM as the Schelling Point of the Cosmos ecosystem. The genesis distribution of OSMO was primarily based on an airdrop to ATOM holders specifically, acknowledging the importance of ATOM to all future projects within the Cosmos. Furthermore, the Osmosis LP rewards currently incentivize ATOMs to be one of the main base pairs of the platform.")]),e._v(" "),o("p",[e._v("Osmosis has the ability to incentivize AMM liquidity, a feature not available on any other IBC-enabled DEX. Osmosis already uses its own native OSMO liquidity rewards to incentivize ATOMs to be one of the main base pairs, leading to ~2.2 million ATOMs already providing liquidity on the platform.")]),e._v(" "),o("p",[e._v("In addition to these native OSMO LP Rewards, the platform also includes a feature called “external incentives” that allows anyone to permissionlessly add additional incentives in any token to the LPs of any AMM pools they wish. You can read more about this mechanism here: https://medium.com/osmosis/osmosis-liquidity-mining-101-2fa58d0e9d4d#f413 . Pools containing Cosmos assets such as AKT and XPRT are already planned to receive incentives from their respective community pools and/or foundations.")]),e._v(" "),o("p",[e._v("We propose the Cosmos Hub dedicate 100,000 ATOMs from its Community Pool to be allocated towards liquidity incentives on Osmosis over the next 3 months. This community fund proposal will transfer 100,000 ATOMs to a multisig group who will then allocate the ATOMs to bonded liquidity gauges on Osmosis on a biweekly basis, according to direction given by Cosmos Hub governance. For simplicity, we propose setting the liquidity incentives to initially point to Osmosis Pool #1, the ATOM/OSMO pool, which is the pool with by far the highest TVL and Volume. Cosmos Hub governance can then use Text Proposals to further direct the multisig members to reallocate incentives to new pools.")]),e._v(" "),o("p",[e._v("The multisig will consist of a 2/3 key holder set consisting of the following individuals whom have all agreed to participate in this process shall this proposal pass:")]),e._v(" "),o("ul",[o("li",[e._v("Zaki Manian")]),e._v(" "),o("li",[e._v("Federico Kunze")]),e._v(" "),o("li",[e._v("Marko Baricevic")])]),e._v(" "),o("p",[e._v("This is one small step for the Hub, but one giant leap for ATOM-aligned.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/109.18481c96.js b/main/assets/js/109.dd490f1e.js similarity index 98% rename from main/assets/js/109.18481c96.js rename to main/assets/js/109.dd490f1e.js index c8b46b1b057..c65ff12a00f 100644 --- a/main/assets/js/109.18481c96.js +++ b/main/assets/js/109.dd490f1e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{587:function(e,t,o){"use strict";o.r(t);var a=o(1),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"⚛️-make-the-cosmos-hub-the-ibc-router-⚛️"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#⚛️-make-the-cosmos-hub-the-ibc-router-⚛️"}},[e._v("#")]),e._v(" ⚛️ Make the Cosmos Hub the IBC Router ⚛️")]),e._v(" "),o("p",[e._v("The following is a selection from the "),o("a",{attrs:{href:"https://v1.cosmos.network/resources/whitepaper",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Whitepaper"),o("OutboundLink")],1),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"VGhlIENvc21vcyBIdWIgY29ubmVjdHMgdG8gbWFueSBvdGhlciBibG9ja2NoYWlucyAob3Igem9uZXMpIHZpYSBhIG5vdmVsIGludGVyLWJsb2NrY2hhaW4gY29tbXVuaWNhdGlvbiBwcm90b2NvbC4gVGhlIENvc21vcyBIdWIgdHJhY2tzIG51bWVyb3VzIHRva2VuIHR5cGVzIGFuZCBrZWVwcyByZWNvcmQgb2YgdGhlIHRvdGFsIG51bWJlciBvZiB0b2tlbnMgaW4gZWFjaCBjb25uZWN0ZWQgem9uZS4gVG9rZW5zIGNhbiBiZSB0cmFuc2ZlcnJlZCBmcm9tIG9uZSB6b25lIHRvIGFub3RoZXIgc2VjdXJlbHkgYW5kIHF1aWNrbHkgd2l0aG91dCB0aGUgbmVlZCBmb3IgYSBsaXF1aWQgZXhjaGFuZ2UgYmV0d2VlbiB6b25lcywgYmVjYXVzZSBhbGwgaW50ZXItem9uZSBjb2luIHRyYW5zZmVycyBnbyB0aHJvdWdoIHRoZSBDb3Ntb3MgSHViLgoKLi4uCgpBbnkgb2YgdGhlIHpvbmVzIGNhbiB0aGVtc2VsdmVzIGJlIGh1YnMgdG8gZm9ybSBhbiBhY3ljbGljIGdyYXBoLCBidXQgZm9yIHRoZSBzYWtlIG9mIGNsYXJpdHkgd2Ugd2lsbCBvbmx5IGRlc2NyaWJlIHRoZSBzaW1wbGUgY29uZmlndXJhdGlvbiB3aGVyZSB0aGVyZSBpcyBvbmx5IG9uZSBodWIsIGFuZCBtYW55IG5vbi1odWIgem9uZXMuCg=="}}),e._v(" "),o("p",[e._v("The Hub has long been envisioned as a central point in the IBC architecture. In the battle to build and ship IBC this central vision has remained unchanged, but with so much focus on the need to build out other zones with real economies to support this network (the CosmosSDK is the result of this effort), the idea of the hub as an Interchain Router hasn't been discussed in a serious context for quite a while.")]),e._v(" "),o("p",[e._v("This is understandable: Cosmos needed so many other pieces to come together before the Hub had a chance to even start performing this function. Those other zones have been created, they each have products and economies. The bootstrapping era of IBC is well underway.")]),e._v(" "),o("p",[e._v("These new zones joining are noticing a problem: they need to maintain a large amount of infrastructure (archive nodes and relayers for each counterparty chain) to connect with all the chains in the ecosystem, a number that is continuing to increase quickly.")]),e._v(" "),o("p",[e._v("Luckly this problem has been anticipated and IBC architected to accomodate multi-hop transactions. However, a packet forwarding/routing feature was not in the initial IBC release. This proposal aims to fix this for the Hub.")]),e._v(" "),o("p",[e._v("This is a proposal to include a new feature to IBC on the Hub that allows for multi-hop packet routing for ICS20 transfers. By appending an intermediate address, and the port/channel identifiers for the final destination, clients will be able to outline more than one transfer at a time. The following example shows routing from Terra to Osmosis through the Hub:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"json",base64:"Ly8gUGFja2V0IHNlbnQgZnJvbSBUZXJyYSB0byB0aGUgaHViLCBub3RlIHRoZSBmb3JtYXQgb2YgdGhlIGZvcndhcmluZyBpbmZvCi8vIHtpbnRlcm1lZGlhdGVfcmVmdW5kX2FkZHJlc3N9fHtmb3dhcmRfcG9ydH0ve2ZvcndhcmRfY2hhbm5lbH06e2ZpbmFsX2Rlc3RpbmF0aW9uX2FkZHJlc3N9CnsKICAgICZxdW90O2Rlbm9tJnF1b3Q7OiAmcXVvdDt1bHVuYSZxdW90OywKICAgICZxdW90O2Ftb3VudCZxdW90OzogJnF1b3Q7MTAwMDAwMDAwJnF1b3Q7LAogICAgJnF1b3Q7c2VuZGVyJnF1b3Q7OiAmcXVvdDt0ZXJyYTE1Z3dreWVwZmM2eGdjYTV0NXplZnp3eTQydXRzOGwybTRnNDBrNiZxdW90OywKICAgICZxdW90O3JlY2VpdmVyJnF1b3Q7OiAmcXVvdDtjb3Ntb3Mxdnp4a3YzbHhjY250dHI5cnMwMDAyczkzc2d3NzJoN2dodWt1aHN8dHJhbnNmZXIvY2hhbm5lbC0xNDE6b3NtbzF2enhrdjNseGNjbnR0cjlyczAwMDJzOTNzZ3c3Mmg3Z2w4OXZweiZxdW90OywKfQoKLy8gV2hlbiBPblJlY3ZQYWNrZXQgb24gdGhlIGh1YiBpcyBjYWxsZWQsIHRoaXMgcGFja2V0IHdpbGwgYmUgbW9kaWZpZWQgZm9yIGZvd2FyZGluZyB0byB0cmFuc2Zlci9jaGFubmVsLTE0MS4KLy8gTm90aWNlIHRoYXQgYWxsIGZpZWxkcyBleGVjZXB0IGFtb3VudCBhcmUgbW9kaWZpZWQgYXMgZm9sbG93czoKewogICAgJnF1b3Q7ZGVub20mcXVvdDs6ICZxdW90O2liYy9GRUUzRkIxOTY4MkRBQUFCMDJBMDMyOEEyQjg0QTgwRTdEREZFNUJBNDhGN0QyQzhDMzBBQUM2NDlCOERENTE5JnF1b3Q7LAogICAgJnF1b3Q7YW1vdW50JnF1b3Q7OiAmcXVvdDsxMDAwMDAwMDAmcXVvdDssCiAgICAmcXVvdDtzZW5kZXImcXVvdDs6ICZxdW90O2Nvc21vczF2enhrdjNseGNjbnR0cjlyczAwMDJzOTNzZ3c3Mmg3Z2h1a3VocyZxdW90OywKICAgICZxdW90O3JlY2VpdmVyJnF1b3Q7OiAmcXVvdDtvc21vMXZ6eGt2M2x4Y2NudHRyOXJzMDAwMnM5M3NndzcyaDdnbDg5dnB6JnF1b3Q7LAp9Cg=="}}),e._v(" "),o("p",[e._v("Strangelove Ventures has delivered an "),o("a",{attrs:{href:"https://github.com/cosmos/ibc-go/pull/373",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBC Middleware module"),o("OutboundLink")],1),e._v(" that will allow the hub to play the role of IBC Router that was always envisioned for it. Passing of this propsal will begin the era of the Hub offering interchain services to other chains and profiting from those relationships.")]),e._v(" "),o("p",[e._v("To pay the hub validators and stakers, this proposal implements a governance configurable fee (which we propose should be initially set to 0.0 to encourage adoption) that will be taken out of each packet and given to the community pool. The community pool will then periodically trade these fees for ATOM and distribute them to staked holders. The exact distribution method of these fees is left TBD in this proposal as it is not initially required and can be implemented in a future governance proposal. One way to do this would be using the "),o("a",{attrs:{href:"https://docs.cosmos.network/main/architecture/adr-042-group-module.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Groups module"),o("OutboundLink")],1),e._v(", Community spend proposals and the Gravity DEX.")]),e._v(" "),o("p",[e._v("A vote YES on this proposal indicates that this feature should be included in the next hub upgrade. We (as the Hub) believe that time is critical right now and we cannot wait to begin providing this service to other chains. A NO vote indicates that this shouldn't be included in the next upgrade.\n")])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{588:function(e,t,o){"use strict";o.r(t);var a=o(1),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"⚛️-make-the-cosmos-hub-the-ibc-router-⚛️"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#⚛️-make-the-cosmos-hub-the-ibc-router-⚛️"}},[e._v("#")]),e._v(" ⚛️ Make the Cosmos Hub the IBC Router ⚛️")]),e._v(" "),o("p",[e._v("The following is a selection from the "),o("a",{attrs:{href:"https://v1.cosmos.network/resources/whitepaper",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Whitepaper"),o("OutboundLink")],1),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"VGhlIENvc21vcyBIdWIgY29ubmVjdHMgdG8gbWFueSBvdGhlciBibG9ja2NoYWlucyAob3Igem9uZXMpIHZpYSBhIG5vdmVsIGludGVyLWJsb2NrY2hhaW4gY29tbXVuaWNhdGlvbiBwcm90b2NvbC4gVGhlIENvc21vcyBIdWIgdHJhY2tzIG51bWVyb3VzIHRva2VuIHR5cGVzIGFuZCBrZWVwcyByZWNvcmQgb2YgdGhlIHRvdGFsIG51bWJlciBvZiB0b2tlbnMgaW4gZWFjaCBjb25uZWN0ZWQgem9uZS4gVG9rZW5zIGNhbiBiZSB0cmFuc2ZlcnJlZCBmcm9tIG9uZSB6b25lIHRvIGFub3RoZXIgc2VjdXJlbHkgYW5kIHF1aWNrbHkgd2l0aG91dCB0aGUgbmVlZCBmb3IgYSBsaXF1aWQgZXhjaGFuZ2UgYmV0d2VlbiB6b25lcywgYmVjYXVzZSBhbGwgaW50ZXItem9uZSBjb2luIHRyYW5zZmVycyBnbyB0aHJvdWdoIHRoZSBDb3Ntb3MgSHViLgoKLi4uCgpBbnkgb2YgdGhlIHpvbmVzIGNhbiB0aGVtc2VsdmVzIGJlIGh1YnMgdG8gZm9ybSBhbiBhY3ljbGljIGdyYXBoLCBidXQgZm9yIHRoZSBzYWtlIG9mIGNsYXJpdHkgd2Ugd2lsbCBvbmx5IGRlc2NyaWJlIHRoZSBzaW1wbGUgY29uZmlndXJhdGlvbiB3aGVyZSB0aGVyZSBpcyBvbmx5IG9uZSBodWIsIGFuZCBtYW55IG5vbi1odWIgem9uZXMuCg=="}}),e._v(" "),o("p",[e._v("The Hub has long been envisioned as a central point in the IBC architecture. In the battle to build and ship IBC this central vision has remained unchanged, but with so much focus on the need to build out other zones with real economies to support this network (the CosmosSDK is the result of this effort), the idea of the hub as an Interchain Router hasn't been discussed in a serious context for quite a while.")]),e._v(" "),o("p",[e._v("This is understandable: Cosmos needed so many other pieces to come together before the Hub had a chance to even start performing this function. Those other zones have been created, they each have products and economies. The bootstrapping era of IBC is well underway.")]),e._v(" "),o("p",[e._v("These new zones joining are noticing a problem: they need to maintain a large amount of infrastructure (archive nodes and relayers for each counterparty chain) to connect with all the chains in the ecosystem, a number that is continuing to increase quickly.")]),e._v(" "),o("p",[e._v("Luckly this problem has been anticipated and IBC architected to accomodate multi-hop transactions. However, a packet forwarding/routing feature was not in the initial IBC release. This proposal aims to fix this for the Hub.")]),e._v(" "),o("p",[e._v("This is a proposal to include a new feature to IBC on the Hub that allows for multi-hop packet routing for ICS20 transfers. By appending an intermediate address, and the port/channel identifiers for the final destination, clients will be able to outline more than one transfer at a time. The following example shows routing from Terra to Osmosis through the Hub:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"json",base64:"Ly8gUGFja2V0IHNlbnQgZnJvbSBUZXJyYSB0byB0aGUgaHViLCBub3RlIHRoZSBmb3JtYXQgb2YgdGhlIGZvcndhcmluZyBpbmZvCi8vIHtpbnRlcm1lZGlhdGVfcmVmdW5kX2FkZHJlc3N9fHtmb3dhcmRfcG9ydH0ve2ZvcndhcmRfY2hhbm5lbH06e2ZpbmFsX2Rlc3RpbmF0aW9uX2FkZHJlc3N9CnsKICAgICZxdW90O2Rlbm9tJnF1b3Q7OiAmcXVvdDt1bHVuYSZxdW90OywKICAgICZxdW90O2Ftb3VudCZxdW90OzogJnF1b3Q7MTAwMDAwMDAwJnF1b3Q7LAogICAgJnF1b3Q7c2VuZGVyJnF1b3Q7OiAmcXVvdDt0ZXJyYTE1Z3dreWVwZmM2eGdjYTV0NXplZnp3eTQydXRzOGwybTRnNDBrNiZxdW90OywKICAgICZxdW90O3JlY2VpdmVyJnF1b3Q7OiAmcXVvdDtjb3Ntb3Mxdnp4a3YzbHhjY250dHI5cnMwMDAyczkzc2d3NzJoN2dodWt1aHN8dHJhbnNmZXIvY2hhbm5lbC0xNDE6b3NtbzF2enhrdjNseGNjbnR0cjlyczAwMDJzOTNzZ3c3Mmg3Z2w4OXZweiZxdW90OywKfQoKLy8gV2hlbiBPblJlY3ZQYWNrZXQgb24gdGhlIGh1YiBpcyBjYWxsZWQsIHRoaXMgcGFja2V0IHdpbGwgYmUgbW9kaWZpZWQgZm9yIGZvd2FyZGluZyB0byB0cmFuc2Zlci9jaGFubmVsLTE0MS4KLy8gTm90aWNlIHRoYXQgYWxsIGZpZWxkcyBleGVjZXB0IGFtb3VudCBhcmUgbW9kaWZpZWQgYXMgZm9sbG93czoKewogICAgJnF1b3Q7ZGVub20mcXVvdDs6ICZxdW90O2liYy9GRUUzRkIxOTY4MkRBQUFCMDJBMDMyOEEyQjg0QTgwRTdEREZFNUJBNDhGN0QyQzhDMzBBQUM2NDlCOERENTE5JnF1b3Q7LAogICAgJnF1b3Q7YW1vdW50JnF1b3Q7OiAmcXVvdDsxMDAwMDAwMDAmcXVvdDssCiAgICAmcXVvdDtzZW5kZXImcXVvdDs6ICZxdW90O2Nvc21vczF2enhrdjNseGNjbnR0cjlyczAwMDJzOTNzZ3c3Mmg3Z2h1a3VocyZxdW90OywKICAgICZxdW90O3JlY2VpdmVyJnF1b3Q7OiAmcXVvdDtvc21vMXZ6eGt2M2x4Y2NudHRyOXJzMDAwMnM5M3NndzcyaDdnbDg5dnB6JnF1b3Q7LAp9Cg=="}}),e._v(" "),o("p",[e._v("Strangelove Ventures has delivered an "),o("a",{attrs:{href:"https://github.com/cosmos/ibc-go/pull/373",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBC Middleware module"),o("OutboundLink")],1),e._v(" that will allow the hub to play the role of IBC Router that was always envisioned for it. Passing of this propsal will begin the era of the Hub offering interchain services to other chains and profiting from those relationships.")]),e._v(" "),o("p",[e._v("To pay the hub validators and stakers, this proposal implements a governance configurable fee (which we propose should be initially set to 0.0 to encourage adoption) that will be taken out of each packet and given to the community pool. The community pool will then periodically trade these fees for ATOM and distribute them to staked holders. The exact distribution method of these fees is left TBD in this proposal as it is not initially required and can be implemented in a future governance proposal. One way to do this would be using the "),o("a",{attrs:{href:"https://docs.cosmos.network/main/architecture/adr-042-group-module.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Groups module"),o("OutboundLink")],1),e._v(", Community spend proposals and the Gravity DEX.")]),e._v(" "),o("p",[e._v("A vote YES on this proposal indicates that this feature should be included in the next hub upgrade. We (as the Hub) believe that time is critical right now and we cannot wait to begin providing this service to other chains. A NO vote indicates that this shouldn't be included in the next upgrade.\n")])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/main/assets/js/110.880e717a.js b/main/assets/js/110.f26667e3.js similarity index 87% rename from main/assets/js/110.880e717a.js rename to main/assets/js/110.f26667e3.js index b11691e428c..db7d8e57a91 100644 --- a/main/assets/js/110.880e717a.js +++ b/main/assets/js/110.f26667e3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{588:function(t,s,o){"use strict";o.r(s);var r=o(1),a=Object(r.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"proposals"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#proposals"}},[this._v("#")]),this._v(" Proposals")]),this._v(" "),s("p",[this._v("A historical record of past proposals.")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{587:function(t,s,o){"use strict";o.r(s);var r=o(1),a=Object(r.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"proposals"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#proposals"}},[this._v("#")]),this._v(" Proposals")]),this._v(" "),s("p",[this._v("A historical record of past proposals.")])])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/main/assets/js/118.f8373410.js b/main/assets/js/118.5d90c49f.js similarity index 95% rename from main/assets/js/118.f8373410.js rename to main/assets/js/118.5d90c49f.js index 59b516819df..c0dda16fc1c 100644 --- a/main/assets/js/118.f8373410.js +++ b/main/assets/js/118.5d90c49f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{582:function(t,a,o){"use strict";o.r(a);var i=o(1),e=Object(i.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"gaia-tutorials"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#gaia-tutorials"}},[t._v("#")]),t._v(" Gaia Tutorials")]),t._v(" "),o("p",[t._v("This folder contains tutorials related to the "),o("code",[t._v("gaia")]),t._v(" application.")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("Running a full-node for the Cosmos Hub Mainnet")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/join-testnet.html"}},[t._v("Running a full-node for a "),o("code",[t._v("gaia")]),t._v(" testnet")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/upgrade-node.html"}},[t._v("Upgrading a Node from a previous version")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/live-upgrade-tutorial.html"}},[t._v("Creating an upgrade governance proposal")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/gaiad.html"}},[t._v("Interacting with the "),o("code",[t._v("gaiad")]),t._v(" binary")])],1)])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{581:function(t,a,o){"use strict";o.r(a);var i=o(1),e=Object(i.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"gaia-tutorials"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#gaia-tutorials"}},[t._v("#")]),t._v(" Gaia Tutorials")]),t._v(" "),o("p",[t._v("This folder contains tutorials related to the "),o("code",[t._v("gaia")]),t._v(" application.")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("Running a full-node for the Cosmos Hub Mainnet")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/join-testnet.html"}},[t._v("Running a full-node for a "),o("code",[t._v("gaia")]),t._v(" testnet")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/upgrade-node.html"}},[t._v("Upgrading a Node from a previous version")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/live-upgrade-tutorial.html"}},[t._v("Creating an upgrade governance proposal")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/hub-tutorials/gaiad.html"}},[t._v("Interacting with the "),o("code",[t._v("gaiad")]),t._v(" binary")])],1)])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/main/assets/js/122.27f9031e.js b/main/assets/js/122.c35f050b.js similarity index 98% rename from main/assets/js/122.27f9031e.js rename to main/assets/js/122.c35f050b.js index f0846ef9577..71bca093ed0 100644 --- a/main/assets/js/122.27f9031e.js +++ b/main/assets/js/122.c35f050b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[122],{581:function(e,a,t){"use strict";t.r(a);var l=t(1),d=Object(l.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"live-upgrade-tutorial"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#live-upgrade-tutorial"}},[e._v("#")]),e._v(" Live Upgrade Tutorial")]),e._v(" "),t("p",[e._v("This document demonstrates how a live upgrade can be performed on-chain through a\ngovernance process.")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Start the network and trigger upgrade")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBzdGFydCBhIGdhaWEgYXBwbGljYXRpb24gZnVsbC1ub2RlCiQgZ2FpYWQgc3RhcnQKCiMgc2V0IHVwIHRoZSBjbGkgY29uZmlnCiQgZ2FpYWQgY29uZmlnIGNoYWluLWlkIHRlc3RpbmcKCiMgY3JlYXRlIGFuIHVwZ3JhZGUgZ292ZXJuYW5jZSBwcm9wb3NhbAokIGdhaWFkIHR4IGdvdiBzdWJtaXQtcHJvcG9zYWwgc29mdHdhcmUtdXBncmFkZSAmbHQ7cGxhbi1uYW1lJmd0OyBcCi0tdGl0bGUgJmx0O3Byb3Bvc2FsLXRpdGxlJmd0OyAtLWRlc2NyaXB0aW9uICZsdDtwcm9wb3NhbC1kZXNjcmlwdGlvbiZndDsgXAotLWZyb20gJmx0O25hbWUtb3Ita2V5Jmd0OyAtLXVwZ3JhZGUtaGVpZ2h0ICZsdDtkZXNpcmVkLXVwZ3JhZGUtaGVpZ2h0Jmd0OyAtLWRlcG9zaXQgMTAwMDAwMDBzdGFrZQoKIyBvbmNlIHRoZSBwcm9wb3NhbCBwYXNzZXMgeW91IGNhbiBxdWVyeSB0aGUgcGVuZGluZyBwbGFuCiQgZ2FpYWQgcXVlcnkgdXBncmFkZSBwbGFuCg=="}})],1),e._v(" "),t("li",[t("p",[e._v("Performing an upgrade")]),e._v(" "),t("p",[e._v("Assuming the proposal passes the chain will stop at given upgrade height.")]),e._v(" "),t("p",[e._v("You can stop and start the original binary all you want, but "),t("strong",[e._v("it will refuse to\nrun after the upgrade height")]),e._v(".")]),e._v(" "),t("p",[e._v("We need a new binary with the upgrade handler installed. The logs should look\nsomething like:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"RVsyMDE5LTExLTA1fDEyOjQ0OjE4LjkxM10gVVBHUkFERSAmcXVvdDsmbHQ7cGxhbi1uYW1lJmd0OyZxdW90OyBORUVERUQgYXQgaGVpZ2h0OiAmbHQ7ZGVzaXJlZC11cGdyYWRlLWhlaWdodCZndDs6ICAgICAgIG1vZHVsZT1tYWluCkVbMjAxOS0xMS0wNXwxMjo0NDoxOC45MTRdIENPTlNFTlNVUyBGQUlMVVJFISEhCi4uLgo="}}),e._v(" "),t("p",[e._v("Note that the process will hang indefinitely (doesn't exit to avoid restart loops). So, you must\nmanually kill the process and replace it with a new binary. Do so now with "),t("code",[e._v("Ctrl+C")]),e._v(" or "),t("code",[e._v("killall gaiad")]),e._v(".")]),e._v(" "),t("p",[e._v("In "),t("code",[e._v("gaia/app/app.go")]),e._v(", after "),t("code",[e._v("upgrade.Keeper")]),e._v(" is initialized and set in the app, set the\ncorresponding upgrade "),t("code",[e._v("Handler")]),e._v(" with the correct "),t("code",[e._v("")]),e._v(":")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"go",base64:"ICAgIGFwcC51cGdyYWRlS2VlcGVyLlNldFVwZ3JhZGVIYW5kbGVyKCZxdW90OyZsdDtwbGFuLW5hbWUmZ3Q7JnF1b3Q7LCBmdW5jKGN0eCBzZGsuQ29udGV4dCwgcGxhbiB1cGdyYWRlLlBsYW4pIHsKICAgICAgICAvLyBjdXN0b20gbG9naWMgYWZ0ZXIgdGhlIG5ldHdvcmsgdXBncmFkZSBoYXMgYmVlbiBleGVjdXRlZAogICAgfSkK"}}),e._v(" "),t("p",[e._v("Note that we panic on any error - this would cause the upgrade to fail if the\nmigration could not be run, and no node would advance - allowing a manual recovery.\nIf we ignored the errors, then we would proceed with an incomplete upgrade and\nhave a very difficult time every recovering the proper state.")]),e._v(" "),t("p",[e._v("Now, compile the new binary and run the upgraded code to complete the upgrade:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBjcmVhdGUgYSBuZXcgYmluYXJ5IG9mIGdhaWEgd2l0aCB0aGUgYWRkZWQgdXBncmFkZSBoYW5kbGVyCiQgbWFrZSBpbnN0YWxsCgojIFJlc3RhcnQgdGhlIGNoYWluIHVzaW5nIHRoZSBuZXcgYmluYXJ5LiBZb3Ugc2hvdWxkIHNlZSB0aGUgY2hhaW4gcmVzdW1lIGZyb20KIyB0aGUgdXBncmFkZSBoZWlnaHQ6CiMgYElbMjAxOS0xMS0wNXwxMjo0ODoxNS4xODRdIGFwcGx5aW5nIHVwZ3JhZGUgJmx0O3BsYW4tbmFtZSZndDsgYXQgaGVpZ2h0OiAmbHQ7ZGVzaXJlZC11cGdyYWRlLWhlaWdodCZndDsgICAgICBtb2R1bGU9bWFpbmAKJCBnYWlhZCBzdGFydAoKIyB2ZXJpZnkgdGhlcmUgaXMgbm8gcGVuZGluZyBwbGFuCiQgZ2FpYWQgcXVlcnkgdXBncmFkZSBwbGFuCgojIHZlcmlmeSB5b3UgY2FuIHF1ZXJ5IHRoZSBibG9jayBoZWFkZXIgb2YgdGhlIGNvbXBsZXRlZCB1cGdyYWRlCiQgZ2FpYWQgcXVlcnkgdXBncmFkZSBhcHBsaWVkICZsdDtwbGFuLW5hbWUmZ3Q7Cg=="}})],1)])])}),[],!1,null,null,null);a.default=d.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[122],{582:function(e,a,t){"use strict";t.r(a);var l=t(1),d=Object(l.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"live-upgrade-tutorial"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#live-upgrade-tutorial"}},[e._v("#")]),e._v(" Live Upgrade Tutorial")]),e._v(" "),t("p",[e._v("This document demonstrates how a live upgrade can be performed on-chain through a\ngovernance process.")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("Start the network and trigger upgrade")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBzdGFydCBhIGdhaWEgYXBwbGljYXRpb24gZnVsbC1ub2RlCiQgZ2FpYWQgc3RhcnQKCiMgc2V0IHVwIHRoZSBjbGkgY29uZmlnCiQgZ2FpYWQgY29uZmlnIGNoYWluLWlkIHRlc3RpbmcKCiMgY3JlYXRlIGFuIHVwZ3JhZGUgZ292ZXJuYW5jZSBwcm9wb3NhbAokIGdhaWFkIHR4IGdvdiBzdWJtaXQtcHJvcG9zYWwgc29mdHdhcmUtdXBncmFkZSAmbHQ7cGxhbi1uYW1lJmd0OyBcCi0tdGl0bGUgJmx0O3Byb3Bvc2FsLXRpdGxlJmd0OyAtLWRlc2NyaXB0aW9uICZsdDtwcm9wb3NhbC1kZXNjcmlwdGlvbiZndDsgXAotLWZyb20gJmx0O25hbWUtb3Ita2V5Jmd0OyAtLXVwZ3JhZGUtaGVpZ2h0ICZsdDtkZXNpcmVkLXVwZ3JhZGUtaGVpZ2h0Jmd0OyAtLWRlcG9zaXQgMTAwMDAwMDBzdGFrZQoKIyBvbmNlIHRoZSBwcm9wb3NhbCBwYXNzZXMgeW91IGNhbiBxdWVyeSB0aGUgcGVuZGluZyBwbGFuCiQgZ2FpYWQgcXVlcnkgdXBncmFkZSBwbGFuCg=="}})],1),e._v(" "),t("li",[t("p",[e._v("Performing an upgrade")]),e._v(" "),t("p",[e._v("Assuming the proposal passes the chain will stop at given upgrade height.")]),e._v(" "),t("p",[e._v("You can stop and start the original binary all you want, but "),t("strong",[e._v("it will refuse to\nrun after the upgrade height")]),e._v(".")]),e._v(" "),t("p",[e._v("We need a new binary with the upgrade handler installed. The logs should look\nsomething like:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"RVsyMDE5LTExLTA1fDEyOjQ0OjE4LjkxM10gVVBHUkFERSAmcXVvdDsmbHQ7cGxhbi1uYW1lJmd0OyZxdW90OyBORUVERUQgYXQgaGVpZ2h0OiAmbHQ7ZGVzaXJlZC11cGdyYWRlLWhlaWdodCZndDs6ICAgICAgIG1vZHVsZT1tYWluCkVbMjAxOS0xMS0wNXwxMjo0NDoxOC45MTRdIENPTlNFTlNVUyBGQUlMVVJFISEhCi4uLgo="}}),e._v(" "),t("p",[e._v("Note that the process will hang indefinitely (doesn't exit to avoid restart loops). So, you must\nmanually kill the process and replace it with a new binary. Do so now with "),t("code",[e._v("Ctrl+C")]),e._v(" or "),t("code",[e._v("killall gaiad")]),e._v(".")]),e._v(" "),t("p",[e._v("In "),t("code",[e._v("gaia/app/app.go")]),e._v(", after "),t("code",[e._v("upgrade.Keeper")]),e._v(" is initialized and set in the app, set the\ncorresponding upgrade "),t("code",[e._v("Handler")]),e._v(" with the correct "),t("code",[e._v("")]),e._v(":")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"go",base64:"ICAgIGFwcC51cGdyYWRlS2VlcGVyLlNldFVwZ3JhZGVIYW5kbGVyKCZxdW90OyZsdDtwbGFuLW5hbWUmZ3Q7JnF1b3Q7LCBmdW5jKGN0eCBzZGsuQ29udGV4dCwgcGxhbiB1cGdyYWRlLlBsYW4pIHsKICAgICAgICAvLyBjdXN0b20gbG9naWMgYWZ0ZXIgdGhlIG5ldHdvcmsgdXBncmFkZSBoYXMgYmVlbiBleGVjdXRlZAogICAgfSkK"}}),e._v(" "),t("p",[e._v("Note that we panic on any error - this would cause the upgrade to fail if the\nmigration could not be run, and no node would advance - allowing a manual recovery.\nIf we ignored the errors, then we would proceed with an incomplete upgrade and\nhave a very difficult time every recovering the proper state.")]),e._v(" "),t("p",[e._v("Now, compile the new binary and run the upgraded code to complete the upgrade:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBjcmVhdGUgYSBuZXcgYmluYXJ5IG9mIGdhaWEgd2l0aCB0aGUgYWRkZWQgdXBncmFkZSBoYW5kbGVyCiQgbWFrZSBpbnN0YWxsCgojIFJlc3RhcnQgdGhlIGNoYWluIHVzaW5nIHRoZSBuZXcgYmluYXJ5LiBZb3Ugc2hvdWxkIHNlZSB0aGUgY2hhaW4gcmVzdW1lIGZyb20KIyB0aGUgdXBncmFkZSBoZWlnaHQ6CiMgYElbMjAxOS0xMS0wNXwxMjo0ODoxNS4xODRdIGFwcGx5aW5nIHVwZ3JhZGUgJmx0O3BsYW4tbmFtZSZndDsgYXQgaGVpZ2h0OiAmbHQ7ZGVzaXJlZC11cGdyYWRlLWhlaWdodCZndDsgICAgICBtb2R1bGU9bWFpbmAKJCBnYWlhZCBzdGFydAoKIyB2ZXJpZnkgdGhlcmUgaXMgbm8gcGVuZGluZyBwbGFuCiQgZ2FpYWQgcXVlcnkgdXBncmFkZSBwbGFuCgojIHZlcmlmeSB5b3UgY2FuIHF1ZXJ5IHRoZSBibG9jayBoZWFkZXIgb2YgdGhlIGNvbXBsZXRlZCB1cGdyYWRlCiQgZ2FpYWQgcXVlcnkgdXBncmFkZSBhcHBsaWVkICZsdDtwbGFuLW5hbWUmZ3Q7Cg=="}})],1)])])}),[],!1,null,null,null);a.default=d.exports}}]); \ No newline at end of file diff --git a/main/assets/js/124.b83420f3.js b/main/assets/js/124.0964415a.js similarity index 79% rename from main/assets/js/124.b83420f3.js rename to main/assets/js/124.0964415a.js index a61ed8481ad..e6e5181403e 100644 --- a/main/assets/js/124.b83420f3.js +++ b/main/assets/js/124.0964415a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[124],{578:function(t,e,n){"use strict";n.r(e);var s=n(1),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[124],{579:function(t,e,n){"use strict";n.r(e);var s=n(1),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file diff --git a/main/assets/js/125.b8ef922c.js b/main/assets/js/125.afa4103d.js similarity index 97% rename from main/assets/js/125.b8ef922c.js rename to main/assets/js/125.afa4103d.js index a169bbcff62..1a1d1ed7d28 100644 --- a/main/assets/js/125.b8ef922c.js +++ b/main/assets/js/125.afa4103d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[125],{579:function(t,a,o){"use strict";o.r(a);var i=o(1),r=Object(i.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"gaia-documentation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#gaia-documentation"}},[t._v("#")]),t._v(" Gaia Documentation")]),t._v(" "),o("p",[o("code",[t._v("Gaia")]),t._v(" docs에 오신 것을 환영합니다. "),o("code",[t._v("Gaia")]),t._v(" 는 코스모스 허브를 위한 코스모스 애플리케이션의 현재 명칭입니다.")]),t._v(" "),o("h2",{attrs:{id:"코스모스-퍼블릭-테스트넷에-참가하세요"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#코스모스-퍼블릭-테스트넷에-참가하세요"}},[t._v("#")]),t._v(" 코스모스 퍼블릭 테스트넷에 참가하세요")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/ko/gaia-tutorials/installation.html"}},[o("code",[t._v("gaia")]),t._v(" 애플리케이션 설치하기")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/gaia-tutorials/join-testnet.html"}},[t._v("풀노드를 세팅하고 현재 퍼블릭 테스트넷 참가하기")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/validators/validator-setup.html"}},[t._v("벨리데이터 노드로 업그레이드 하기")])],1)]),t._v(" "),o("h2",{attrs:{id:"자체-gaia-테스트넷-세팅하기"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#자체-gaia-테스트넷-세팅하기"}},[t._v("#")]),t._v(" 자체 "),o("code",[t._v("gaia")]),t._v(" 테스트넷 세팅하기")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/ko/gaia-tutorials/deploy-testnet.html"}},[t._v("자체 "),o("code",[t._v("gaia")]),t._v(" 테스트넷 세팅하기")])],1)]),t._v(" "),o("h2",{attrs:{id:"추가-리소스"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#추가-리소스"}},[t._v("#")]),t._v(" 추가 리소스")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/ko/validators/overview.html"}},[t._v("밸리데이터에 대한 소개")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/validators/validator-faq.html"}},[t._v("밸리데이터 FAQ")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/validators/security.html"}},[t._v("밸리데이터가 알아야할 보안")])],1)])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[125],{578:function(t,a,o){"use strict";o.r(a);var i=o(1),r=Object(i.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"gaia-documentation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#gaia-documentation"}},[t._v("#")]),t._v(" Gaia Documentation")]),t._v(" "),o("p",[o("code",[t._v("Gaia")]),t._v(" docs에 오신 것을 환영합니다. "),o("code",[t._v("Gaia")]),t._v(" 는 코스모스 허브를 위한 코스모스 애플리케이션의 현재 명칭입니다.")]),t._v(" "),o("h2",{attrs:{id:"코스모스-퍼블릭-테스트넷에-참가하세요"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#코스모스-퍼블릭-테스트넷에-참가하세요"}},[t._v("#")]),t._v(" 코스모스 퍼블릭 테스트넷에 참가하세요")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/ko/gaia-tutorials/installation.html"}},[o("code",[t._v("gaia")]),t._v(" 애플리케이션 설치하기")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/gaia-tutorials/join-testnet.html"}},[t._v("풀노드를 세팅하고 현재 퍼블릭 테스트넷 참가하기")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/validators/validator-setup.html"}},[t._v("벨리데이터 노드로 업그레이드 하기")])],1)]),t._v(" "),o("h2",{attrs:{id:"자체-gaia-테스트넷-세팅하기"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#자체-gaia-테스트넷-세팅하기"}},[t._v("#")]),t._v(" 자체 "),o("code",[t._v("gaia")]),t._v(" 테스트넷 세팅하기")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/ko/gaia-tutorials/deploy-testnet.html"}},[t._v("자체 "),o("code",[t._v("gaia")]),t._v(" 테스트넷 세팅하기")])],1)]),t._v(" "),o("h2",{attrs:{id:"추가-리소스"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#추가-리소스"}},[t._v("#")]),t._v(" 추가 리소스")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/ko/validators/overview.html"}},[t._v("밸리데이터에 대한 소개")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/validators/validator-faq.html"}},[t._v("밸리데이터 FAQ")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/ko/validators/security.html"}},[t._v("밸리데이터가 알아야할 보안")])],1)])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/main/assets/js/129.9f355c88.js b/main/assets/js/129.74a78362.js similarity index 99% rename from main/assets/js/129.9f355c88.js rename to main/assets/js/129.74a78362.js index 90e5f6eddd0..b4447a3699a 100644 --- a/main/assets/js/129.9f355c88.js +++ b/main/assets/js/129.74a78362.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{575:function(t,a,e){"use strict";e.r(a);var s=e(1),o=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"최신-퍼블릭-테스트넷에-참가하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#최신-퍼블릭-테스트넷에-참가하기"}},[t._v("#")]),t._v(" 최신 퍼블릭 테스트넷에 참가하기")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("최신 테스트넷")]),t._v(" "),e("p",[t._v("최신 테스트넷에 대한 정보는 다음의 "),e("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("테스트넷 리포"),e("OutboundLink")],1),t._v("를 참고하세요. 어떤 코스모스 SDK 버전과 제네시스 파일에 대한 정보가 포합되어있습니다.")])]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",[e("strong",[t._v("여기에서 더 진행하시기 전에 "),e("RouterLink",{attrs:{to:"/ko/gaia-tutorials/installation.html"}},[t._v("gaia")]),t._v("가 꼭 설치되어있어야 합니다.")],1)])]),t._v(" "),e("h2",{attrs:{id:"새로운-노드-세팅하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#새로운-노드-세팅하기"}},[t._v("#")]),t._v(" 새로운 노드 세팅하기")]),t._v(" "),e("blockquote",[e("p",[t._v("참고: 과거 테스트넷에서 풀 노드를 운영하셨다면 이 항목은 건너뛰시고 "),e("a",{attrs:{href:"#upgrading-from-previous-testnet"}},[t._v("과거 테스트넷에서 업그레이드 하기")]),t._v("를 참고하세요.")])]),t._v(" "),e("p",[t._v("다음 절차는 새로운 풀노드를 처음부터 세팅하는 절차입니다.")]),t._v(" "),e("p",[t._v("우선 노드를 실행하고 필요한 config 파일을 생성합니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgaW5pdCAtLW1vbmlrZXIgJmx0O3lvdXJfY3VzdG9tX21vbmlrZXImZ3Q7Cg=="}}),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("참고")]),t._v(" "),e("p",[e("code",[t._v("--moniker")]),t._v("는 ASCII 캐릭터만을 지원합니다. Unicode 캐릭터를 이용하는 경우 노드 접근이 불가능할 수 있으니 참고하세요.")])]),t._v(" "),e("p",[e("code",[t._v("moniker")]),t._v("는 "),e("code",[t._v("~/.gaia/config/config.toml")]),t._v(" 파일을 통해 추후에 변경이 가능합니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"toml",base64:"IyBBIGN1c3RvbSBodW1hbiByZWFkYWJsZSBuYW1lIGZvciB0aGlzIG5vZGUKbW9uaWtlciA9ICZxdW90OyZsdDt5b3VyX2N1c3RvbV9tb25pa2VyJmd0OyZxdW90Owo="}}),t._v(" "),e("p",[t._v("최소 수수료보다 낮은 트랜잭션을 거절하는 스팸 방지 메커니즘을 활성화 하시려면 "),e("code",[t._v("~/.gaia/config/gaiad.toml")]),t._v(" 파일을 변경하시면 됩니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"IyBUaGlzIGlzIGEgVE9NTCBjb25maWcgZmlsZS4KIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90b21sLWxhbmcvdG9tbAoKIyMjIyMgbWFpbiBiYXNlIGNvbmZpZyBvcHRpb25zICMjIyMjCgojIFZhbGlkYXRvcnMgcmVqZWN0IGFueSB0eCBmcm9tIHRoZSBtZW1wb29sIHdpdGggbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGZlZSBwZXIgZ2FzLgptaW5pbXVtX2ZlZXMgPSAmcXVvdDsmcXVvdDsK"}}),t._v(" "),e("p",[t._v("당신의 풀노드가 활성화 되었습니다! "),e("a",{attrs:{href:"#genesis-seeds"}},[t._v("제네시스와 시드")]),t._v("로 넘어가주세요.")]),t._v(" "),e("h2",{attrs:{id:"과거-테스트넷에서-업그레이드-하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#과거-테스트넷에서-업그레이드-하기"}},[t._v("#")]),t._v(" 과거 테스트넷에서 업그레이드 하기")]),t._v(" "),e("p",[t._v("다음은 과거 테스트넷에서 운영을 했었던 풀노드가 최신 테스트넷으로 업그레이드를 하기 위한 절차입니다.")]),t._v(" "),e("h3",{attrs:{id:"데이터-리셋"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#데이터-리셋"}},[t._v("#")]),t._v(" 데이터 리셋")]),t._v(" "),e("p",[t._v("우선, 과거 파일을 삭제하고 데이터를 리셋합니다.")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cm0gJEhPTUUvLmdhaWEvY29uZmlnL2FkZHJib29rLmpzb24gJEhPTUUvLmdhaWEvY29uZmlnL2dlbmVzaXMuanNvbgpnYWlhZCB1bnNhZmUtcmVzZXQtYWxsCg=="}}),t._v(" "),e("p",[t._v("이제 "),e("code",[t._v("priv_validator.json")]),t._v("과 "),e("code",[t._v("config.toml")]),t._v("을 제외하고 노드가 초기화 되었습니다. 만약 해당 노드에 연결된적이 있는 센트리노드나 풀노드가 같이 업그레이드 되지 않았다면 연결이 실패할 수 있습니다.")]),t._v(" "),e("div",{staticClass:"custom-block danger"},[e("p",{staticClass:"custom-block-title"},[t._v("경고")]),t._v(" "),e("p",[t._v("각 노드가 "),e("strong",[t._v("고유한")]),t._v(" "),e("code",[t._v("priv_validator.json")]),t._v("을 보유하고 있는 것을 확인하세요. 오래된 노드의 "),e("code",[t._v("priv_validator.json")]),t._v("을 다수의 새로운 노드로 복사하지 마세요. 동일한 "),e("code",[t._v("priv_validator.json")]),t._v("을 보유한 두개 이상의 노드가 동시에 운영될 경우, "),e("strong",[t._v("더블 사이닝")]),t._v("이 일어날 수 있습니다.")])]),t._v(" "),e("h3",{attrs:{id:"소프트웨어-업그레이드"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#소프트웨어-업그레이드"}},[t._v("#")]),t._v(" 소프트웨어 업그레이드")]),t._v(" "),e("p",[t._v("이제 소프트웨어를 업그레이드할 시간입니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvY29zbW9zLXNkay5naXQKY2QgY29zbW9zLXNkawpnaXQgZmV0Y2ggLS1hbGwgJmFtcDsmYW1wOyBnaXQgY2hlY2tvdXQgbWFzdGVyCm1ha2UgaW5zdGFsbAo="}}),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",[e("em",[t._v("참고")]),t._v(": 이 단계에서 문제가 있으시다면 최신 스테이블 GO 버전이 설치되어있는지 확인해주세요.")])]),t._v(" "),e("p",[t._v("위 예시에서는 가장 최신 스테이블 릴리즈가 있는 "),e("code",[t._v("master")]),t._v("를 사용합니다. 테스트넷마다 운용하는 릴리즈가 다를 경우가 있으니 "),e("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),e("OutboundLink")],1),t._v("를 확인하셔서 어떤 버전이 필요한지 확인하시고, "),e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("SDK 릴리즈 페이지"),e("OutboundLink")],1),t._v("에서 각 릴리즈에 대한 정보를 확인하세요.")]),t._v(" "),e("p",[t._v("이제 풀 노드가 깔끔하게 업그레이드 되었습니다!")]),t._v(" "),e("h2",{attrs:{id:"제네시스와-시드"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#제네시스와-시드"}},[t._v("#")]),t._v(" 제네시스와 시드")]),t._v(" "),e("h3",{attrs:{id:"제네시스-파일-복사하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#제네시스-파일-복사하기"}},[t._v("#")]),t._v(" 제네시스 파일 복사하기")]),t._v(" "),e("p",[t._v("테스트넷의 "),e("code",[t._v("genesis.json")]),t._v("파일을 "),e("code",[t._v("gaiad")]),t._v("의 config 디렉토리로 가져옵니다.")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bWtkaXIgLXAgJEhPTUUvLmdhaWEvY29uZmlnCmN1cmwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nvc21vcy90ZXN0bmV0cy9tYXN0ZXIvbGF0ZXN0L2dlbmVzaXMuanNvbiAmZ3Q7ICRIT01FLy5nYWlhL2NvbmZpZy9nZW5lc2lzLmpzb24K"}}),t._v(" "),e("p",[t._v("위 예시에서는 최신 테스트넷에 대한 정보가 포함되어있는 [테스트넷 repo]의 "),e("code",[t._v("latest")]),t._v("를 이용하는 것을 참고하세요. 만약 다른 테스트넷에 연결하신다면 해당 테스트넷의 파일을 가져오는 것인지 확인하세요.")]),t._v(" "),e("p",[t._v("설정이 올바르게 작동하는지 확인하기 위해서는 다음을 실행하세요:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),t._v(" "),e("h3",{attrs:{id:"시드-노드-추가하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#시드-노드-추가하기"}},[t._v("#")]),t._v(" 시드 노드 추가하기")]),t._v(" "),e("p",[t._v("이제 노드가 다른 피어들을 찾는 방법을 알아야합니다. "),e("code",[t._v("$HOME/.gaia/config/config.toml")]),t._v("에 안정적인 시드 노드들을 추가할 차례입니다. "),e("code",[t._v("testnets")]),t._v(" repo에 각 테스트넷에 대한 시드 노드 링크가 포함되어있습니다. 만약 현재 운영되고 있는 테스트넷을 참가하고 싶으시다면 "),e("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("여기"),e("OutboundLink")],1),t._v("에서 어떤 노드를 이용할지 확인하세요.")]),t._v(" "),e("p",[t._v("만약 해당 시드가 작동하지 않는다면, 추가적인 시드와 피어들을 "),e("a",{attrs:{href:"https://explorer.cosmos.network/nodes",target:"_blank",rel:"noopener noreferrer"}},[t._v("코스모스 익스플로러"),e("OutboundLink")],1),t._v("를 통해 확인하실 수 있습니다. "),e("code",[t._v("Full Nodes")]),t._v(" 탭을 들어가셔서 프라이빗("),e("code",[t._v("10.x.x.x")]),t._v(") 또는 로컬 IP 주소("),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Private_network",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://en.wikipedia.org/wiki/Private_network"),e("OutboundLink")],1),t._v(")가 "),e("em",[t._v("아닌")]),t._v(" 노드를 열어보세요. "),e("code",[t._v("Persistent Peer")]),t._v(" 값에 연결 스트링(connection string)이 표기되어 있습니다. 가장 최적화된 결과를 위해서는 4-6을 이용하세요.")]),t._v(" "),e("p",[t._v("이 외에도 "),e("a",{attrs:{href:"https://riot.im/app/#/room/#cosmos-validators:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("밸리데이터 라이엇 채팅방"),e("OutboundLink")],1),t._v("을 통해서 피어 요청을 할 수 있습니다.")]),t._v(" "),e("p",[t._v("시드와 피어에 대한 더 많은 정보를 원하시면 "),e("a",{attrs:{href:"https://github.com/cometbft/cometbft/blob/main/docs/core/using-cometbft.md#peers",target:"_blank",rel:"noopener noreferrer"}},[t._v("여기"),e("OutboundLink")],1),t._v("를 확인하세요.")]),t._v(" "),e("h2",{attrs:{id:"풀노드-운영하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#풀노드-운영하기"}},[t._v("#")]),t._v(" 풀노드 운영하기")]),t._v(" "),e("p",[t._v("다음 커맨드로 풀노드를 시작하세요:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),t._v(" "),e("p",[t._v("모든 것이 잘 작동하고 있는지 확인하기 위해서는:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhdHVzCg=="}}),t._v(" "),e("p",[t._v("네트워크 상태를 "),e("a",{attrs:{href:"https://explorecosmos.network",target:"_blank",rel:"noopener noreferrer"}},[t._v("코스모스 익스플로러"),e("OutboundLink")],1),t._v("를 통해 확인하세요. 현재 풀 노드가 현재 블록높이로 싱크되었을 경우, 익스플로러의 "),e("a",{attrs:{href:"https://explorecosmos.network/validators",target:"_blank",rel:"noopener noreferrer"}},[t._v("풀 노드 리스트"),e("OutboundLink")],1),t._v("에 표시가 될 것입니다. 익스플로러가 모든 노드에 연결하지는 않아 표시가 되지 않을 수 있다는 점 참고해주십시오.")]),t._v(" "),e("h2",{attrs:{id:"상태-내보내기-export-state"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#상태-내보내기-export-state"}},[t._v("#")]),t._v(" 상태 내보내기(Export State)")]),t._v(" "),e("p",[t._v("Gaia는 현재 애플리케이션의 상태를 JSON파일 형태로 내보낼 수 있습니다. 이런 데이터는 수동 분석과 새로운 네트워크의 제네시스 파일로 이용될 때 유용할 수 있습니다.")]),t._v(" "),e("p",[t._v("현재 상태를 내보내기 위해서는:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0ICZndDsgW2ZpbGVuYW1lXS5qc29uCg=="}}),t._v(" "),e("p",[t._v("특정 블록 높이의 상태를 내보낼 수 있습니다(해당 블록 처리 후 상태):")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0taGVpZ2h0IFtoZWlnaHRdICZndDsgW2ZpbGVuYW1lXS5qc29uCg=="}}),t._v(" "),e("p",[t._v("만약 해당 상태를 기반으로 새로운 네트워크를 시작하시려 한다면, "),e("code",[t._v("--for-zero-height")]),t._v(" 플래그를 이용하셔서 내보내기를 실행해주세요:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0taGVpZ2h0IFtoZWlnaHRdIC0tZm9yLXplcm8taGVpZ2h0ICZndDsgW2ZpbGVuYW1lXS5qc29uCg=="}}),t._v(" "),e("h2",{attrs:{id:"밸리데이터-노드로-업그레이드-하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#밸리데이터-노드로-업그레이드-하기"}},[t._v("#")]),t._v(" 밸리데이터 노드로 업그레이드 하기")]),t._v(" "),e("p",[t._v("이제 풀노드가 활성화 되었습니다! 다음은 무엇일까요?")]),t._v(" "),e("p",[t._v("이제는 해당 풀노드를 업그레이드 하여 코스모스 밸리데이터가 될 수 있습니다. 상위 100개 밸리데이터는 코스모스 허브의 블록 생성과 제안을 할 수 있습니다. 밸리데이터 노드로 업그레이드 하시기 위해서는 "),e("RouterLink",{attrs:{to:"/ko/gaia-tutorials/validators/validator-setup.html"}},[t._v("밸리데이터 설정하기")]),t._v(" 항목으로 넘어가주세요.")],1)],1)}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{576:function(t,a,e){"use strict";e.r(a);var s=e(1),o=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"최신-퍼블릭-테스트넷에-참가하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#최신-퍼블릭-테스트넷에-참가하기"}},[t._v("#")]),t._v(" 최신 퍼블릭 테스트넷에 참가하기")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("최신 테스트넷")]),t._v(" "),e("p",[t._v("최신 테스트넷에 대한 정보는 다음의 "),e("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("테스트넷 리포"),e("OutboundLink")],1),t._v("를 참고하세요. 어떤 코스모스 SDK 버전과 제네시스 파일에 대한 정보가 포합되어있습니다.")])]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",[e("strong",[t._v("여기에서 더 진행하시기 전에 "),e("RouterLink",{attrs:{to:"/ko/gaia-tutorials/installation.html"}},[t._v("gaia")]),t._v("가 꼭 설치되어있어야 합니다.")],1)])]),t._v(" "),e("h2",{attrs:{id:"새로운-노드-세팅하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#새로운-노드-세팅하기"}},[t._v("#")]),t._v(" 새로운 노드 세팅하기")]),t._v(" "),e("blockquote",[e("p",[t._v("참고: 과거 테스트넷에서 풀 노드를 운영하셨다면 이 항목은 건너뛰시고 "),e("a",{attrs:{href:"#upgrading-from-previous-testnet"}},[t._v("과거 테스트넷에서 업그레이드 하기")]),t._v("를 참고하세요.")])]),t._v(" "),e("p",[t._v("다음 절차는 새로운 풀노드를 처음부터 세팅하는 절차입니다.")]),t._v(" "),e("p",[t._v("우선 노드를 실행하고 필요한 config 파일을 생성합니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgaW5pdCAtLW1vbmlrZXIgJmx0O3lvdXJfY3VzdG9tX21vbmlrZXImZ3Q7Cg=="}}),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("참고")]),t._v(" "),e("p",[e("code",[t._v("--moniker")]),t._v("는 ASCII 캐릭터만을 지원합니다. Unicode 캐릭터를 이용하는 경우 노드 접근이 불가능할 수 있으니 참고하세요.")])]),t._v(" "),e("p",[e("code",[t._v("moniker")]),t._v("는 "),e("code",[t._v("~/.gaia/config/config.toml")]),t._v(" 파일을 통해 추후에 변경이 가능합니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"toml",base64:"IyBBIGN1c3RvbSBodW1hbiByZWFkYWJsZSBuYW1lIGZvciB0aGlzIG5vZGUKbW9uaWtlciA9ICZxdW90OyZsdDt5b3VyX2N1c3RvbV9tb25pa2VyJmd0OyZxdW90Owo="}}),t._v(" "),e("p",[t._v("최소 수수료보다 낮은 트랜잭션을 거절하는 스팸 방지 메커니즘을 활성화 하시려면 "),e("code",[t._v("~/.gaia/config/gaiad.toml")]),t._v(" 파일을 변경하시면 됩니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"IyBUaGlzIGlzIGEgVE9NTCBjb25maWcgZmlsZS4KIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90b21sLWxhbmcvdG9tbAoKIyMjIyMgbWFpbiBiYXNlIGNvbmZpZyBvcHRpb25zICMjIyMjCgojIFZhbGlkYXRvcnMgcmVqZWN0IGFueSB0eCBmcm9tIHRoZSBtZW1wb29sIHdpdGggbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGZlZSBwZXIgZ2FzLgptaW5pbXVtX2ZlZXMgPSAmcXVvdDsmcXVvdDsK"}}),t._v(" "),e("p",[t._v("당신의 풀노드가 활성화 되었습니다! "),e("a",{attrs:{href:"#genesis-seeds"}},[t._v("제네시스와 시드")]),t._v("로 넘어가주세요.")]),t._v(" "),e("h2",{attrs:{id:"과거-테스트넷에서-업그레이드-하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#과거-테스트넷에서-업그레이드-하기"}},[t._v("#")]),t._v(" 과거 테스트넷에서 업그레이드 하기")]),t._v(" "),e("p",[t._v("다음은 과거 테스트넷에서 운영을 했었던 풀노드가 최신 테스트넷으로 업그레이드를 하기 위한 절차입니다.")]),t._v(" "),e("h3",{attrs:{id:"데이터-리셋"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#데이터-리셋"}},[t._v("#")]),t._v(" 데이터 리셋")]),t._v(" "),e("p",[t._v("우선, 과거 파일을 삭제하고 데이터를 리셋합니다.")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cm0gJEhPTUUvLmdhaWEvY29uZmlnL2FkZHJib29rLmpzb24gJEhPTUUvLmdhaWEvY29uZmlnL2dlbmVzaXMuanNvbgpnYWlhZCB1bnNhZmUtcmVzZXQtYWxsCg=="}}),t._v(" "),e("p",[t._v("이제 "),e("code",[t._v("priv_validator.json")]),t._v("과 "),e("code",[t._v("config.toml")]),t._v("을 제외하고 노드가 초기화 되었습니다. 만약 해당 노드에 연결된적이 있는 센트리노드나 풀노드가 같이 업그레이드 되지 않았다면 연결이 실패할 수 있습니다.")]),t._v(" "),e("div",{staticClass:"custom-block danger"},[e("p",{staticClass:"custom-block-title"},[t._v("경고")]),t._v(" "),e("p",[t._v("각 노드가 "),e("strong",[t._v("고유한")]),t._v(" "),e("code",[t._v("priv_validator.json")]),t._v("을 보유하고 있는 것을 확인하세요. 오래된 노드의 "),e("code",[t._v("priv_validator.json")]),t._v("을 다수의 새로운 노드로 복사하지 마세요. 동일한 "),e("code",[t._v("priv_validator.json")]),t._v("을 보유한 두개 이상의 노드가 동시에 운영될 경우, "),e("strong",[t._v("더블 사이닝")]),t._v("이 일어날 수 있습니다.")])]),t._v(" "),e("h3",{attrs:{id:"소프트웨어-업그레이드"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#소프트웨어-업그레이드"}},[t._v("#")]),t._v(" 소프트웨어 업그레이드")]),t._v(" "),e("p",[t._v("이제 소프트웨어를 업그레이드할 시간입니다:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvY29zbW9zLXNkay5naXQKY2QgY29zbW9zLXNkawpnaXQgZmV0Y2ggLS1hbGwgJmFtcDsmYW1wOyBnaXQgY2hlY2tvdXQgbWFzdGVyCm1ha2UgaW5zdGFsbAo="}}),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",[e("em",[t._v("참고")]),t._v(": 이 단계에서 문제가 있으시다면 최신 스테이블 GO 버전이 설치되어있는지 확인해주세요.")])]),t._v(" "),e("p",[t._v("위 예시에서는 가장 최신 스테이블 릴리즈가 있는 "),e("code",[t._v("master")]),t._v("를 사용합니다. 테스트넷마다 운용하는 릴리즈가 다를 경우가 있으니 "),e("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),e("OutboundLink")],1),t._v("를 확인하셔서 어떤 버전이 필요한지 확인하시고, "),e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("SDK 릴리즈 페이지"),e("OutboundLink")],1),t._v("에서 각 릴리즈에 대한 정보를 확인하세요.")]),t._v(" "),e("p",[t._v("이제 풀 노드가 깔끔하게 업그레이드 되었습니다!")]),t._v(" "),e("h2",{attrs:{id:"제네시스와-시드"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#제네시스와-시드"}},[t._v("#")]),t._v(" 제네시스와 시드")]),t._v(" "),e("h3",{attrs:{id:"제네시스-파일-복사하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#제네시스-파일-복사하기"}},[t._v("#")]),t._v(" 제네시스 파일 복사하기")]),t._v(" "),e("p",[t._v("테스트넷의 "),e("code",[t._v("genesis.json")]),t._v("파일을 "),e("code",[t._v("gaiad")]),t._v("의 config 디렉토리로 가져옵니다.")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bWtkaXIgLXAgJEhPTUUvLmdhaWEvY29uZmlnCmN1cmwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nvc21vcy90ZXN0bmV0cy9tYXN0ZXIvbGF0ZXN0L2dlbmVzaXMuanNvbiAmZ3Q7ICRIT01FLy5nYWlhL2NvbmZpZy9nZW5lc2lzLmpzb24K"}}),t._v(" "),e("p",[t._v("위 예시에서는 최신 테스트넷에 대한 정보가 포함되어있는 [테스트넷 repo]의 "),e("code",[t._v("latest")]),t._v("를 이용하는 것을 참고하세요. 만약 다른 테스트넷에 연결하신다면 해당 테스트넷의 파일을 가져오는 것인지 확인하세요.")]),t._v(" "),e("p",[t._v("설정이 올바르게 작동하는지 확인하기 위해서는 다음을 실행하세요:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),t._v(" "),e("h3",{attrs:{id:"시드-노드-추가하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#시드-노드-추가하기"}},[t._v("#")]),t._v(" 시드 노드 추가하기")]),t._v(" "),e("p",[t._v("이제 노드가 다른 피어들을 찾는 방법을 알아야합니다. "),e("code",[t._v("$HOME/.gaia/config/config.toml")]),t._v("에 안정적인 시드 노드들을 추가할 차례입니다. "),e("code",[t._v("testnets")]),t._v(" repo에 각 테스트넷에 대한 시드 노드 링크가 포함되어있습니다. 만약 현재 운영되고 있는 테스트넷을 참가하고 싶으시다면 "),e("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("여기"),e("OutboundLink")],1),t._v("에서 어떤 노드를 이용할지 확인하세요.")]),t._v(" "),e("p",[t._v("만약 해당 시드가 작동하지 않는다면, 추가적인 시드와 피어들을 "),e("a",{attrs:{href:"https://explorer.cosmos.network/nodes",target:"_blank",rel:"noopener noreferrer"}},[t._v("코스모스 익스플로러"),e("OutboundLink")],1),t._v("를 통해 확인하실 수 있습니다. "),e("code",[t._v("Full Nodes")]),t._v(" 탭을 들어가셔서 프라이빗("),e("code",[t._v("10.x.x.x")]),t._v(") 또는 로컬 IP 주소("),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Private_network",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://en.wikipedia.org/wiki/Private_network"),e("OutboundLink")],1),t._v(")가 "),e("em",[t._v("아닌")]),t._v(" 노드를 열어보세요. "),e("code",[t._v("Persistent Peer")]),t._v(" 값에 연결 스트링(connection string)이 표기되어 있습니다. 가장 최적화된 결과를 위해서는 4-6을 이용하세요.")]),t._v(" "),e("p",[t._v("이 외에도 "),e("a",{attrs:{href:"https://riot.im/app/#/room/#cosmos-validators:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("밸리데이터 라이엇 채팅방"),e("OutboundLink")],1),t._v("을 통해서 피어 요청을 할 수 있습니다.")]),t._v(" "),e("p",[t._v("시드와 피어에 대한 더 많은 정보를 원하시면 "),e("a",{attrs:{href:"https://github.com/cometbft/cometbft/blob/main/docs/core/using-cometbft.md#peers",target:"_blank",rel:"noopener noreferrer"}},[t._v("여기"),e("OutboundLink")],1),t._v("를 확인하세요.")]),t._v(" "),e("h2",{attrs:{id:"풀노드-운영하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#풀노드-운영하기"}},[t._v("#")]),t._v(" 풀노드 운영하기")]),t._v(" "),e("p",[t._v("다음 커맨드로 풀노드를 시작하세요:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),t._v(" "),e("p",[t._v("모든 것이 잘 작동하고 있는지 확인하기 위해서는:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhdHVzCg=="}}),t._v(" "),e("p",[t._v("네트워크 상태를 "),e("a",{attrs:{href:"https://explorecosmos.network",target:"_blank",rel:"noopener noreferrer"}},[t._v("코스모스 익스플로러"),e("OutboundLink")],1),t._v("를 통해 확인하세요. 현재 풀 노드가 현재 블록높이로 싱크되었을 경우, 익스플로러의 "),e("a",{attrs:{href:"https://explorecosmos.network/validators",target:"_blank",rel:"noopener noreferrer"}},[t._v("풀 노드 리스트"),e("OutboundLink")],1),t._v("에 표시가 될 것입니다. 익스플로러가 모든 노드에 연결하지는 않아 표시가 되지 않을 수 있다는 점 참고해주십시오.")]),t._v(" "),e("h2",{attrs:{id:"상태-내보내기-export-state"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#상태-내보내기-export-state"}},[t._v("#")]),t._v(" 상태 내보내기(Export State)")]),t._v(" "),e("p",[t._v("Gaia는 현재 애플리케이션의 상태를 JSON파일 형태로 내보낼 수 있습니다. 이런 데이터는 수동 분석과 새로운 네트워크의 제네시스 파일로 이용될 때 유용할 수 있습니다.")]),t._v(" "),e("p",[t._v("현재 상태를 내보내기 위해서는:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0ICZndDsgW2ZpbGVuYW1lXS5qc29uCg=="}}),t._v(" "),e("p",[t._v("특정 블록 높이의 상태를 내보낼 수 있습니다(해당 블록 처리 후 상태):")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0taGVpZ2h0IFtoZWlnaHRdICZndDsgW2ZpbGVuYW1lXS5qc29uCg=="}}),t._v(" "),e("p",[t._v("만약 해당 상태를 기반으로 새로운 네트워크를 시작하시려 한다면, "),e("code",[t._v("--for-zero-height")]),t._v(" 플래그를 이용하셔서 내보내기를 실행해주세요:")]),t._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0taGVpZ2h0IFtoZWlnaHRdIC0tZm9yLXplcm8taGVpZ2h0ICZndDsgW2ZpbGVuYW1lXS5qc29uCg=="}}),t._v(" "),e("h2",{attrs:{id:"밸리데이터-노드로-업그레이드-하기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#밸리데이터-노드로-업그레이드-하기"}},[t._v("#")]),t._v(" 밸리데이터 노드로 업그레이드 하기")]),t._v(" "),e("p",[t._v("이제 풀노드가 활성화 되었습니다! 다음은 무엇일까요?")]),t._v(" "),e("p",[t._v("이제는 해당 풀노드를 업그레이드 하여 코스모스 밸리데이터가 될 수 있습니다. 상위 100개 밸리데이터는 코스모스 허브의 블록 생성과 제안을 할 수 있습니다. 밸리데이터 노드로 업그레이드 하시기 위해서는 "),e("RouterLink",{attrs:{to:"/ko/gaia-tutorials/validators/validator-setup.html"}},[t._v("밸리데이터 설정하기")]),t._v(" 항목으로 넘어가주세요.")],1)],1)}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/main/assets/js/130.b3f6dbe9.js b/main/assets/js/130.ce5c7c2a.js similarity index 97% rename from main/assets/js/130.b3f6dbe9.js rename to main/assets/js/130.ce5c7c2a.js index 6078e72ed53..648724be7e0 100644 --- a/main/assets/js/130.b3f6dbe9.js +++ b/main/assets/js/130.ce5c7c2a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{576:function(v,_,a){"use strict";a.r(_);var i=a(1),t=Object(i.a)({},(function(){var v=this,_=v.$createElement,a=v._self._c||_;return a("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[a("h1",{attrs:{id:"gaia는-무엇인가요"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gaia는-무엇인가요"}},[v._v("#")]),v._v(" Gaia는 무엇인가요?")]),v._v(" "),a("p",[v._v("가이아("),a("code",[v._v("gaia")]),v._v(")는 코스모스 허브의 코스모스 SDK 애플리케이션의 이름입니다. 가이아는 두개의 엔트리 포인트로 구성돼있습니다:")]),v._v(" "),a("ul",[a("li",[a("code",[v._v("gaiad")]),v._v(": 가이아 데몬, "),a("code",[v._v("gaia")]),v._v(" 애플리케이션의 풀노드를 운영합니다.")]),v._v(" "),a("li",[a("code",[v._v("gaiad")]),v._v(": 가이아 커맨드 라인 인터페이스는 유저가 가이아 풀노드와 소통할 수 있게 합니다.")])]),v._v(" "),a("p",[a("code",[v._v("gaia")]),v._v("는 코스모스 SDK의 다음 모듈들을 이용해 제작되었습니다:")]),v._v(" "),a("ul",[a("li",[a("code",[v._v("x/auth")]),v._v(": 계정 및 서명")]),v._v(" "),a("li",[a("code",[v._v("x/bank")]),v._v(": 토큰 전송")]),v._v(" "),a("li",[a("code",[v._v("x/staking")]),v._v(": 스테이킹 로직")]),v._v(" "),a("li",[a("code",[v._v("x/mint")]),v._v(": 인플레이션 로직")]),v._v(" "),a("li",[a("code",[v._v("x/distribution")]),v._v(": 수수료(보상) 분배 로직(fee distribution logic)")]),v._v(" "),a("li",[a("code",[v._v("x/slashing")]),v._v(": 슬래싱 로직")]),v._v(" "),a("li",[a("code",[v._v("x/gov")]),v._v(": 거버넌스 로직")]),v._v(" "),a("li",[a("code",[v._v("ibc-go/modules")]),v._v(": 인터블록체인 전송")]),v._v(" "),a("li",[a("code",[v._v("x/params")]),v._v(": 앱레벨 파라미터 관리")])]),v._v(" "),a("blockquote",[a("p",[v._v("코스모스 허브에 대해서: 코스모스 허브는 코스모스 네트워크의 최초 허브입니다. 허브는 블록체인 간 전송을 수행하는 역할을 합니다. IBC를 통해 특정 허브에 연결된 블록체인은 해당 허브에 연결되어있는 모든 블록체인과 함께 연결됩니다. 코스모스 허브는 지분증명 기반 퍼블릭 블록체인이며, 고유 토큰은 아톰(Atom)입니다. 다음은 Gaia를 "),a("RouterLink",{attrs:{to:"/ko/gaia-tutorials/installation.html"}},[v._v("설치하는 방법")]),v._v("을 알아보겠습니다.\n")],1)])])}),[],!1,null,null,null);_.default=t.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{575:function(v,_,a){"use strict";a.r(_);var i=a(1),t=Object(i.a)({},(function(){var v=this,_=v.$createElement,a=v._self._c||_;return a("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[a("h1",{attrs:{id:"gaia는-무엇인가요"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gaia는-무엇인가요"}},[v._v("#")]),v._v(" Gaia는 무엇인가요?")]),v._v(" "),a("p",[v._v("가이아("),a("code",[v._v("gaia")]),v._v(")는 코스모스 허브의 코스모스 SDK 애플리케이션의 이름입니다. 가이아는 두개의 엔트리 포인트로 구성돼있습니다:")]),v._v(" "),a("ul",[a("li",[a("code",[v._v("gaiad")]),v._v(": 가이아 데몬, "),a("code",[v._v("gaia")]),v._v(" 애플리케이션의 풀노드를 운영합니다.")]),v._v(" "),a("li",[a("code",[v._v("gaiad")]),v._v(": 가이아 커맨드 라인 인터페이스는 유저가 가이아 풀노드와 소통할 수 있게 합니다.")])]),v._v(" "),a("p",[a("code",[v._v("gaia")]),v._v("는 코스모스 SDK의 다음 모듈들을 이용해 제작되었습니다:")]),v._v(" "),a("ul",[a("li",[a("code",[v._v("x/auth")]),v._v(": 계정 및 서명")]),v._v(" "),a("li",[a("code",[v._v("x/bank")]),v._v(": 토큰 전송")]),v._v(" "),a("li",[a("code",[v._v("x/staking")]),v._v(": 스테이킹 로직")]),v._v(" "),a("li",[a("code",[v._v("x/mint")]),v._v(": 인플레이션 로직")]),v._v(" "),a("li",[a("code",[v._v("x/distribution")]),v._v(": 수수료(보상) 분배 로직(fee distribution logic)")]),v._v(" "),a("li",[a("code",[v._v("x/slashing")]),v._v(": 슬래싱 로직")]),v._v(" "),a("li",[a("code",[v._v("x/gov")]),v._v(": 거버넌스 로직")]),v._v(" "),a("li",[a("code",[v._v("ibc-go/modules")]),v._v(": 인터블록체인 전송")]),v._v(" "),a("li",[a("code",[v._v("x/params")]),v._v(": 앱레벨 파라미터 관리")])]),v._v(" "),a("blockquote",[a("p",[v._v("코스모스 허브에 대해서: 코스모스 허브는 코스모스 네트워크의 최초 허브입니다. 허브는 블록체인 간 전송을 수행하는 역할을 합니다. IBC를 통해 특정 허브에 연결된 블록체인은 해당 허브에 연결되어있는 모든 블록체인과 함께 연결됩니다. 코스모스 허브는 지분증명 기반 퍼블릭 블록체인이며, 고유 토큰은 아톰(Atom)입니다. 다음은 Gaia를 "),a("RouterLink",{attrs:{to:"/ko/gaia-tutorials/installation.html"}},[v._v("설치하는 방법")]),v._v("을 알아보겠습니다.\n")],1)])])}),[],!1,null,null,null);_.default=t.exports}}]); \ No newline at end of file diff --git a/main/assets/js/137.3a2d5d3d.js b/main/assets/js/137.e2eb9e6e.js similarity index 99% rename from main/assets/js/137.3a2d5d3d.js rename to main/assets/js/137.e2eb9e6e.js index 572e8e97978..57273c2c36c 100644 --- a/main/assets/js/137.3a2d5d3d.js +++ b/main/assets/js/137.e2eb9e6e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{570:function(g,I,C){"use strict";C.r(I);var A=C(1),t=Object(A.a)({},(function(){var g=this,I=g.$createElement,C=g._self._c||I;return C("ContentSlotsDistributor",{attrs:{"slot-key":g.$parent.slotKey}},[C("h1",{attrs:{id:"hd-지갑"}},[C("a",{staticClass:"header-anchor",attrs:{href:"#hd-지갑"}},[g._v("#")]),g._v(" HD 지갑")]),g._v(" "),C("p",[g._v("코스모스의 계정은 HD 월렛(Hierarchical Deterministic Wallet) 표준을 사용합니다. HD 월렛은 비트코인의 "),C("a",{attrs:{href:"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki",target:"_blank",rel:"noopener noreferrer"}},[g._v("BIP32"),C("OutboundLink")],1),g._v("로 부터 정의되며, 유저가 하나의 시드로부터 다수의 계정을 생성할 수 있게 하는 시스템입니다. 더 자세하게 알아보기 위해서 관련 명칭을 설명하겠습니다:")]),g._v(" "),C("ul",[C("li",[C("strong",[g._v("지갑(Wallet)")]),g._v(": 특정 시드로부터 생성된 계정.")]),g._v(" "),C("li",[C("strong",[g._v("계정(Account)")]),g._v(": 퍼블릭 키/프라이빗 키 쌍.")]),g._v(" "),C("li",[C("strong",[g._v("프라이빗 키(Private Key)")]),g._v(": 프라이빗 키는 메시지를 서명할때 사용되는 비밀 정보입니다. 블록체인 업계에서 프라이빗 키는 계정의 소유자를 식별하는데 사용됩니다. 유저의 프라이빗 키는 절대 다른 이에게 알려지면 안됩니다.")]),g._v(" "),C("li",[C("strong",[g._v("퍼블릭 키(Public Key)")]),g._v(": 퍼블릭 키는 프라이빗 키로부터 일방적 수학 함수를 적용해 얻게되는 정보입니다. 퍼블릭 키를 기반으로 주소가 만들어지게 되며, 퍼블릭 키를 기반으로 프라이빗 키를 찾는 것은 불가능 합니다.")]),g._v(" "),C("li",[C("strong",[g._v("주소(Address)")]),g._v(": 주소는 쉽게 읽을 수 있는 prefix가 적용된 공개 string이며, 계정을 식별하는데 사용됩니다. 퍼블릭 키를 기반으로 수학적 함수를 적용해 생성됩니다.")]),g._v(" "),C("li",[C("strong",[g._v("디지털 서명(Digital Signature)")]),g._v(": 디지털 서명은 소유자의 프라이빗 키를 노출하지 않고 메시지를 서명한 프라이빗 키의 소유자를 검증하는 암호학적 정보입니다.")]),g._v(" "),C("li",[C("strong",[g._v("시드(Seed)")]),g._v(": 네모닉(mnemonic)과 동일합니다.")]),g._v(" "),C("li",[C("strong",[g._v("네모닉(Mnemonic)")]),g._v(": 네모닉은 프라이빗 키를 생성하는 단어 시리즈입니다. 모든 지갑은 관련 네모닉에서 생성됩니다. 네모닉은 절대 분실하면 안됩니다. 종이에 직접 적으시고 안전한 장소에 보관하세요. 분실 후 네모닉을 북구하는 방법은 없으며, 네모닉이 타인에게 노출될 경우, 해당 네모닉과 관련된 모든 계정의 소유권을 가지게 됩니다.")])]),g._v(" "),C("p",[g._v("모든 HD 지갑은 특정 시드에서 생성됩니다. 이 시드로 부터 유저는 결정론적으로 계쩡을 생성할 수 있습니다. 시드로 부터 계정을 생성하기 위해서는 일방형 수학적 변환을 사용합니다. 어떤 계정을 생성할지 결정하기 위해서 유저는 특정 "),C("code",[g._v("path")]),g._v("를 정의합니다. 대다수의 "),C("code",[g._v("path")]),g._v("는 "),C("code",[g._v("integer")]),g._v(" ("),C("code",[g._v("0")]),g._v(", "),C("code",[g._v("1")]),g._v(", "),C("code",[g._v("2")]),g._v(", ...) 값입니다.")]),g._v(" "),C("p",[g._v("예를 들어, "),C("code",[g._v("path")]),g._v(" 값이 "),C("code",[g._v("0")]),g._v("으로 지정된 경우, 지갑은 시드로부터 "),C("code",[g._v("Private Key 0")]),g._v("을 생성합니다. 이후 "),C("code",[g._v("Private Key 0")]),g._v("으로부터 "),C("code",[g._v("Public Key 0")]),g._v("을 생성하며, 마지막으로 "),C("code",[g._v("Public Key 0")]),g._v("으로 부터"),C("code",[g._v("Address 0")]),g._v("가 생성됩니다. 이 모든 과정을 일방적으로만 진행될 수 있습니다. 즉, "),C("code",[g._v("Address")]),g._v("로 부터 "),C("code",[g._v("Public Key")]),g._v("를 찾을 수 없고, "),C("code",[g._v("Public Key")]),g._v("로 부터 "),C("code",[g._v("Private Key")]),g._v(" 값을 찾을 수 없스비낟.")]),g._v(" "),C("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"ICAgICBBY2NvdW50IDAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjb3VudCAxICAgICAgICAgICAgICAgICAgICAgICAgIEFjY291bnQgMgoKKy0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLSsKfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwKfCAgICBBZGRyZXNzIDAgICAgIHwgICAgICAgICAgICAgIHwgICAgQWRkcmVzcyAxICAgICB8ICAgICAgICAgICAgICAgfCAgICBBZGRyZXNzIDIgICAgIHwKfCAgICAgICAgXiAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIF4gICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgXiAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgKyAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICsgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgKyAgICAgICAgIHwKfCAgUHVibGljIGtleSAwICAgIHwgICAgICAgICAgICAgIHwgIFB1YmxpYyBrZXkgMSAgICB8ICAgICAgICAgICAgICAgfCAgUHVibGljIGtleSAyICAgIHwKfCAgICAgICAgXiAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIF4gICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgXiAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgKyAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICsgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgKyAgICAgICAgIHwKfCAgUHJpdmF0ZSBrZXkgMCAgIHwgICAgICAgICAgICAgIHwgIFByaXZhdGUga2V5IDEgICB8ICAgICAgICAgICAgICAgfCAgUHJpdmF0ZSBrZXkgMiAgIHwKfCAgICAgICAgXiAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIF4gICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgXiAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tKy0tLS0tLS0tLSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIE1uZW1vbmljIChTZWVkKSAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0rCg=="}}),g._v(" "),C("p",[g._v("시드로부터 계정을 생성하는 과정은 결정론적(deterministic)입니다. 즉, 동일한 시드로 부터 동일한 "),C("code",[g._v("path")]),g._v("를 입력한 경우, 생성되는 "),C("code",[g._v("private key")]),g._v("는 언제나 동일합니다.")]),g._v(" "),C("p",[g._v("계정에 보관되어있는 자산은 프라이빗 키를 사용해 관리됩니다. 프라이빗 키는 네모닉으로 부터 일방적 함수를 적용해 생성됩니다. 만약 프라이빗 키를 분실하신 경우, 네모닉을 사용해 프라이빗 키를 다시 찾을 수 있으나, 네모닉을 분실하신 경우 연관된 모든 프라이빗 키에 대한 소유권을 잃으실 수 있습니다. 또한 유저의 네모닉이 타인에게 노출이된 경우, 네모닉과 연관된 모든 계정의 소유권을 가지게 됩니다.")]),g._v(" "),C("div",{staticClass:"custom-block danger"},[C("p",[C("strong",[g._v("24 단어로 구성된 네모닉을 누구와도 공유하지 마세요. 자산의 도난과 분실을 예방하기 위해서 다수의 네모닉 키를 안전한 곳에 보관하는 것이 좋습니다. 만약 타인이 당신의 네모닉을 소유하게 되면, 연관된 모든 계정의 소유권을 함께 가지게 됩니다.")])])])],1)}),[],!1,null,null,null);I.default=t.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{571:function(g,I,C){"use strict";C.r(I);var A=C(1),t=Object(A.a)({},(function(){var g=this,I=g.$createElement,C=g._self._c||I;return C("ContentSlotsDistributor",{attrs:{"slot-key":g.$parent.slotKey}},[C("h1",{attrs:{id:"hd-지갑"}},[C("a",{staticClass:"header-anchor",attrs:{href:"#hd-지갑"}},[g._v("#")]),g._v(" HD 지갑")]),g._v(" "),C("p",[g._v("코스모스의 계정은 HD 월렛(Hierarchical Deterministic Wallet) 표준을 사용합니다. HD 월렛은 비트코인의 "),C("a",{attrs:{href:"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki",target:"_blank",rel:"noopener noreferrer"}},[g._v("BIP32"),C("OutboundLink")],1),g._v("로 부터 정의되며, 유저가 하나의 시드로부터 다수의 계정을 생성할 수 있게 하는 시스템입니다. 더 자세하게 알아보기 위해서 관련 명칭을 설명하겠습니다:")]),g._v(" "),C("ul",[C("li",[C("strong",[g._v("지갑(Wallet)")]),g._v(": 특정 시드로부터 생성된 계정.")]),g._v(" "),C("li",[C("strong",[g._v("계정(Account)")]),g._v(": 퍼블릭 키/프라이빗 키 쌍.")]),g._v(" "),C("li",[C("strong",[g._v("프라이빗 키(Private Key)")]),g._v(": 프라이빗 키는 메시지를 서명할때 사용되는 비밀 정보입니다. 블록체인 업계에서 프라이빗 키는 계정의 소유자를 식별하는데 사용됩니다. 유저의 프라이빗 키는 절대 다른 이에게 알려지면 안됩니다.")]),g._v(" "),C("li",[C("strong",[g._v("퍼블릭 키(Public Key)")]),g._v(": 퍼블릭 키는 프라이빗 키로부터 일방적 수학 함수를 적용해 얻게되는 정보입니다. 퍼블릭 키를 기반으로 주소가 만들어지게 되며, 퍼블릭 키를 기반으로 프라이빗 키를 찾는 것은 불가능 합니다.")]),g._v(" "),C("li",[C("strong",[g._v("주소(Address)")]),g._v(": 주소는 쉽게 읽을 수 있는 prefix가 적용된 공개 string이며, 계정을 식별하는데 사용됩니다. 퍼블릭 키를 기반으로 수학적 함수를 적용해 생성됩니다.")]),g._v(" "),C("li",[C("strong",[g._v("디지털 서명(Digital Signature)")]),g._v(": 디지털 서명은 소유자의 프라이빗 키를 노출하지 않고 메시지를 서명한 프라이빗 키의 소유자를 검증하는 암호학적 정보입니다.")]),g._v(" "),C("li",[C("strong",[g._v("시드(Seed)")]),g._v(": 네모닉(mnemonic)과 동일합니다.")]),g._v(" "),C("li",[C("strong",[g._v("네모닉(Mnemonic)")]),g._v(": 네모닉은 프라이빗 키를 생성하는 단어 시리즈입니다. 모든 지갑은 관련 네모닉에서 생성됩니다. 네모닉은 절대 분실하면 안됩니다. 종이에 직접 적으시고 안전한 장소에 보관하세요. 분실 후 네모닉을 북구하는 방법은 없으며, 네모닉이 타인에게 노출될 경우, 해당 네모닉과 관련된 모든 계정의 소유권을 가지게 됩니다.")])]),g._v(" "),C("p",[g._v("모든 HD 지갑은 특정 시드에서 생성됩니다. 이 시드로 부터 유저는 결정론적으로 계쩡을 생성할 수 있습니다. 시드로 부터 계정을 생성하기 위해서는 일방형 수학적 변환을 사용합니다. 어떤 계정을 생성할지 결정하기 위해서 유저는 특정 "),C("code",[g._v("path")]),g._v("를 정의합니다. 대다수의 "),C("code",[g._v("path")]),g._v("는 "),C("code",[g._v("integer")]),g._v(" ("),C("code",[g._v("0")]),g._v(", "),C("code",[g._v("1")]),g._v(", "),C("code",[g._v("2")]),g._v(", ...) 값입니다.")]),g._v(" "),C("p",[g._v("예를 들어, "),C("code",[g._v("path")]),g._v(" 값이 "),C("code",[g._v("0")]),g._v("으로 지정된 경우, 지갑은 시드로부터 "),C("code",[g._v("Private Key 0")]),g._v("을 생성합니다. 이후 "),C("code",[g._v("Private Key 0")]),g._v("으로부터 "),C("code",[g._v("Public Key 0")]),g._v("을 생성하며, 마지막으로 "),C("code",[g._v("Public Key 0")]),g._v("으로 부터"),C("code",[g._v("Address 0")]),g._v("가 생성됩니다. 이 모든 과정을 일방적으로만 진행될 수 있습니다. 즉, "),C("code",[g._v("Address")]),g._v("로 부터 "),C("code",[g._v("Public Key")]),g._v("를 찾을 수 없고, "),C("code",[g._v("Public Key")]),g._v("로 부터 "),C("code",[g._v("Private Key")]),g._v(" 값을 찾을 수 없스비낟.")]),g._v(" "),C("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"ICAgICBBY2NvdW50IDAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjb3VudCAxICAgICAgICAgICAgICAgICAgICAgICAgIEFjY291bnQgMgoKKy0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLSsKfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwKfCAgICBBZGRyZXNzIDAgICAgIHwgICAgICAgICAgICAgIHwgICAgQWRkcmVzcyAxICAgICB8ICAgICAgICAgICAgICAgfCAgICBBZGRyZXNzIDIgICAgIHwKfCAgICAgICAgXiAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIF4gICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgXiAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgKyAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICsgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgKyAgICAgICAgIHwKfCAgUHVibGljIGtleSAwICAgIHwgICAgICAgICAgICAgIHwgIFB1YmxpYyBrZXkgMSAgICB8ICAgICAgICAgICAgICAgfCAgUHVibGljIGtleSAyICAgIHwKfCAgICAgICAgXiAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIF4gICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgXiAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwKfCAgICAgICAgKyAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICsgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgKyAgICAgICAgIHwKfCAgUHJpdmF0ZSBrZXkgMCAgIHwgICAgICAgICAgICAgIHwgIFByaXZhdGUga2V5IDEgICB8ICAgICAgICAgICAgICAgfCAgUHJpdmF0ZSBrZXkgMiAgIHwKfCAgICAgICAgXiAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgIF4gICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgXiAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tKy0tLS0tLS0tLSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIE1uZW1vbmljIChTZWVkKSAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0rCg=="}}),g._v(" "),C("p",[g._v("시드로부터 계정을 생성하는 과정은 결정론적(deterministic)입니다. 즉, 동일한 시드로 부터 동일한 "),C("code",[g._v("path")]),g._v("를 입력한 경우, 생성되는 "),C("code",[g._v("private key")]),g._v("는 언제나 동일합니다.")]),g._v(" "),C("p",[g._v("계정에 보관되어있는 자산은 프라이빗 키를 사용해 관리됩니다. 프라이빗 키는 네모닉으로 부터 일방적 함수를 적용해 생성됩니다. 만약 프라이빗 키를 분실하신 경우, 네모닉을 사용해 프라이빗 키를 다시 찾을 수 있으나, 네모닉을 분실하신 경우 연관된 모든 프라이빗 키에 대한 소유권을 잃으실 수 있습니다. 또한 유저의 네모닉이 타인에게 노출이된 경우, 네모닉과 연관된 모든 계정의 소유권을 가지게 됩니다.")]),g._v(" "),C("div",{staticClass:"custom-block danger"},[C("p",[C("strong",[g._v("24 단어로 구성된 네모닉을 누구와도 공유하지 마세요. 자산의 도난과 분실을 예방하기 위해서 다수의 네모닉 키를 안전한 곳에 보관하는 것이 좋습니다. 만약 타인이 당신의 네모닉을 소유하게 되면, 연관된 모든 계정의 소유권을 함께 가지게 됩니다.")])])])],1)}),[],!1,null,null,null);I.default=t.exports}}]); \ No newline at end of file diff --git a/main/assets/js/139.d91652a8.js b/main/assets/js/139.52f19dfe.js similarity index 99% rename from main/assets/js/139.d91652a8.js rename to main/assets/js/139.52f19dfe.js index 4e8fac603ec..2787b74e321 100644 --- a/main/assets/js/139.d91652a8.js +++ b/main/assets/js/139.52f19dfe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{571:function(t,a,s){"use strict";s.r(a);var e=s(1),v=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"노드-업그레이드-하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#노드-업그레이드-하기"}},[t._v("#")]),t._v(" 노드 업그레이드 하기")]),t._v(" "),s("p",[t._v("이 문서는 "),s("code",[t._v("gaiad")]),t._v(" 풀노드를 새로운 버전으로 업그레이드하는 절차를 설명합니다.")]),t._v(" "),s("h2",{attrs:{id:"소프트웨어-업그레이드"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#소프트웨어-업그레이드"}},[t._v("#")]),t._v(" 소프트웨어 업그레이드")]),t._v(" "),s("p",[t._v("우선 "),s("code",[t._v("gaiad")]),t._v(" 인스턴스를 중지하세요. 이후 소프트웨어를 업그레이드하세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2QgZ2FpYQpnaXQgZmV0Y2ggLS1hbGwgJmFtcDsmYW1wOyBnaXQgY2hlY2tvdXQgJmx0O25ld192ZXJzaW9uJmd0OwptYWtlIGluc3RhbGwK"}}),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",[s("em",[t._v("참고")]),t._v(": 이번 단계에서 문제가 발생하는 경우, 최신 스테이블 버전의 Go가 설치되어있는지 확인하세요.")])]),t._v(" "),s("p",[t._v("최신 퍼블릭 테스트넷에 필요한 버전 정보를 확인하기 위해서는 "),s("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("테스트넷 리포"),s("OutboundLink")],1),t._v("를 참고하시고, 각 릴리즈에 대한 자세한 정보는 "),s("a",{attrs:{href:"https://github.com/cosmos/Gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("Gaia 릴리즈 페이지"),s("OutboundLink")],1),t._v("를 참고하세요.")]),t._v(" "),s("p",[t._v("이제 풀노드가 깔끔하게 업그레이드되었습니다.")]),t._v(" "),s("h2",{attrs:{id:"제네시스-파일-업그레이드하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#제네시스-파일-업그레이드하기"}},[t._v("#")]),t._v(" 제네시스 파일 업그레이드하기")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",[t._v("만약 업그레이드를 진행하는 새로운 버전에 'breaking change'가 포함되어있는 경우, 블록체인을 재시작해야합니다. 만약 'breaking change'가 없는 경우, "),s("a",{attrs:{href:"#restart"}},[t._v("리스타트")]),t._v("로 넘어가셔도 좋습니다.")]),t._v(" "),s("p",[t._v("제네시스 파일을 업그레이드하기 위해서는 신뢰할 수 있는 소스에서 받으시거나 로컬 환경에서 내보내실 수 있습니다.")]),t._v(" "),s("h3",{attrs:{id:"신뢰하는-소스에서-받기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#신뢰하는-소스에서-받기"}},[t._v("#")]),t._v(" 신뢰하는 소스에서 받기")]),t._v(" "),s("p",[t._v("메인넷을 참가하시는 경우, "),s("a",{attrs:{href:"https://github.com/cosmos/launch",target:"_blank",rel:"noopener noreferrer"}},[t._v("mainnet repo"),s("OutboundLink")],1),t._v("에서 제네시스를 받으세요. 만약 퍼블릭 테스트넷을 참가하시는 경우, "),s("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),s("OutboundLink")],1),t._v("에서 올바른 테스트넷 제네시스 파일을 받으세요. 이 외의 경우, 신뢰할 수 있는 소스에서 제네시스 파일을 받으세요.")]),t._v(" "),s("p",[t._v("새로운 제네시스 파일을 "),s("code",[t._v("new_genesis.json")]),t._v("으로 저장하세요. 이후, 오래된 "),s("code",[t._v("genesis.json")]),t._v("을 "),s("code",[t._v("new_genesis.json")]),t._v("으로 바꾸세요.")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2QgJEhPTUUvLmdhaWEvY29uZmlnCmNwIC1mIGdlbmVzaXMuanNvbiBuZXdfZ2VuZXNpcy5qc29uCm12IG5ld19nZW5lc2lzLmpzb24gZ2VuZXNpcy5qc29uCg=="}}),t._v(" "),s("p",[t._v("이제 "),s("a",{attrs:{href:"#reset-data"}},[t._v("reset data")]),t._v(" 항목으로 넘어가세요.")]),t._v(" "),s("h3",{attrs:{id:"로컬-환경에서-새로운-제네시스-내보내기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#로컬-환경에서-새로운-제네시스-내보내기"}},[t._v("#")]),t._v(" 로컬 환경에서 새로운 제네시스 내보내기")]),t._v(" "),s("p",[t._v("만약 과거 네트워크 버전에서 노드를 운영하셨고 로컬 환경에서 과거 네트워크의 제네시스 파일을 내보내시는 경우, 다음 명령어를 사용하세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2QgJEhPTUUvLmdhaWEvY29uZmlnCmdhaWFkIGV4cG9ydCAtLWZvci16ZXJvLWhlaWdodCAtLWhlaWdodD0mbHQ764K067O064K064qUX+u4lOuhnV/rhpLsnbQoZXhwb3J0LWhlaWdodCkmZ3Q7ICZndDsgbmV3X2dlbmVzaXMuanNvbgo="}}),t._v(" "),s("p",[t._v("위 명령어는 특정 블록 높이("),s("code",[t._v("<내보내는_블록_높이(export-height)>")]),t._v(")의 상태를 기반으로 새로운 제네시스 파일을 생성합니다. 이 제네시스 파일은 새로운 네트워크를 시작하는데 사용됩니다.")]),t._v(" "),s("p",[t._v("이제 오래된 "),s("code",[t._v("genesis.json")]),t._v("을 "),s("code",[t._v("new_genesis.json")]),t._v("으로 바꾸세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3AgLWYgZ2VuZXNpcy5qc29uIG5ld19nZW5lc2lzLmpzb24KbXYgbmV3X2dlbmVzaXMuanNvbiBnZW5lc2lzLmpzb24K"}}),t._v(" "),s("p",[t._v("이 상태에서 내보낸 제네시스 파일을 새로운 버전과 호환되는 제네시스 파일로 변환하는 스크립트를 실행하셔야될 수 있습니다. 예를 들어, "),s("code",[t._v("Account")]),t._v(" 타입의 형태가 바뀐경우, 스크립트는 account store에서 인코딩된 계정을 확인하고, 언마셜하고, 타입을 업데이트한 후 다시 마셜링을 진행한 다음에 복구하는 작업을 진행합니다. 스크립트의 예시는 "),s("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/contrib/export/v0.33.x-to-v0.34.0.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("여기"),s("OutboundLink")],1),t._v(".를 참고하세요")]),t._v(" "),s("h2",{attrs:{id:"데이터-리셋하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#데이터-리셋하기"}},[t._v("#")]),t._v(" 데이터 리셋하기")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",[t._v("만약 업그레이드하는 <새로운_버전(new_version)>에 'breaking change'가 포함되는 않은 경우, 데이터를 리셋할 필요가 없습니다. 만약 'breaking change'가 포함되지 않은 경우, 바로 "),s("a",{attrs:{href:"#restart"}},[t._v("Restart")]),t._v(" 항목으로 넘어가세요.")])])],1),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",[t._v("메인넷에서 "),s("strong",[t._v("검증인 노드")]),t._v("를 운영하시는 경우, "),s("code",[t._v("gaiad unsafe-reset-all")]),t._v(" 명령어를 실행하실때 주의를 기울이세요. "),s("code",[t._v("chain-id")]),t._v("를 변경하지 않는 이상 이 명령어를 실행할 필요가 없습니다.")])]),t._v(" "),s("div",{staticClass:"custom-block danger"},[s("p",{staticClass:"custom-block-title"},[t._v("중요")]),t._v(" "),s("p",[t._v("각 노드가 고유한 "),s("code",[t._v("priv_validator.json")]),t._v(" 파일을 가지고 있는 것을 확인하세요. 절대로 과거 노드에서 "),s("code",[t._v("priv_validator.json")]),t._v("을 복사하여 다수의 신규 노드에 붙혀넣지 마세요. 다수의 동일한 "),s("code",[t._v("priv_validator.json")]),t._v("을 가진 노드가 존재하는 경우 더블 사이닝으로 슬래싱될 수 있습니다.")])]),t._v(" "),s("p",[t._v("우선 오래된 파일을 삭제하시고 데이터를 리셋하세요.\n"),s("strong",[t._v("만약 검증인 노드를 운영하시는 경우, 이 단계를 진행하기 전 따르는 위험을 충분히 숙지하고 진행하세요")]),t._v(".")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}}),t._v(" "),s("p",[t._v("이제 노드는 "),s("code",[t._v("priv_validator.json")]),t._v("과 "),s("code",[t._v("config.toml")]),t._v("외의 모들 파일이 리셋되었습니다. 업그레이드된 노드는 기존의 연결되었던 센트리 노드와 풀 노드가 존재하는 경우 연결을 시도할 수 있으나, 함께 업그레이드가 진행되지 않으면 연결이 실패할 수 있습니다.")]),t._v(" "),s("h2",{attrs:{id:"노드-다시-시작하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#노드-다시-시작하기"}},[t._v("#")]),t._v(" 노드 다시 시작하기")]),t._v(" "),s("p",[t._v("노드를 다시 시작하기 위해서는 다음 명령어를 실행하세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}})],1)}),[],!1,null,null,null);a.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{570:function(t,a,s){"use strict";s.r(a);var e=s(1),v=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"노드-업그레이드-하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#노드-업그레이드-하기"}},[t._v("#")]),t._v(" 노드 업그레이드 하기")]),t._v(" "),s("p",[t._v("이 문서는 "),s("code",[t._v("gaiad")]),t._v(" 풀노드를 새로운 버전으로 업그레이드하는 절차를 설명합니다.")]),t._v(" "),s("h2",{attrs:{id:"소프트웨어-업그레이드"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#소프트웨어-업그레이드"}},[t._v("#")]),t._v(" 소프트웨어 업그레이드")]),t._v(" "),s("p",[t._v("우선 "),s("code",[t._v("gaiad")]),t._v(" 인스턴스를 중지하세요. 이후 소프트웨어를 업그레이드하세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2QgZ2FpYQpnaXQgZmV0Y2ggLS1hbGwgJmFtcDsmYW1wOyBnaXQgY2hlY2tvdXQgJmx0O25ld192ZXJzaW9uJmd0OwptYWtlIGluc3RhbGwK"}}),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",[s("em",[t._v("참고")]),t._v(": 이번 단계에서 문제가 발생하는 경우, 최신 스테이블 버전의 Go가 설치되어있는지 확인하세요.")])]),t._v(" "),s("p",[t._v("최신 퍼블릭 테스트넷에 필요한 버전 정보를 확인하기 위해서는 "),s("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("테스트넷 리포"),s("OutboundLink")],1),t._v("를 참고하시고, 각 릴리즈에 대한 자세한 정보는 "),s("a",{attrs:{href:"https://github.com/cosmos/Gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("Gaia 릴리즈 페이지"),s("OutboundLink")],1),t._v("를 참고하세요.")]),t._v(" "),s("p",[t._v("이제 풀노드가 깔끔하게 업그레이드되었습니다.")]),t._v(" "),s("h2",{attrs:{id:"제네시스-파일-업그레이드하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#제네시스-파일-업그레이드하기"}},[t._v("#")]),t._v(" 제네시스 파일 업그레이드하기")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",[t._v("만약 업그레이드를 진행하는 새로운 버전에 'breaking change'가 포함되어있는 경우, 블록체인을 재시작해야합니다. 만약 'breaking change'가 없는 경우, "),s("a",{attrs:{href:"#restart"}},[t._v("리스타트")]),t._v("로 넘어가셔도 좋습니다.")]),t._v(" "),s("p",[t._v("제네시스 파일을 업그레이드하기 위해서는 신뢰할 수 있는 소스에서 받으시거나 로컬 환경에서 내보내실 수 있습니다.")]),t._v(" "),s("h3",{attrs:{id:"신뢰하는-소스에서-받기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#신뢰하는-소스에서-받기"}},[t._v("#")]),t._v(" 신뢰하는 소스에서 받기")]),t._v(" "),s("p",[t._v("메인넷을 참가하시는 경우, "),s("a",{attrs:{href:"https://github.com/cosmos/launch",target:"_blank",rel:"noopener noreferrer"}},[t._v("mainnet repo"),s("OutboundLink")],1),t._v("에서 제네시스를 받으세요. 만약 퍼블릭 테스트넷을 참가하시는 경우, "),s("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),s("OutboundLink")],1),t._v("에서 올바른 테스트넷 제네시스 파일을 받으세요. 이 외의 경우, 신뢰할 수 있는 소스에서 제네시스 파일을 받으세요.")]),t._v(" "),s("p",[t._v("새로운 제네시스 파일을 "),s("code",[t._v("new_genesis.json")]),t._v("으로 저장하세요. 이후, 오래된 "),s("code",[t._v("genesis.json")]),t._v("을 "),s("code",[t._v("new_genesis.json")]),t._v("으로 바꾸세요.")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2QgJEhPTUUvLmdhaWEvY29uZmlnCmNwIC1mIGdlbmVzaXMuanNvbiBuZXdfZ2VuZXNpcy5qc29uCm12IG5ld19nZW5lc2lzLmpzb24gZ2VuZXNpcy5qc29uCg=="}}),t._v(" "),s("p",[t._v("이제 "),s("a",{attrs:{href:"#reset-data"}},[t._v("reset data")]),t._v(" 항목으로 넘어가세요.")]),t._v(" "),s("h3",{attrs:{id:"로컬-환경에서-새로운-제네시스-내보내기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#로컬-환경에서-새로운-제네시스-내보내기"}},[t._v("#")]),t._v(" 로컬 환경에서 새로운 제네시스 내보내기")]),t._v(" "),s("p",[t._v("만약 과거 네트워크 버전에서 노드를 운영하셨고 로컬 환경에서 과거 네트워크의 제네시스 파일을 내보내시는 경우, 다음 명령어를 사용하세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2QgJEhPTUUvLmdhaWEvY29uZmlnCmdhaWFkIGV4cG9ydCAtLWZvci16ZXJvLWhlaWdodCAtLWhlaWdodD0mbHQ764K067O064K064qUX+u4lOuhnV/rhpLsnbQoZXhwb3J0LWhlaWdodCkmZ3Q7ICZndDsgbmV3X2dlbmVzaXMuanNvbgo="}}),t._v(" "),s("p",[t._v("위 명령어는 특정 블록 높이("),s("code",[t._v("<내보내는_블록_높이(export-height)>")]),t._v(")의 상태를 기반으로 새로운 제네시스 파일을 생성합니다. 이 제네시스 파일은 새로운 네트워크를 시작하는데 사용됩니다.")]),t._v(" "),s("p",[t._v("이제 오래된 "),s("code",[t._v("genesis.json")]),t._v("을 "),s("code",[t._v("new_genesis.json")]),t._v("으로 바꾸세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3AgLWYgZ2VuZXNpcy5qc29uIG5ld19nZW5lc2lzLmpzb24KbXYgbmV3X2dlbmVzaXMuanNvbiBnZW5lc2lzLmpzb24K"}}),t._v(" "),s("p",[t._v("이 상태에서 내보낸 제네시스 파일을 새로운 버전과 호환되는 제네시스 파일로 변환하는 스크립트를 실행하셔야될 수 있습니다. 예를 들어, "),s("code",[t._v("Account")]),t._v(" 타입의 형태가 바뀐경우, 스크립트는 account store에서 인코딩된 계정을 확인하고, 언마셜하고, 타입을 업데이트한 후 다시 마셜링을 진행한 다음에 복구하는 작업을 진행합니다. 스크립트의 예시는 "),s("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/contrib/export/v0.33.x-to-v0.34.0.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("여기"),s("OutboundLink")],1),t._v(".를 참고하세요")]),t._v(" "),s("h2",{attrs:{id:"데이터-리셋하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#데이터-리셋하기"}},[t._v("#")]),t._v(" 데이터 리셋하기")]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",[t._v("만약 업그레이드하는 <새로운_버전(new_version)>에 'breaking change'가 포함되는 않은 경우, 데이터를 리셋할 필요가 없습니다. 만약 'breaking change'가 포함되지 않은 경우, 바로 "),s("a",{attrs:{href:"#restart"}},[t._v("Restart")]),t._v(" 항목으로 넘어가세요.")])])],1),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",[t._v("메인넷에서 "),s("strong",[t._v("검증인 노드")]),t._v("를 운영하시는 경우, "),s("code",[t._v("gaiad unsafe-reset-all")]),t._v(" 명령어를 실행하실때 주의를 기울이세요. "),s("code",[t._v("chain-id")]),t._v("를 변경하지 않는 이상 이 명령어를 실행할 필요가 없습니다.")])]),t._v(" "),s("div",{staticClass:"custom-block danger"},[s("p",{staticClass:"custom-block-title"},[t._v("중요")]),t._v(" "),s("p",[t._v("각 노드가 고유한 "),s("code",[t._v("priv_validator.json")]),t._v(" 파일을 가지고 있는 것을 확인하세요. 절대로 과거 노드에서 "),s("code",[t._v("priv_validator.json")]),t._v("을 복사하여 다수의 신규 노드에 붙혀넣지 마세요. 다수의 동일한 "),s("code",[t._v("priv_validator.json")]),t._v("을 가진 노드가 존재하는 경우 더블 사이닝으로 슬래싱될 수 있습니다.")])]),t._v(" "),s("p",[t._v("우선 오래된 파일을 삭제하시고 데이터를 리셋하세요.\n"),s("strong",[t._v("만약 검증인 노드를 운영하시는 경우, 이 단계를 진행하기 전 따르는 위험을 충분히 숙지하고 진행하세요")]),t._v(".")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}}),t._v(" "),s("p",[t._v("이제 노드는 "),s("code",[t._v("priv_validator.json")]),t._v("과 "),s("code",[t._v("config.toml")]),t._v("외의 모들 파일이 리셋되었습니다. 업그레이드된 노드는 기존의 연결되었던 센트리 노드와 풀 노드가 존재하는 경우 연결을 시도할 수 있으나, 함께 업그레이드가 진행되지 않으면 연결이 실패할 수 있습니다.")]),t._v(" "),s("h2",{attrs:{id:"노드-다시-시작하기"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#노드-다시-시작하기"}},[t._v("#")]),t._v(" 노드 다시 시작하기")]),t._v(" "),s("p",[t._v("노드를 다시 시작하기 위해서는 다음 명령어를 실행하세요:")]),t._v(" "),s("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}})],1)}),[],!1,null,null,null);a.default=v.exports}}]); \ No newline at end of file diff --git a/main/assets/js/144.b1f3211f.js b/main/assets/js/144.21da4246.js similarity index 79% rename from main/assets/js/144.b1f3211f.js rename to main/assets/js/144.21da4246.js index 09c7a7f1295..b616151e1d4 100644 --- a/main/assets/js/144.b1f3211f.js +++ b/main/assets/js/144.21da4246.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{566:function(t,e,n){"use strict";n.r(e);var s=n(1),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{567:function(t,e,n){"use strict";n.r(e);var s=n(1),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file diff --git a/main/assets/js/146.8297b793.js b/main/assets/js/146.0ede5727.js similarity index 99% rename from main/assets/js/146.8297b793.js rename to main/assets/js/146.0ede5727.js index 759946731a2..ae5a9c7951b 100644 --- a/main/assets/js/146.8297b793.js +++ b/main/assets/js/146.0ede5727.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{565:function(e,t,o){"use strict";o.r(t);var a=o(1),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"the-3-phases-of-the-cosmos-hub-mainnet"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-3-phases-of-the-cosmos-hub-mainnet"}},[e._v("#")]),e._v(" The 3 Phases of the Cosmos Hub Mainnet")]),e._v(" "),o("h2",{attrs:{id:"post-mainnet-development-roadmap-expectations-for-users"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#post-mainnet-development-roadmap-expectations-for-users"}},[e._v("#")]),e._v(" Post-Mainnet Development Roadmap & Expectations for Users")]),e._v(" "),o("p",[e._v("The launch of the Cosmos Hub mainnet is expected to happen in phases. Here we outline what to expect in each phase.")]),e._v(" "),o("h1",{attrs:{id:"🚨phase-i-network-gains-stability-🚨"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#🚨phase-i-network-gains-stability-🚨"}},[e._v("#")]),e._v(" 🚨Phase I: Network Gains Stability 🚨")]),e._v(" "),o("p",[e._v("In the first phase, the network is likely to be unstable; it may experience halts or other forms of failure requiring intervention and coordination among Cosmos Hub validators and full node operators to deploy a fix. This type of failure is not unexpected while the network gains stability.")]),e._v(" "),o("h2",{attrs:{id:"state-reversions-and-mainnet-launch"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#state-reversions-and-mainnet-launch"}},[e._v("#")]),e._v(" State Reversions and Mainnet launch")]),e._v(" "),o("p",[e._v("One of the core ideologies around blockchains is immutability. This is the idea that we don't go\nback and edit past state transitions. While this notion of immutability is implemented directly via consensus protocols in the software, it is ultimately upheld by social contract among participants.")]),e._v(" "),o("p",[e._v("That said, the technology underlying the Cosmos Hub was intentionally developed to enable low-friction forks and rollbacks. We’ve seen the community practice these techniques numerous times on the test networks. It’s likely they will need to be used on a mainnet as well. Ultimately, they are a countervailing force to the risk of cartel takeover.")]),e._v(" "),o("p",[e._v("Reverting state is often seen as highly grievous, as it compromises the network’s economic finality. Hence it should only be used in extreme conditions, as witnessed in the case of Ethereum with the DAO Hard Fork. That said, in the early days of the Cosmos Hub network, transfers will not be active, and hence the severity of state reversions will be reduced, as state transitions will be much less “economically final”. If necessary in case of bugs, the state can be exported from a past height and the network restarted, as practiced on the testnets.")]),e._v(" "),o("p",[e._v("Once governance chooses to enable transfers, the importance of economic finality must be respected by the network.")]),e._v(" "),o("p",[e._v("To summarize, if there are errors or vulnerabilities in the Cosmos Hub in the days before transfers are enabled, users should expect arbitrary state rollbacks even to genesis.")]),e._v(" "),o("p",[e._v("Once transfers are enabled, state rollbacks will be much more difficult to justify.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for developers:")]),e._v(" The Cosmos mainnet launch is the first phase in which fundraiser participants will be working together to operate the software. As a decentralized application developer, you are likely a user of either the "),o("a",{attrs:{href:"https://cosmos.network/docs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos-SDK framework"),o("OutboundLink")],1),e._v(" or "),o("a",{attrs:{href:"https://tendermint.com/docs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tendermint Core"),o("OutboundLink")],1),e._v(". The progress of your Cosmos-SDK or Tendermint-based application should be independent of the Cosmos Hub roadmap. However, if your project requires the use of "),o("a",{attrs:{href:"%5Bhttps://blog.cosmos.network/developer-deep-dive-cosmos-ibc-5855aaf183fe%5D"}},[e._v("Inter-Blockchain Communication")]),e._v(", you must wait until Phase III, or participate in the IBC testnets that will begin shortly.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for users:")]),e._v(" In this phase, we strongly recommend that you do not arrange to trade Atoms (eg. by legal contract as they will not be transferable yet) as there is the risk of state being reverted.")]),e._v(" "),o("p",[e._v("You can, however, safely delegate Atoms to validators in this phase by following the CLI guideline and video tutorial linked below. Of course, in the event of a state reversion, any earned fees and inflation may be lost. Note that only "),o("code",[e._v("gaiad")]),e._v(" should be used for making transactions. Voyager, the GUI for interacting with the Cosmos Hub, is currently in alpha and undergoing development. A separate announcement will be made once Voyager is safer for use.")]),e._v(" "),o("p",[o("RouterLink",{attrs:{to:"/delegators/delegator-guide-cli.html"}},[e._v("CLI Guide")]),e._v(" 🔗")],1),e._v(" "),o("p",[o("strong",[e._v("Watch CLI delegation tutorial:")]),e._v(" "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=ydZw6o6Mzy0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos YouTube"),o("OutboundLink")],1)]),e._v(" "),o("h1",{attrs:{id:"phase-ii-transfers-enabled"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#phase-ii-transfers-enabled"}},[e._v("#")]),e._v(" Phase II: Transfers Enabled")]),e._v(" "),o("p",[o("strong",[e._v("Summary:")]),e._v(" Once mainnet is deemed sufficiently stable, bonded Atom holders will vote to decide whether or not Atom transfers should be enabled. This procedure will happen through on-chain governance.")]),e._v(" "),o("p",[e._v("The best way to check on the status of governance proposals is to view them through Cosmos explorers. A list of explorers can be found on the launch page: "),o("a",{attrs:{href:"https://cosmos.network/launch",target:"_blank",rel:"noopener noreferrer"}},[e._v("cosmos.network/launch"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("What this means for users:")]),e._v(" If the proposal is accepted and transfers are enabled, then it becomes possible to transfer Atoms.")]),e._v(" "),o("h1",{attrs:{id:"phase-iii-ibc-enabled"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#phase-iii-ibc-enabled"}},[e._v("#")]),e._v(" Phase III: IBC Enabled")]),e._v(" "),o("p",[o("strong",[e._v("Summary:")]),e._v(" In Phase III, the "),o("a",{attrs:{href:"%5Bhttps://docs.cosmos.network/main/ibc/overview.html%5D"}},[e._v("IBC protocol")]),e._v(" is released and Atom holders vote via on-chain governance on whether or not to enable it as part of the core module library within the Cosmos-SDK.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for developers:")]),e._v(" Application-specific blockchains that are built using the Cosmos-SDK or Tendermint BFT will be able to connect to the Hub and interoperate/compose with all of the other blockchains that are connected to it.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for users:")]),e._v(" You will be able to transfer various tokens and NFTs directly from one IBC-connected chain to another IBC-connected chain without going through a centralized\nthird-party platform.")]),e._v(" "),o("h1",{attrs:{id:"housekeeping-for-validators-submitting-a-gentx-for-mainnet"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#housekeeping-for-validators-submitting-a-gentx-for-mainnet"}},[e._v("#")]),e._v(" Housekeeping for Validators: Submitting a "),o("code",[e._v("gentx")]),e._v(" for mainnet")]),e._v(" "),o("ol",[o("li",[e._v("You should have generated and secured the validator consensus key you are going to be validating under during mainnet.")]),e._v(" "),o("li",[e._v("Be prepared to sign a transaction under an address in the genesis file either from the fundraiser or Game of Stakes depending on where you received your ATOM allocation.")]),e._v(" "),o("li",[e._v("We will begin collecting Gentxs for mainnet once the recommended genesis allocations are published.")])]),e._v(" "),o("h1",{attrs:{id:"in-closing"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#in-closing"}},[e._v("#")]),e._v(" In Closing")]),e._v(" "),o("p",[e._v("The Cosmos mission is to build bridges to connect all blockchains—to build an Internet of Blockchains. Clearly, we have a long road of development ahead of us. And after mainnet, the real work to a world of deeply integrated token economies is still ahead of us. But as John Fitzgerald Kennedy once said in the face of adversity:")]),e._v(" "),o("p",[o("em",[e._v("“We choose to go to the moon...not because they are easy, but because they are hard….”")])]),e._v(" "),o("p",[e._v("To the Moon 🚀")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{566:function(e,t,o){"use strict";o.r(t);var a=o(1),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"the-3-phases-of-the-cosmos-hub-mainnet"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-3-phases-of-the-cosmos-hub-mainnet"}},[e._v("#")]),e._v(" The 3 Phases of the Cosmos Hub Mainnet")]),e._v(" "),o("h2",{attrs:{id:"post-mainnet-development-roadmap-expectations-for-users"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#post-mainnet-development-roadmap-expectations-for-users"}},[e._v("#")]),e._v(" Post-Mainnet Development Roadmap & Expectations for Users")]),e._v(" "),o("p",[e._v("The launch of the Cosmos Hub mainnet is expected to happen in phases. Here we outline what to expect in each phase.")]),e._v(" "),o("h1",{attrs:{id:"🚨phase-i-network-gains-stability-🚨"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#🚨phase-i-network-gains-stability-🚨"}},[e._v("#")]),e._v(" 🚨Phase I: Network Gains Stability 🚨")]),e._v(" "),o("p",[e._v("In the first phase, the network is likely to be unstable; it may experience halts or other forms of failure requiring intervention and coordination among Cosmos Hub validators and full node operators to deploy a fix. This type of failure is not unexpected while the network gains stability.")]),e._v(" "),o("h2",{attrs:{id:"state-reversions-and-mainnet-launch"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#state-reversions-and-mainnet-launch"}},[e._v("#")]),e._v(" State Reversions and Mainnet launch")]),e._v(" "),o("p",[e._v("One of the core ideologies around blockchains is immutability. This is the idea that we don't go\nback and edit past state transitions. While this notion of immutability is implemented directly via consensus protocols in the software, it is ultimately upheld by social contract among participants.")]),e._v(" "),o("p",[e._v("That said, the technology underlying the Cosmos Hub was intentionally developed to enable low-friction forks and rollbacks. We’ve seen the community practice these techniques numerous times on the test networks. It’s likely they will need to be used on a mainnet as well. Ultimately, they are a countervailing force to the risk of cartel takeover.")]),e._v(" "),o("p",[e._v("Reverting state is often seen as highly grievous, as it compromises the network’s economic finality. Hence it should only be used in extreme conditions, as witnessed in the case of Ethereum with the DAO Hard Fork. That said, in the early days of the Cosmos Hub network, transfers will not be active, and hence the severity of state reversions will be reduced, as state transitions will be much less “economically final”. If necessary in case of bugs, the state can be exported from a past height and the network restarted, as practiced on the testnets.")]),e._v(" "),o("p",[e._v("Once governance chooses to enable transfers, the importance of economic finality must be respected by the network.")]),e._v(" "),o("p",[e._v("To summarize, if there are errors or vulnerabilities in the Cosmos Hub in the days before transfers are enabled, users should expect arbitrary state rollbacks even to genesis.")]),e._v(" "),o("p",[e._v("Once transfers are enabled, state rollbacks will be much more difficult to justify.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for developers:")]),e._v(" The Cosmos mainnet launch is the first phase in which fundraiser participants will be working together to operate the software. As a decentralized application developer, you are likely a user of either the "),o("a",{attrs:{href:"https://cosmos.network/docs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos-SDK framework"),o("OutboundLink")],1),e._v(" or "),o("a",{attrs:{href:"https://tendermint.com/docs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tendermint Core"),o("OutboundLink")],1),e._v(". The progress of your Cosmos-SDK or Tendermint-based application should be independent of the Cosmos Hub roadmap. However, if your project requires the use of "),o("a",{attrs:{href:"%5Bhttps://blog.cosmos.network/developer-deep-dive-cosmos-ibc-5855aaf183fe%5D"}},[e._v("Inter-Blockchain Communication")]),e._v(", you must wait until Phase III, or participate in the IBC testnets that will begin shortly.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for users:")]),e._v(" In this phase, we strongly recommend that you do not arrange to trade Atoms (eg. by legal contract as they will not be transferable yet) as there is the risk of state being reverted.")]),e._v(" "),o("p",[e._v("You can, however, safely delegate Atoms to validators in this phase by following the CLI guideline and video tutorial linked below. Of course, in the event of a state reversion, any earned fees and inflation may be lost. Note that only "),o("code",[e._v("gaiad")]),e._v(" should be used for making transactions. Voyager, the GUI for interacting with the Cosmos Hub, is currently in alpha and undergoing development. A separate announcement will be made once Voyager is safer for use.")]),e._v(" "),o("p",[o("RouterLink",{attrs:{to:"/delegators/delegator-guide-cli.html"}},[e._v("CLI Guide")]),e._v(" 🔗")],1),e._v(" "),o("p",[o("strong",[e._v("Watch CLI delegation tutorial:")]),e._v(" "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=ydZw6o6Mzy0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos YouTube"),o("OutboundLink")],1)]),e._v(" "),o("h1",{attrs:{id:"phase-ii-transfers-enabled"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#phase-ii-transfers-enabled"}},[e._v("#")]),e._v(" Phase II: Transfers Enabled")]),e._v(" "),o("p",[o("strong",[e._v("Summary:")]),e._v(" Once mainnet is deemed sufficiently stable, bonded Atom holders will vote to decide whether or not Atom transfers should be enabled. This procedure will happen through on-chain governance.")]),e._v(" "),o("p",[e._v("The best way to check on the status of governance proposals is to view them through Cosmos explorers. A list of explorers can be found on the launch page: "),o("a",{attrs:{href:"https://cosmos.network/launch",target:"_blank",rel:"noopener noreferrer"}},[e._v("cosmos.network/launch"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("What this means for users:")]),e._v(" If the proposal is accepted and transfers are enabled, then it becomes possible to transfer Atoms.")]),e._v(" "),o("h1",{attrs:{id:"phase-iii-ibc-enabled"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#phase-iii-ibc-enabled"}},[e._v("#")]),e._v(" Phase III: IBC Enabled")]),e._v(" "),o("p",[o("strong",[e._v("Summary:")]),e._v(" In Phase III, the "),o("a",{attrs:{href:"%5Bhttps://docs.cosmos.network/main/ibc/overview.html%5D"}},[e._v("IBC protocol")]),e._v(" is released and Atom holders vote via on-chain governance on whether or not to enable it as part of the core module library within the Cosmos-SDK.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for developers:")]),e._v(" Application-specific blockchains that are built using the Cosmos-SDK or Tendermint BFT will be able to connect to the Hub and interoperate/compose with all of the other blockchains that are connected to it.")]),e._v(" "),o("p",[o("strong",[e._v("What this means for users:")]),e._v(" You will be able to transfer various tokens and NFTs directly from one IBC-connected chain to another IBC-connected chain without going through a centralized\nthird-party platform.")]),e._v(" "),o("h1",{attrs:{id:"housekeeping-for-validators-submitting-a-gentx-for-mainnet"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#housekeeping-for-validators-submitting-a-gentx-for-mainnet"}},[e._v("#")]),e._v(" Housekeeping for Validators: Submitting a "),o("code",[e._v("gentx")]),e._v(" for mainnet")]),e._v(" "),o("ol",[o("li",[e._v("You should have generated and secured the validator consensus key you are going to be validating under during mainnet.")]),e._v(" "),o("li",[e._v("Be prepared to sign a transaction under an address in the genesis file either from the fundraiser or Game of Stakes depending on where you received your ATOM allocation.")]),e._v(" "),o("li",[e._v("We will begin collecting Gentxs for mainnet once the recommended genesis allocations are published.")])]),e._v(" "),o("h1",{attrs:{id:"in-closing"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#in-closing"}},[e._v("#")]),e._v(" In Closing")]),e._v(" "),o("p",[e._v("The Cosmos mission is to build bridges to connect all blockchains—to build an Internet of Blockchains. Clearly, we have a long road of development ahead of us. And after mainnet, the real work to a world of deeply integrated token economies is still ahead of us. But as John Fitzgerald Kennedy once said in the face of adversity:")]),e._v(" "),o("p",[o("em",[e._v("“We choose to go to the moon...not because they are easy, but because they are hard….”")])]),e._v(" "),o("p",[e._v("To the Moon 🚀")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/147.1bf03883.js b/main/assets/js/147.0e39595b.js similarity index 93% rename from main/assets/js/147.1bf03883.js rename to main/assets/js/147.0e39595b.js index 71bc8ca42ad..866e66d3b7b 100644 --- a/main/assets/js/147.1bf03883.js +++ b/main/assets/js/147.0e39595b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[147],{567:function(o,t,s){"use strict";s.r(t);var r=s(1),i=Object(r.a)({},(function(){var o=this,t=o.$createElement,s=o._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[s("h1",{attrs:{id:"migration-instructions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#migration-instructions"}},[o._v("#")]),o._v(" Migration Instructions")]),o._v(" "),s("p",[o._v("This directory houses Cosmos Hub major upgrade migration instructions.")]),o._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/migration/cosmoshub-2/cosmoshub-2.html"}},[o._v("Upgrading from "),s("code",[o._v("cosmoshub-2")]),o._v(" to "),s("code",[o._v("cosmoshub-3")])])],1),o._v(" "),s("li",[s("RouterLink",{attrs:{to:"/migration/cosmoshub-3/cosmoshub-3.html"}},[o._v("Upgrading from "),s("code",[o._v("cosmoshub-3")]),o._v(" to "),s("code",[o._v("cosmoshub-4")])])],1)])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[147],{565:function(o,t,s){"use strict";s.r(t);var r=s(1),i=Object(r.a)({},(function(){var o=this,t=o.$createElement,s=o._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[s("h1",{attrs:{id:"migration-instructions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#migration-instructions"}},[o._v("#")]),o._v(" Migration Instructions")]),o._v(" "),s("p",[o._v("This directory houses Cosmos Hub major upgrade migration instructions.")]),o._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/migration/cosmoshub-2/cosmoshub-2.html"}},[o._v("Upgrading from "),s("code",[o._v("cosmoshub-2")]),o._v(" to "),s("code",[o._v("cosmoshub-3")])])],1),o._v(" "),s("li",[s("RouterLink",{attrs:{to:"/migration/cosmoshub-3/cosmoshub-3.html"}},[o._v("Upgrading from "),s("code",[o._v("cosmoshub-3")]),o._v(" to "),s("code",[o._v("cosmoshub-4")])])],1)])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/main/assets/js/148.675eabf7.js b/main/assets/js/148.b1d153f8.js similarity index 99% rename from main/assets/js/148.675eabf7.js rename to main/assets/js/148.b1d153f8.js index a83a86d3554..7d588f51003 100644 --- a/main/assets/js/148.675eabf7.js +++ b/main/assets/js/148.b1d153f8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{516:function(e,t,o){"use strict";o.r(t);var a=o(1),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"cosmos-hub-2-upgrade-instructions"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-2-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 2 Upgrade Instructions")]),e._v(" "),o("p",[e._v("The following document describes the necessary steps involved that full-node operators\nmust take in order to upgrade from "),o("code",[e._v("cosmoshub-2")]),e._v(" to "),o("code",[e._v("cosmoshub-3")]),e._v(". The Tendermint team\nwill post an official updated genesis file, but it is recommended that validators\nexecute the following instructions in order to verify the resulting genesis file.")]),e._v(" "),o("p",[e._v("There is a strong social consensus around proposal "),o("code",[e._v("Cosmos Hub 3 Upgrade Proposal E")]),e._v("\non "),o("code",[e._v("cosmoshub-2")]),e._v(". This indicates that the upgrade procedure should be performed\non "),o("code",[e._v("December 11, 2019 at or around 14:27 UTC")]),e._v(" on block "),o("code",[e._v("2,902,000")]),e._v(".")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"#cosmos-hub-2-upgrade-instructions"}},[e._v("Cosmos Hub 2 Upgrade Instructions")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"#preliminary"}},[e._v("Preliminary")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#major-updates"}},[e._v("Major Updates")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#recovery"}},[e._v("Recovery")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#upgrade-procedure"}},[e._v("Upgrade Procedure")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#notes-for-service-providers"}},[e._v("Notes for Service Providers")])])])])]),e._v(" "),o("h2",{attrs:{id:"preliminary"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#preliminary"}},[e._v("#")]),e._v(" Preliminary")]),e._v(" "),o("p",[e._v("Many changes have occurred to the Cosmos SDK and the Gaia application since the latest\nmajor upgrade ("),o("code",[e._v("cosmoshub-2")]),e._v("). These changes notably consist of many new features,\nprotocol changes, and application structural changes that favor developer ergonomics\nand application development.")]),e._v(" "),o("p",[e._v("First and foremost, the "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos SDK"),o("OutboundLink")],1),e._v(" and the\n"),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(" application have been split into separate\nrepositories. This allows for both the Cosmos SDK and Gaia to evolve naturally\nand independently. Thus, any future "),o("a",{attrs:{href:"https://github.com/cosmos/gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("releases"),o("OutboundLink")],1),e._v("\nof Gaia going forward, including this one, will be built and tagged from this\nrepository not the Cosmos SDK.")]),e._v(" "),o("p",[e._v("Since the Cosmos SDK and Gaia have now been split into separate repositories, their\nversioning will also naturally diverge. In an attempt to decrease community confusion and strive for\nsemantic versioning, the "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos SDK"),o("OutboundLink")],1),e._v(" will continue\non its current versioning path (i.e. v0.36.x ) and the "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v("\napplication will become v2.0.x.")]),e._v(" "),o("p",[o("strong",[o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(" application v2.0.3 is\nwhat full node operators will upgrade to and run in this next major upgrade")]),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"major-updates"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#major-updates"}},[e._v("#")]),e._v(" Major Updates")]),e._v(" "),o("p",[e._v("There are many notable features and changes in the upcoming release of the SDK. Many of these\nare discussed at a high level in July's Cosmos development update found\n"),o("a",{attrs:{href:"https://blog.cosmos.network/cosmos-development-update-july-2019-8df2ade5ba0a",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Some of the biggest changes to take note on when upgrading as a developer or client are the following:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Tagging/Events")]),e._v(": The entire system of what we used to call tags has been replaced by a more\nrobust and flexible system called events. Any client that depended on querying or subscribing to\ntags should take note on the new format as old queries will not work and must be updated. More in\ndepth docs on the events system can be found "),o("a",{attrs:{href:"https://github.com/tendermint/tendermint/blob/master/rpc/core/events.go",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".\nIn addition, each module documents its own events in the specs (e.g. "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/v0.36.0/docs/spec/slashing/06_events.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("slashing"),o("OutboundLink")],1),e._v(").")]),e._v(" "),o("li",[o("strong",[e._v("Height Queries")]),e._v(": Both the CLI and REST clients now (re-)enable height queries via the\n"),o("code",[e._v("--height")]),e._v(" and "),o("code",[e._v("?height")]),e._v(" arguments respectively. An important note to keep in mind are that height\nqueries against pruning nodes will return errors when a pruned height is queried against. When no\nheight is provided, the latest height will be used by default keeping current behavior intact. In\naddition, many REST responses now wrap the query results in a new structure "),o("code",[e._v('{"height": ..., "result": ...}')]),e._v(".\nThat is, the height is now returned to the client for which the resource was queried at.")])]),e._v(" "),o("h2",{attrs:{id:"risks"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),o("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of\ndouble-signing and being slashed. The most important piece of this procedure is verifying your\nsoftware version and genesis file hash before starting your validator and signing.")]),e._v(" "),o("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade\nprocedure again during the network startup. If you discover a mistake in the process, the best thing\nto do is wait for the network to start before correcting it. If the network is halted and you have\nstarted with a different genesis file than the expected one, seek advice from a Tendermint developer\nbefore resetting your validator.")]),e._v(" "),o("h2",{attrs:{id:"recovery"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#recovery"}},[e._v("#")]),e._v(" Recovery")]),e._v(" "),o("p",[e._v("Prior to exporting "),o("code",[e._v("cosmoshub-2")]),e._v(" state, validators are encouraged to take a full data snapshot at the\nexport height before proceeding. Snapshotting depends heavily on infrastructure, but generally this\ncan be done by backing up the "),o("code",[e._v(".gaia")]),e._v(" directories.")]),e._v(" "),o("p",[e._v("It is critically important to back-up the "),o("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping your gaiad process. This file is updated every block as your validator participates in a consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),o("p",[e._v("In the event that the upgrade does not succeed, validators and operators must downgrade back to\nv0.34.6+ of the "),o("em",[e._v("Cosmos SDK")]),e._v(" and restore to their latest snapshot before restarting their nodes.")]),e._v(" "),o("h2",{attrs:{id:"upgrade-procedure"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-procedure"}},[e._v("#")]),e._v(" Upgrade Procedure")]),e._v(" "),o("p",[o("strong",[e._v("Note")]),e._v(": It is assumed you are currently operating a full-node running v0.34.6+ of the "),o("em",[e._v("Cosmos SDK")]),e._v(".")]),e._v(" "),o("ul",[o("li",[e._v("The version/commit hash of Gaia v2.0.3: "),o("code",[e._v("2f6783e298f25ff4e12cb84549777053ab88749a")])]),e._v(" "),o("li",[e._v("The upgrade height as agreed upon by governance: "),o("strong",[e._v("2,902,000")])]),e._v(" "),o("li",[e._v("You may obtain the canonical UTC timestamp of the exported block by any of the following methods:\n"),o("ul",[o("li",[e._v("Block explorer")]),e._v(" "),o("li",[e._v("Through manually querying an RPC node (e.g. "),o("code",[e._v("/block?height=2902000")]),e._v(")")]),e._v(" "),o("li",[e._v("Through manually querying a Gaia REST client (e.g. "),o("code",[e._v("/blocks/2902000")]),e._v(")")])])])]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Verify you are currently running the correct version (v0.34.6+) of the "),o("em",[e._v("Cosmos SDK")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpjb3Ntb3Mtc2RrOiAwLjM0LjYKZ2l0IGNvbW1pdDogODAyMzRiYWY5MWExNWRkOWE3ZGY4ZGNhMzg2NzdiNjZiOGQxNDhjMQp2ZW5kb3IgaGFzaDogZjYwMTc2NjcyMjcwYzA5NDU1YzAxZTlkODgwMDc5YmEzNjEzMGRmNGY1Y2Q4OWRmNThiNjcwMWY1MGIxM2FhZApidWlsZCB0YWdzOiBuZXRnbyBsZWRnZXIKZ28gdmVyc2lvbiBnbzEuMTIuMiBsaW51eC9hbWQ2NAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Export existing state from "),o("code",[e._v("cosmoshub-2")]),e._v(":")]),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": It is recommended for validators and operators to take a full data snapshot at the export\nheight before proceeding in case the upgrade does not go as planned or if not enough voting power\ncomes online in a sufficient and agreed upon amount of time. In such a case, the chain will fallback\nto continue operating "),o("code",[e._v("cosmoshub-2")]),e._v(". See "),o("a",{attrs:{href:"#recovery"}},[e._v("Recovery")]),e._v(" for details on how to proceed.")]),e._v(" "),o("p",[e._v("Before exporting state via the following command, the "),o("code",[e._v("gaiad")]),e._v(" binary must be stopped!")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0tZm9yLXplcm8taGVpZ2h0IC0taGVpZ2h0PTI5MDIwMDAgJmd0OyBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Verify the SHA256 of the (sorted) exported genesis file:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uIHwgc2hhc3VtIC1hIDI1NgpbUExBQ0VIT0xERVJdICBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("At this point you now have a valid exported genesis state! All further steps now require\nv2.0.3 of "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": Go "),o("a",{attrs:{href:"https://golang.org/dl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.13+"),o("OutboundLink")],1),e._v(" is required!")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQgJmFtcDsmYW1wOyBjZCBnYWlhICZhbXA7JmFtcDsgZ2l0IGNoZWNrb3V0IHYyLjAuMzsgbWFrZSBpbnN0YWxsCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Verify you are currently running the correct version (v2.0.3) of the "),o("em",[e._v("Gaia")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpuYW1lOiBnYWlhCnNlcnZlcl9uYW1lOiBnYWlhZApjbGllbnRfbmFtZTogZ2FpYWNsaQp2ZXJzaW9uOiAyLjAuMwpjb21taXQ6IDJmNjc4M2UyOThmMjVmZjRlMTJjYjg0NTQ5Nzc3MDUzYWI4ODc0OWEKYnVpbGRfdGFnczogbmV0Z28sbGVkZ2VyCmdvOiBnbyB2ZXJzaW9uIGdvMS4xMy4zIGRhcndpbi9hbWQ2NAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Migrate exported state from the current v0.34.6+ version to the new v2.0.3 version:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgbWlncmF0ZSB2MC4zNiBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uIC0tY2hhaW4taWQ9Y29zbW9zaHViLTMgLS1nZW5lc2lzLXRpbWU9W1BMQUNFSE9MREVSXSZndDsgZ2VuZXNpcy5qc29uCg=="}}),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": The "),o("code",[e._v("migrate")]),e._v(" command takes an input genesis state and migrates it to a targeted version.\nBoth v0.36 and v0.37 are compatible as far as state structure is concerned.")]),e._v(" "),o("p",[e._v("Genesis time should be computed relative to the blocktime of "),o("code",[e._v("2,902,000")]),e._v(". The genesis time\nshall be the blocktime of "),o("code",[e._v("2,902,000")]),e._v(" + "),o("code",[e._v("60")]),e._v(" minutes with the subseconds truncated.")]),e._v(" "),o("p",[e._v("An example shell command(tested on OS X Mojave) to compute this values is:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3VybCBodHRwczovL3N0YXJnYXRlLmNvc21vcy5uZXR3b3JrOjI2NjU3L2Jsb2NrXD9oZWlnaHRcPTI5MDIwMDAgfCBqcSAtciAnLnJlc3VsdFsmcXVvdDtibG9ja19tZXRhJnF1b3Q7XVsmcXVvdDtoZWFkZXImcXVvdDtdWyZxdW90O3RpbWUmcXVvdDtdJ3x4YXJncyAtMCBkYXRlIC12ICs2ME0gIC1qICAtZiAmcXVvdDslWS0lbS0lZFQlSDolTTolUyZxdW90OyArJnF1b3Q7JVktJW0tJWRUJUg6JU06JVNaJnF1b3Q7Cg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Now we must update all parameters that have been agreed upon through governance. There is only a\nsingle parameter, "),o("code",[e._v("max_validators")]),e._v(", that we're upgrading based on "),o("a",{attrs:{href:"https://www.mintscan.io/proposals/10",target:"_blank",rel:"noopener noreferrer"}},[e._v("proposal 10"),o("OutboundLink")],1)]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2F0IGdlbmVzaXMuanNvbiB8IGpxICcuYXBwX3N0YXRlWyZxdW90O3N0YWtpbmcmcXVvdDtdWyZxdW90O3BhcmFtcyZxdW90O11bJnF1b3Q7bWF4X3ZhbGlkYXRvcnMmcXVvdDtdPTEyNScgJmd0OyB0bXBfZ2VuZXNpcy5qc29uICZhbXA7JmFtcDsgbXYgdG1wX2dlbmVzaXMuanNvbiBnZW5lc2lzLmpzb24K"}})],1),e._v(" "),o("li",[o("p",[e._v("Verify the SHA256 of the final genesis JSON:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBnZW5lc2lzLmpzb24gfCBzaGFzdW0gLWEgMjU2CltQTEFDRUhPTERFUl0gIGdlbmVzaXMuanNvbgo="}})],1),e._v(" "),o("li",[o("p",[e._v("Reset state:")]),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": Be sure you have a complete backed up state of your node before proceeding with this step.\nSee "),o("a",{attrs:{href:"#recovery"}},[e._v("Recovery")]),e._v(" for details on how to proceed.")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Move the new "),o("code",[e._v("genesis.json")]),e._v(" to your "),o("code",[e._v(".gaia/config/")]),e._v(" directory")])]),e._v(" "),o("li",[o("p",[e._v("Replace the "),o("code",[e._v("db_backend")]),e._v(" on "),o("code",[e._v(".gaia/config/config.toml")]),e._v(" to:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"toml",base64:"ZGJfYmFja2VuZCA9ICZxdW90O2dvbGV2ZWxkYiZxdW90Owo="}})],1),e._v(" "),o("li",[o("p",[e._v("Note, if you have any application configuration in "),o("code",[e._v("gaiad.toml")]),e._v(", that file has now been renamed to "),o("code",[e._v("app.toml")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bXYgLmdhaWEvY29uZmlnL2dhaWFkLnRvbWwgLmdhaWEvY29uZmlnL2FwcC50b21sCg=="}})],1)]),e._v(" "),o("h2",{attrs:{id:"notes-for-service-providers"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notes-for-service-providers"}},[e._v("#")]),e._v(" Notes for Service Providers")]),e._v(" "),o("ol",[o("li",[e._v("The transition from "),o("code",[e._v("cosmoshub-2")]),e._v(" to "),o("code",[e._v("cosmoshub-3")]),e._v(" contains an unusual amount of API breakage.\nAfter this upgrade will maintain the CosmosSDK API stability guarantee to avoid breaking APIs for at\nleast 6 months and hopefully long.")]),e._v(" "),o("li",[e._v("Anyone running signing infrastructure(wallets and exchanges) should be conscious that the "),o("code",[e._v("type:")]),e._v("\nfield on "),o("code",[e._v("StdTx")]),e._v(" will have changed from "),o("code",[e._v('"type":"auth/StdTx","value":...')]),e._v(" to "),o("code",[e._v('"type":"cosmos-sdk/StdTx","value":...')])]),e._v(" "),o("li",[e._v("As mentioned in the notes and SDK CHANGELOG, many queries to cosmos cli are wrapped with "),o("code",[e._v("height")]),e._v(" fields now.")]),e._v(" "),o("li",[e._v("We highly recommend standing up a "),o("a",{attrs:{href:"https://github.com/cosmos/gaia/blob/master/docs/deploy-testnet.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("testnet"),o("OutboundLink")],1),e._v("\nwith the "),o("code",[e._v("gaia-2.0")]),e._v(" release or joining the gaia-13006 testnet. More info for joining the testnet can be\nfound in the "),o("a",{attrs:{href:"https://riot.im/app/#/room/#cosmos-validators:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("riot validator room"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("li",[e._v("We expect that developers with iOS or Android based apps may have to notify their users of downtime\nand ship an upgrade for cosmoshub-3 compatibility unless they have some kind of switch they can throw\nfor the new tx formats. Server side applications should experience briefer service interruptions and\nbe able to just spin up new nodes and migrate to the new apis.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{517:function(e,t,o){"use strict";o.r(t);var a=o(1),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"cosmos-hub-2-upgrade-instructions"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-2-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 2 Upgrade Instructions")]),e._v(" "),o("p",[e._v("The following document describes the necessary steps involved that full-node operators\nmust take in order to upgrade from "),o("code",[e._v("cosmoshub-2")]),e._v(" to "),o("code",[e._v("cosmoshub-3")]),e._v(". The Tendermint team\nwill post an official updated genesis file, but it is recommended that validators\nexecute the following instructions in order to verify the resulting genesis file.")]),e._v(" "),o("p",[e._v("There is a strong social consensus around proposal "),o("code",[e._v("Cosmos Hub 3 Upgrade Proposal E")]),e._v("\non "),o("code",[e._v("cosmoshub-2")]),e._v(". This indicates that the upgrade procedure should be performed\non "),o("code",[e._v("December 11, 2019 at or around 14:27 UTC")]),e._v(" on block "),o("code",[e._v("2,902,000")]),e._v(".")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"#cosmos-hub-2-upgrade-instructions"}},[e._v("Cosmos Hub 2 Upgrade Instructions")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"#preliminary"}},[e._v("Preliminary")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#major-updates"}},[e._v("Major Updates")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#recovery"}},[e._v("Recovery")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#upgrade-procedure"}},[e._v("Upgrade Procedure")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#notes-for-service-providers"}},[e._v("Notes for Service Providers")])])])])]),e._v(" "),o("h2",{attrs:{id:"preliminary"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#preliminary"}},[e._v("#")]),e._v(" Preliminary")]),e._v(" "),o("p",[e._v("Many changes have occurred to the Cosmos SDK and the Gaia application since the latest\nmajor upgrade ("),o("code",[e._v("cosmoshub-2")]),e._v("). These changes notably consist of many new features,\nprotocol changes, and application structural changes that favor developer ergonomics\nand application development.")]),e._v(" "),o("p",[e._v("First and foremost, the "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos SDK"),o("OutboundLink")],1),e._v(" and the\n"),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(" application have been split into separate\nrepositories. This allows for both the Cosmos SDK and Gaia to evolve naturally\nand independently. Thus, any future "),o("a",{attrs:{href:"https://github.com/cosmos/gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("releases"),o("OutboundLink")],1),e._v("\nof Gaia going forward, including this one, will be built and tagged from this\nrepository not the Cosmos SDK.")]),e._v(" "),o("p",[e._v("Since the Cosmos SDK and Gaia have now been split into separate repositories, their\nversioning will also naturally diverge. In an attempt to decrease community confusion and strive for\nsemantic versioning, the "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos SDK"),o("OutboundLink")],1),e._v(" will continue\non its current versioning path (i.e. v0.36.x ) and the "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v("\napplication will become v2.0.x.")]),e._v(" "),o("p",[o("strong",[o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(" application v2.0.3 is\nwhat full node operators will upgrade to and run in this next major upgrade")]),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"major-updates"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#major-updates"}},[e._v("#")]),e._v(" Major Updates")]),e._v(" "),o("p",[e._v("There are many notable features and changes in the upcoming release of the SDK. Many of these\nare discussed at a high level in July's Cosmos development update found\n"),o("a",{attrs:{href:"https://blog.cosmos.network/cosmos-development-update-july-2019-8df2ade5ba0a",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Some of the biggest changes to take note on when upgrading as a developer or client are the following:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Tagging/Events")]),e._v(": The entire system of what we used to call tags has been replaced by a more\nrobust and flexible system called events. Any client that depended on querying or subscribing to\ntags should take note on the new format as old queries will not work and must be updated. More in\ndepth docs on the events system can be found "),o("a",{attrs:{href:"https://github.com/tendermint/tendermint/blob/master/rpc/core/events.go",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".\nIn addition, each module documents its own events in the specs (e.g. "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/v0.36.0/docs/spec/slashing/06_events.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("slashing"),o("OutboundLink")],1),e._v(").")]),e._v(" "),o("li",[o("strong",[e._v("Height Queries")]),e._v(": Both the CLI and REST clients now (re-)enable height queries via the\n"),o("code",[e._v("--height")]),e._v(" and "),o("code",[e._v("?height")]),e._v(" arguments respectively. An important note to keep in mind are that height\nqueries against pruning nodes will return errors when a pruned height is queried against. When no\nheight is provided, the latest height will be used by default keeping current behavior intact. In\naddition, many REST responses now wrap the query results in a new structure "),o("code",[e._v('{"height": ..., "result": ...}')]),e._v(".\nThat is, the height is now returned to the client for which the resource was queried at.")])]),e._v(" "),o("h2",{attrs:{id:"risks"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),o("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of\ndouble-signing and being slashed. The most important piece of this procedure is verifying your\nsoftware version and genesis file hash before starting your validator and signing.")]),e._v(" "),o("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade\nprocedure again during the network startup. If you discover a mistake in the process, the best thing\nto do is wait for the network to start before correcting it. If the network is halted and you have\nstarted with a different genesis file than the expected one, seek advice from a Tendermint developer\nbefore resetting your validator.")]),e._v(" "),o("h2",{attrs:{id:"recovery"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#recovery"}},[e._v("#")]),e._v(" Recovery")]),e._v(" "),o("p",[e._v("Prior to exporting "),o("code",[e._v("cosmoshub-2")]),e._v(" state, validators are encouraged to take a full data snapshot at the\nexport height before proceeding. Snapshotting depends heavily on infrastructure, but generally this\ncan be done by backing up the "),o("code",[e._v(".gaia")]),e._v(" directories.")]),e._v(" "),o("p",[e._v("It is critically important to back-up the "),o("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping your gaiad process. This file is updated every block as your validator participates in a consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),o("p",[e._v("In the event that the upgrade does not succeed, validators and operators must downgrade back to\nv0.34.6+ of the "),o("em",[e._v("Cosmos SDK")]),e._v(" and restore to their latest snapshot before restarting their nodes.")]),e._v(" "),o("h2",{attrs:{id:"upgrade-procedure"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-procedure"}},[e._v("#")]),e._v(" Upgrade Procedure")]),e._v(" "),o("p",[o("strong",[e._v("Note")]),e._v(": It is assumed you are currently operating a full-node running v0.34.6+ of the "),o("em",[e._v("Cosmos SDK")]),e._v(".")]),e._v(" "),o("ul",[o("li",[e._v("The version/commit hash of Gaia v2.0.3: "),o("code",[e._v("2f6783e298f25ff4e12cb84549777053ab88749a")])]),e._v(" "),o("li",[e._v("The upgrade height as agreed upon by governance: "),o("strong",[e._v("2,902,000")])]),e._v(" "),o("li",[e._v("You may obtain the canonical UTC timestamp of the exported block by any of the following methods:\n"),o("ul",[o("li",[e._v("Block explorer")]),e._v(" "),o("li",[e._v("Through manually querying an RPC node (e.g. "),o("code",[e._v("/block?height=2902000")]),e._v(")")]),e._v(" "),o("li",[e._v("Through manually querying a Gaia REST client (e.g. "),o("code",[e._v("/blocks/2902000")]),e._v(")")])])])]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Verify you are currently running the correct version (v0.34.6+) of the "),o("em",[e._v("Cosmos SDK")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpjb3Ntb3Mtc2RrOiAwLjM0LjYKZ2l0IGNvbW1pdDogODAyMzRiYWY5MWExNWRkOWE3ZGY4ZGNhMzg2NzdiNjZiOGQxNDhjMQp2ZW5kb3IgaGFzaDogZjYwMTc2NjcyMjcwYzA5NDU1YzAxZTlkODgwMDc5YmEzNjEzMGRmNGY1Y2Q4OWRmNThiNjcwMWY1MGIxM2FhZApidWlsZCB0YWdzOiBuZXRnbyBsZWRnZXIKZ28gdmVyc2lvbiBnbzEuMTIuMiBsaW51eC9hbWQ2NAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Export existing state from "),o("code",[e._v("cosmoshub-2")]),e._v(":")]),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": It is recommended for validators and operators to take a full data snapshot at the export\nheight before proceeding in case the upgrade does not go as planned or if not enough voting power\ncomes online in a sufficient and agreed upon amount of time. In such a case, the chain will fallback\nto continue operating "),o("code",[e._v("cosmoshub-2")]),e._v(". See "),o("a",{attrs:{href:"#recovery"}},[e._v("Recovery")]),e._v(" for details on how to proceed.")]),e._v(" "),o("p",[e._v("Before exporting state via the following command, the "),o("code",[e._v("gaiad")]),e._v(" binary must be stopped!")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0tZm9yLXplcm8taGVpZ2h0IC0taGVpZ2h0PTI5MDIwMDAgJmd0OyBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Verify the SHA256 of the (sorted) exported genesis file:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uIHwgc2hhc3VtIC1hIDI1NgpbUExBQ0VIT0xERVJdICBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("At this point you now have a valid exported genesis state! All further steps now require\nv2.0.3 of "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": Go "),o("a",{attrs:{href:"https://golang.org/dl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.13+"),o("OutboundLink")],1),e._v(" is required!")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQgJmFtcDsmYW1wOyBjZCBnYWlhICZhbXA7JmFtcDsgZ2l0IGNoZWNrb3V0IHYyLjAuMzsgbWFrZSBpbnN0YWxsCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Verify you are currently running the correct version (v2.0.3) of the "),o("em",[e._v("Gaia")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpuYW1lOiBnYWlhCnNlcnZlcl9uYW1lOiBnYWlhZApjbGllbnRfbmFtZTogZ2FpYWNsaQp2ZXJzaW9uOiAyLjAuMwpjb21taXQ6IDJmNjc4M2UyOThmMjVmZjRlMTJjYjg0NTQ5Nzc3MDUzYWI4ODc0OWEKYnVpbGRfdGFnczogbmV0Z28sbGVkZ2VyCmdvOiBnbyB2ZXJzaW9uIGdvMS4xMy4zIGRhcndpbi9hbWQ2NAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Migrate exported state from the current v0.34.6+ version to the new v2.0.3 version:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgbWlncmF0ZSB2MC4zNiBjb3Ntb3NodWJfMl9nZW5lc2lzX2V4cG9ydC5qc29uIC0tY2hhaW4taWQ9Y29zbW9zaHViLTMgLS1nZW5lc2lzLXRpbWU9W1BMQUNFSE9MREVSXSZndDsgZ2VuZXNpcy5qc29uCg=="}}),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": The "),o("code",[e._v("migrate")]),e._v(" command takes an input genesis state and migrates it to a targeted version.\nBoth v0.36 and v0.37 are compatible as far as state structure is concerned.")]),e._v(" "),o("p",[e._v("Genesis time should be computed relative to the blocktime of "),o("code",[e._v("2,902,000")]),e._v(". The genesis time\nshall be the blocktime of "),o("code",[e._v("2,902,000")]),e._v(" + "),o("code",[e._v("60")]),e._v(" minutes with the subseconds truncated.")]),e._v(" "),o("p",[e._v("An example shell command(tested on OS X Mojave) to compute this values is:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3VybCBodHRwczovL3N0YXJnYXRlLmNvc21vcy5uZXR3b3JrOjI2NjU3L2Jsb2NrXD9oZWlnaHRcPTI5MDIwMDAgfCBqcSAtciAnLnJlc3VsdFsmcXVvdDtibG9ja19tZXRhJnF1b3Q7XVsmcXVvdDtoZWFkZXImcXVvdDtdWyZxdW90O3RpbWUmcXVvdDtdJ3x4YXJncyAtMCBkYXRlIC12ICs2ME0gIC1qICAtZiAmcXVvdDslWS0lbS0lZFQlSDolTTolUyZxdW90OyArJnF1b3Q7JVktJW0tJWRUJUg6JU06JVNaJnF1b3Q7Cg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Now we must update all parameters that have been agreed upon through governance. There is only a\nsingle parameter, "),o("code",[e._v("max_validators")]),e._v(", that we're upgrading based on "),o("a",{attrs:{href:"https://www.mintscan.io/proposals/10",target:"_blank",rel:"noopener noreferrer"}},[e._v("proposal 10"),o("OutboundLink")],1)]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2F0IGdlbmVzaXMuanNvbiB8IGpxICcuYXBwX3N0YXRlWyZxdW90O3N0YWtpbmcmcXVvdDtdWyZxdW90O3BhcmFtcyZxdW90O11bJnF1b3Q7bWF4X3ZhbGlkYXRvcnMmcXVvdDtdPTEyNScgJmd0OyB0bXBfZ2VuZXNpcy5qc29uICZhbXA7JmFtcDsgbXYgdG1wX2dlbmVzaXMuanNvbiBnZW5lc2lzLmpzb24K"}})],1),e._v(" "),o("li",[o("p",[e._v("Verify the SHA256 of the final genesis JSON:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBnZW5lc2lzLmpzb24gfCBzaGFzdW0gLWEgMjU2CltQTEFDRUhPTERFUl0gIGdlbmVzaXMuanNvbgo="}})],1),e._v(" "),o("li",[o("p",[e._v("Reset state:")]),e._v(" "),o("p",[o("strong",[e._v("NOTE")]),e._v(": Be sure you have a complete backed up state of your node before proceeding with this step.\nSee "),o("a",{attrs:{href:"#recovery"}},[e._v("Recovery")]),e._v(" for details on how to proceed.")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Move the new "),o("code",[e._v("genesis.json")]),e._v(" to your "),o("code",[e._v(".gaia/config/")]),e._v(" directory")])]),e._v(" "),o("li",[o("p",[e._v("Replace the "),o("code",[e._v("db_backend")]),e._v(" on "),o("code",[e._v(".gaia/config/config.toml")]),e._v(" to:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"toml",base64:"ZGJfYmFja2VuZCA9ICZxdW90O2dvbGV2ZWxkYiZxdW90Owo="}})],1),e._v(" "),o("li",[o("p",[e._v("Note, if you have any application configuration in "),o("code",[e._v("gaiad.toml")]),e._v(", that file has now been renamed to "),o("code",[e._v("app.toml")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bXYgLmdhaWEvY29uZmlnL2dhaWFkLnRvbWwgLmdhaWEvY29uZmlnL2FwcC50b21sCg=="}})],1)]),e._v(" "),o("h2",{attrs:{id:"notes-for-service-providers"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notes-for-service-providers"}},[e._v("#")]),e._v(" Notes for Service Providers")]),e._v(" "),o("ol",[o("li",[e._v("The transition from "),o("code",[e._v("cosmoshub-2")]),e._v(" to "),o("code",[e._v("cosmoshub-3")]),e._v(" contains an unusual amount of API breakage.\nAfter this upgrade will maintain the CosmosSDK API stability guarantee to avoid breaking APIs for at\nleast 6 months and hopefully long.")]),e._v(" "),o("li",[e._v("Anyone running signing infrastructure(wallets and exchanges) should be conscious that the "),o("code",[e._v("type:")]),e._v("\nfield on "),o("code",[e._v("StdTx")]),e._v(" will have changed from "),o("code",[e._v('"type":"auth/StdTx","value":...')]),e._v(" to "),o("code",[e._v('"type":"cosmos-sdk/StdTx","value":...')])]),e._v(" "),o("li",[e._v("As mentioned in the notes and SDK CHANGELOG, many queries to cosmos cli are wrapped with "),o("code",[e._v("height")]),e._v(" fields now.")]),e._v(" "),o("li",[e._v("We highly recommend standing up a "),o("a",{attrs:{href:"https://github.com/cosmos/gaia/blob/master/docs/deploy-testnet.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("testnet"),o("OutboundLink")],1),e._v("\nwith the "),o("code",[e._v("gaia-2.0")]),e._v(" release or joining the gaia-13006 testnet. More info for joining the testnet can be\nfound in the "),o("a",{attrs:{href:"https://riot.im/app/#/room/#cosmos-validators:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("riot validator room"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("li",[e._v("We expect that developers with iOS or Android based apps may have to notify their users of downtime\nand ship an upgrade for cosmoshub-3 compatibility unless they have some kind of switch they can throw\nfor the new tx formats. Server side applications should experience briefer service interruptions and\nbe able to just spin up new nodes and migrate to the new apis.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/main/assets/js/150.9719ec09.js b/main/assets/js/150.20bc9e73.js similarity index 99% rename from main/assets/js/150.9719ec09.js rename to main/assets/js/150.20bc9e73.js index e4bd6392904..892e6964adc 100644 --- a/main/assets/js/150.9719ec09.js +++ b/main/assets/js/150.20bc9e73.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{517:function(e,a,o){"use strict";o.r(a);var s=o(1),r=Object(s.a)({},(function(){var e=this,a=e.$createElement,o=e._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"instrucciones-de-actualizacion-del-cosmos-hub-3"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#instrucciones-de-actualizacion-del-cosmos-hub-3"}},[e._v("#")]),e._v(" Instrucciones de actualización del Cosmos Hub 3")]),e._v(" "),o("p",[e._v("El siguiente documento describe los pasos necesarios que deben seguir los operadores de un full node para actualizar de "),o("code",[e._v("cosmoshub-3")]),e._v(" a "),o("code",[e._v("cosmoshub-4")]),e._v(". El equipo de Tendermint publicará un archivo génesis oficial actualizado, pero se recomienda que los validadores ejecuten las siguientes instrucciones para verificar el archivo génesis resultante.")]),e._v(" "),o("p",[e._v("Existe un amplio consenso social en torno a la "),o("code",[e._v("propuesta de actualización del Cosmos Hub 4")]),e._v(" sobre el "),o("code",[e._v("cosmoshub-3")]),e._v(". Siguiendo las propuestas #"),o("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/27",target:"_blank",rel:"noopener noreferrer"}},[e._v("27"),o("OutboundLink")],1),e._v(", #"),o("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/35",target:"_blank",rel:"noopener noreferrer"}},[e._v("35"),o("OutboundLink")],1),e._v(" y #"),o("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/36",target:"_blank",rel:"noopener noreferrer"}},[e._v("36"),o("OutboundLink")],1),e._v(". Se indica que el procedimiento de actualización debe realizarse el "),o("code",[e._v("18 de febrero de 2021 a las 06:00 UTC")]),e._v(".")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"#migraciones"}},[e._v("Migraciones")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#preliminares"}},[e._v("Preliminares")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#principales-actualizaciones"}},[e._v("Principales actualizaciones")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#riesgos"}},[e._v("Riesgos")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#recuperaci%C3%B3n"}},[e._v("Recuperación")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#procedimiento-de-actualizaci%C3%B3n"}},[e._v("Procedimiento de actualización")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#notas-para-los-proveedores-de-servicios"}},[e._v("Notas para los proveedores de servicios")])])]),e._v(" "),o("h1",{attrs:{id:"migraciones"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#migraciones"}},[e._v("#")]),e._v(" Migraciones")]),e._v(" "),o("p",[e._v("Estos capítulos contienen todas las guías de migración para actualizar tu aplicación y módulos a Cosmos v0.40 Stargate.")]),e._v(" "),o("p",[e._v("Si tienes un explorador de bloques, un monedero, un exchange, un validador o cualquier otro servicio (por ejemplo, un proveedor de custodia) que dependa del Cosmos Hub o del ecosistema Cosmos, deberás prestar atención, porque esta actualización implicará cambios sustanciales.")]),e._v(" "),o("ol",[o("li",[o("RouterLink",{attrs:{to:"ttps://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.html"}},[e._v("Migración de aplicaciones y módulos")])],1),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/chain-upgrade-guide-040.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Guía de actualización de la cadena a v0.41"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/rest.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Migración de endpoints REST"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/cosmos/gaia/blob/main/docs/migration/breaking_changes.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Recopilación de modificaciones de ruptura de los registros de cambios"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#ibc",target:"_blank",rel:"noopener noreferrer"}},[e._v("Comunicación entre cadenas de bloques (IBC) - transacciones entre cadenas"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#proto",target:"_blank",rel:"noopener noreferrer"}},[e._v("Migración de Protobuf - rendimiento de la cadena de bloques y aceleración del desarrollo"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#sync",target:"_blank",rel:"noopener noreferrer"}},[e._v("Sincronización de estados - minutos para sincronizar nuevos nodos"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#light",target:"_blank",rel:"noopener noreferrer"}},[e._v("Clientes ligeros con todas las funciones"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#upgrade",target:"_blank",rel:"noopener noreferrer"}},[e._v("Módulo de actualización de la cadena - automatización de la actualización"),o("OutboundLink")],1)])]),e._v(" "),o("p",[e._v("Si quieres probar el procedimiento antes de que se produzca la actualización el 18 de febrero, consulta este "),o("a",{attrs:{href:"https://github.com/cosmos/gaia/issues/569#issuecomment-767910963",target:"_blank",rel:"noopener noreferrer"}},[e._v("post"),o("OutboundLink")],1),e._v(" en relación a ello.")]),e._v(" "),o("h2",{attrs:{id:"preliminares"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#preliminares"}},[e._v("#")]),e._v(" Preliminares")]),e._v(" "),o("p",[e._v("Se han producido muchos cambios en el SDK de Cosmos y en la aplicación Gaia desde la última gran actualización ("),o("code",[e._v("cosmoshub-3")]),e._v("). Estos cambios consisten principalmente en muchas nuevas características, cambios de protocolo y cambios estructurales de la aplicación que favorecen la ergonomía del desarrollador y el desarrollo de la aplicación.")]),e._v(" "),o("p",[e._v("En primer lugar, se habilitará "),o("a",{attrs:{href:"https://docs.cosmos.network/main/ibc/overview.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBC"),o("OutboundLink")],1),e._v(" siguiendo los "),o("a",{attrs:{href:"https://github.com/cosmos/ics#ibc-quick-references",target:"_blank",rel:"noopener noreferrer"}},[e._v("estándares de Interchain"),o("OutboundLink")],1),e._v(". Esta actualización viene con varias mejoras en la eficiencia, la sincronización de nodos y las siguientes actualizaciones de la cadena de bloques. Más detalles en el "),o("a",{attrs:{href:"https://stargate.cosmos.network/",target:"_blank",rel:"noopener noreferrer"}},[e._v("sitio web de Stargate"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("La aplicación "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(" v4.0.0 es lo que los operadores de nodos actualizarán y ejecutarán en esta próxima gran actualización")]),e._v(". Tras la versión v0.41.0 del SDK de Cosmos y la v0.34.3 de Tendermint.")]),e._v(" "),o("h2",{attrs:{id:"principales-actualizaciones"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#principales-actualizaciones"}},[e._v("#")]),e._v(" Principales actualizaciones")]),e._v(" "),o("p",[e._v("Hay muchas características y cambios notables en la próxima versión del SDK. Muchos de ellos se discuten a de forma general "),o("a",{attrs:{href:"https://github.com/cosmos/stargate",target:"_blank",rel:"noopener noreferrer"}},[e._v("aquí"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Algunos de los principales cambios que hay que tener en cuenta a la hora de actualizar como desarrollador o cliente son los siguientes:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Protocol Buffers")]),e._v(": Inicialmente el SDK de Cosmos utilizaba "),o("em",[e._v("codecs")]),e._v(" de Amino para casi toda la codificación y decodificación. En esta versión se ha integrado una importante actualización de los Protocol Buffers. Se espera que con los Protocol Buffers las aplicaciones ganen en velocidad, legibilidad, conveniencia e interoperabilidad con muchos lenguajes de programación. Para más información consulta "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.md#protocol-buffers",target:"_blank",rel:"noopener noreferrer"}},[e._v("aquí"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("CLI")]),e._v(": El CLI y el commando de full node para la cadena de bloques estaban separados en las versiones anteriores del SDK de Cosmos. Esto dio lugar a dos binarios, "),o("code",[e._v("gaiad")]),e._v(" y "),o("code",[e._v("gaiacli")]),e._v(", que estaban separados y podían utilizarse para diferentes interacciones con la cadena de bloques. Ambos se han fusionado en un solo comando "),o("code",[e._v("gaiad")]),e._v(" que ahora soporta los comandos que antes soportaba el "),o("code",[e._v("gaiacli")]),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("Configuración del nodo")]),e._v(": Anteriormente los datos de la cadena de bloques y la configuración de los nodos se almacenaban en "),o("code",[e._v("~/.gaia/")]),e._v(", ahora residirán en "),o("code",[e._v("~/.gaia/")]),e._v(", si utilizas scripts que hacen uso de la configuración o de los datos de la cadena de bloques, asegúrate de actualizar la ruta.")])]),e._v(" "),o("h2",{attrs:{id:"riesgos"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#riesgos"}},[e._v("#")]),e._v(" Riesgos")]),e._v(" "),o("p",[e._v("Como validador, realizar el procedimiento de actualización en sus nodos de consenso conlleva un mayor riesgo de de doble firma y de ser penalizado. La parte más importante de este procedimiento es verificar su versión del software y el hash del archivo génesis antes de iniciar el validador y firmar.")]),e._v(" "),o("p",[e._v("Lo más arriesgado que puede hacer un validador es descubrir que ha cometido un error y volver a repetir el procedimiento de actualización durante el arranque de la red. Si descubre un error en el proceso, lo mejor es esperar a que la red se inicie antes de corregirlo. Si la red se detiene y ha comenzado con un archivo de génesis diferente al esperado, busque el asesoramiento de un desarrollador de Tendermint antes de reiniciar su validador.")]),e._v(" "),o("h2",{attrs:{id:"recuperacion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#recuperacion"}},[e._v("#")]),e._v(" Recuperación")]),e._v(" "),o("p",[e._v("Antes de exportar el estado de "),o("code",[e._v("cosmoshub-3")]),e._v(", se recomienda a los validadores que tomen una instantánea completa de los datos a la altura de la exportación antes de proceder. La toma de snapshots depende en gran medida de la infraestructura, pero en general se puede hacer una copia de seguridad del directorio "),o("code",[e._v(".gaia")]),e._v(".")]),e._v(" "),o("p",[e._v("Es muy importante hacer una copia de seguridad del archivo "),o("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" después de detener el proceso de gaiad. Este archivo se actualiza en cada bloque cuando tu validador participa en las rondas de consenso. Es un archivo crítico necesario para evitar la doble firma, en caso de que la actualización falle y sea necesario reiniciar la cadena anterior.")]),e._v(" "),o("p",[e._v("En el caso de que la actualización no tenga éxito, los validadores y operadores deben volver a actualizar a\ngaia v2.0.15 con v0.37.15 del "),o("em",[e._v("Cosmos SDK")]),e._v(" y restaurar a su último snapshot antes de reiniciar sus nodos.")]),e._v(" "),o("h2",{attrs:{id:"procedimiento-de-actualizacion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#procedimiento-de-actualizacion"}},[e._v("#")]),e._v(" Procedimiento de actualización")]),e._v(" "),o("p",[o("strong",[e._v("Nota")]),e._v(": Se asume que actualmente está operando un nodo completo ejecutando gaia v2.0.15 con v0.37.15 del "),o("em",[e._v("Cosmos SDK")]),e._v(".")]),e._v(" "),o("p",[e._v("El hash de la versión/commit de Gaia v2.0.15: "),o("code",[e._v("89cf7e6fc166eaabf47ad2755c443d455feda02e")])]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Compruebe que está ejecutando la versión correcta (v2.0.15) de "),o("em",[e._v("gaiad")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpuYW1lOiBnYWlhCnNlcnZlcl9uYW1lOiBnYWlhZApjbGllbnRfbmFtZTogZ2FpYWNsaQp2ZXJzaW9uOiAyLjAuMTUKY29tbWl0OiA4OWNmN2U2ZmMxNjZlYWFiZjQ3YWQyNzU1YzQ0M2Q0NTVmZWRhMDJlCmJ1aWxkX3RhZ3M6IG5ldGdvLGxlZGdlcgpnbzogZ28gdmVyc2lvbiBnbzEuMTUgZGFyd2luL2FtZDY0Cg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Asegúrese de que su cadena se detiene en la fecha y hora correctas:\n18 de febrero de 2021 a las 06:00 UTC es en segundos UNIX: "),o("code",[e._v("1613628000")])]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cGVybCAtaSAtcGUgJ3MvXmhhbHQtdGltZSA9LiovaGFsdC10aW1lID0gMTYxMzYyODAwMC8nIH4vLmdhaWEvY29uZmlnL2FwcC50b21sCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Después de que la cadena se haya detenido, haz una copia de seguridad de tu directorio "),o("code",[e._v(".gaia")]),e._v(".")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bXYgfi8uZ2FpYSAuL2dhaWFkX2JhY2t1cAo="}}),e._v(" "),o("p",[o("strong",[e._v("NOTA")]),e._v(": Se recomienda a los validadores y operadores que tomen una instantánea completa de los datos a la altura de la exportación antes de proceder en caso de que la actualización no vaya según lo previsto o si no se pone en línea suficiente poder de voto en un tiempo determinado y acordado. En tal caso, la cadena volverá a funcionar con "),o("code",[e._v("cosmoshub-3")]),e._v(". Consulte "),o("a",{attrs:{href:"#recuperaci%C3%B3n"}},[e._v("Recuperación")]),e._v(" para saber cómo proceder.")])],1),e._v(" "),o("li",[o("p",[e._v("Exportar el estado existente de "),o("code",[e._v("cosmoshub-3")]),e._v(":")]),e._v(" "),o("p",[e._v("Antes de exportar el estado a través del siguiente comando, el binario "),o("code",[e._v("gaiad")]),e._v(" debe estar detenido. Como validador, puedes ver la última altura del bloque creado en el "),o("code",[e._v("~/.gaia/config/data/priv_validator_state.json")]),e._v(" -o que ahora reside en "),o("code",[e._v("gaiad_backup")]),e._v(" cuando hiciste una copia de seguridad como en el último paso- y obtenerla con")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2F0IH4vLmdhaWEvY29uZmlnL2RhdGEvcHJpdl92YWxpZGF0b3Jfc3RhdGUuanNvbiB8IGpxICcuaGVpZ2h0Jwo="}}),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0tZm9yLXplcm8taGVpZ2h0IC0taGVpZ2h0PSZsdDtoZWlnaHQmZ3Q7ICZndDsgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}}),e._v(" "),o("p",[o("em",[e._v("esto puede llevar un tiempo, puede esperar una hora para este paso")])])],1),e._v(" "),o("li",[o("p",[e._v("Verifique el SHA256 del archivo génesis exportado (ordenado):")]),e._v(" "),o("p",[e._v("Compara este valor con otros validadores / operadores de nodos completos de la red.\nEn el futuro será importante que todas las partes puedan crear la misma exportación de archivos génesis.")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIHwgc2hhc3VtIC1hIDI1NgpbU0hBMjU2X1ZBTFVFXSAgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}})],1),e._v(" "),o("li",[o("p",[e._v("En este punto, ya tiene un estado de génesis exportado válido. Todos los pasos posteriores requieren ahora v4.0.0 de "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(".\nCompruebe el hash de su génesis con otros compañeros (otros validadores) en las salas de chat.")]),e._v(" "),o("p",[o("strong",[e._v("NOTA")]),e._v(": Go "),o("a",{attrs:{href:"https://golang.org/dl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.15+"),o("OutboundLink")],1),e._v(" es necesario!")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQgJmFtcDsmYW1wOyBjZCBnYWlhICZhbXA7JmFtcDsgZ2l0IGNoZWNrb3V0IHY0LjAuMDsgbWFrZSBpbnN0YWxsCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Verifique que está ejecutando la versión correcta (v4.0.0) de "),o("em",[e._v("Gaia")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpuYW1lOiBnYWlhCnNlcnZlcl9uYW1lOiBnYWlhZAp2ZXJzaW9uOiA0LjAuMApjb21taXQ6IDJiYjA0MjY2MjY2NTg2NDY4MjcxYzRhYjMyMjM2N2FjYmY0MTE4OGYKYnVpbGRfdGFnczogbmV0Z28sbGVkZ2VyCmdvOiBnbyB2ZXJzaW9uIGdvMS4xNSBkYXJ3aW4vYW1kNjQKYnVpbGRfZGVwczoKLi4uCg=="}}),e._v(" "),o("p",[e._v("El hash y versión/commit de Gaia v4.0.0: "),o("code",[e._v("2bb04266266586468271c4ab322367acbf41188f")])])],1),e._v(" "),o("li",[o("p",[e._v("Migrar el estado exportado de la versión actual v2.0.15 a la nueva versión v4.0.0:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgbWlncmF0ZSBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIC0tY2hhaW4taWQ9Y29zbW9zaHViLTQgLS1pbml0aWFsLWhlaWdodCBbbGFzdF9jb3Ntb3NodWItM19ibG9jaysxXSAmZ3Q7IGdlbmVzaXMuanNvbgo="}}),e._v(" "),o("p",[e._v("Esto migrará nuestro estado exportado del archivo "),o("code",[e._v("genesis.json")]),e._v(" requerido para iniciar el cosmoshub-4.")])],1),e._v(" "),o("li",[o("p",[e._v("Verifique el SHA256 del JSON final del génesis:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBnZW5lc2lzLmpzb24gfCBzaGFzdW0gLWEgMjU2CltTSEEyNTZfVkFMVUVdICBnZW5lc2lzLmpzb24K"}}),e._v(" "),o("p",[e._v("Compare este valor con otros validadores / operadores de nodos de la red.\nEs importante que cada parte pueda reproducir el mismo archivo genesis.json de los pasos correspondientes.")])],1),e._v(" "),o("li",[o("p",[e._v("Reinicio del estado:")]),e._v(" "),o("p",[o("strong",[e._v("NOTA")]),e._v(": Asegúrese de tener una copia de seguridad completa de su nodo antes de proceder con este paso.\nConsulte "),o("a",{attrs:{href:"#recuperaci%C3%B3n"}},[e._v("Recuperación")]),e._v(" para obtener detalles sobre cómo proceder.")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Mueve el nuevo "),o("code",[e._v("genesis.json")]),e._v(" a tu directorio "),o("code",[e._v(".gaia/config/")]),e._v(".")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3AgZ2VuZXNpcy5qc29uIH4vLmdhaWEvY29uZmlnLwo="}})],1),e._v(" "),o("li",[o("p",[e._v("Inicie su blockchain")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),e._v(" "),o("p",[e._v("Las auditorías automatizadas del estado de génesis pueden durar entre 30 y 120 minutos utilizando el módulo de crisis. Esto se puede desactivar mediante\n"),o("code",[e._v("gaiad start --x-crisis-skip-assert-invariants")]),e._v(".")])],1)]),e._v(" "),o("h2",{attrs:{id:"notas-para-los-proveedores-de-servicios"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notas-para-los-proveedores-de-servicios"}},[e._v("#")]),e._v(" Notas para los proveedores de servicios")]),e._v(" "),o("h1",{attrs:{id:"servidor-rest"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#servidor-rest"}},[e._v("#")]),e._v(" Servidor REST")]),e._v(" "),o("p",[e._v("En caso de que hayas estado ejecutando el servidor REST con el comando "),o("code",[e._v("gaiacli rest-server")]),e._v(" previamente, ejecutar este comando ya no será necesario. El servidor API está ahora en proceso con el demonio y puede ser activado/desactivado por la configuración de la API en su "),o("code",[e._v(".gaia/config/app.toml")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"W2FwaV0KIyBFbmFibGUgZGVmaW5lIHNpIGxhIEFQSSBkZWwgc2Vydmlkb3IgZGViZSBlc3RhciBoYWJpbGl0YWRhLgplbmFibGUgPSBmYWxzZQojIFN3YWdnZXIgZGVmaW5lIHNpIGxhIGRvY3VtZW50YWNpw7NuIHN3YWdnZXIgZGViZSByZWdpc3RyYXJzZSBhdXRvbcOhdGljYW1lbnRlLgpzd2FnZ2VyID0gZmFsc2UK"}}),e._v(" "),o("p",[e._v("El ajuste "),o("code",[e._v("swagger")]),e._v(" se refiere a la activación/desactivación de la API de documentos swagger, es decir, el punto final de la API /swagger/.")]),e._v(" "),o("h1",{attrs:{id:"configuracion-grpc"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#configuracion-grpc"}},[e._v("#")]),e._v(" Configuración gRPC")]),e._v(" "),o("p",[e._v("Configuración gRPC en tu "),o("code",[e._v(".gaia/config/app.toml")])]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"W2dycGNdCiMgRW5hYmxlIGRlZmluZSBzaSBlbCBzZXJ2aWRvciBnUlBDIGRlYmUgZXN0YXIgaGFiaWxpdGFkby4KZW5hYmxlID0gdHJ1ZQojIEFkZHJlc3MgZGVmaW5lIGxhIGRpcmVjY2nDs24gZGVsIHNlcnZpZG9yIGdSUEMgYSBsYSBxdWUgc2UgdmluY3VsYS4KYWRkcmVzcyA9ICZxdW90OzAuMC4wLjA6OTA5MCZxdW90Owo="}}),e._v(" "),o("h1",{attrs:{id:"state-sync"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#state-sync"}},[e._v("#")]),e._v(" State Sync")]),e._v(" "),o("p",[e._v("Configuración de State Sync en tu "),o("code",[e._v(".gaia/config/app.toml")])]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"IyBTdGF0ZSBzeW5jIG8gbGFzIGluc3RhbnTDoW5lYXMgZGUgc2luY3Jvbml6YWNpw7NuIGRlIGVzdGFkbyBwZXJtaXRlbiBxdWUgb3Ryb3Mgbm9kb3MgCiMgc2UgdW5hbiByw6FwaWRhbWVudGUgYSBsYSByZWQgc2luIHJlcHJvZHVjaXIgbG9zIGJsb3F1ZXMgaGlzdMOzcmljb3MsIGRlc2NhcmdhbmRvIHkgCiMgYXBsaWNhbmRvIGVuIHN1IGx1Z2FyIHVuYSBpbnN0YW50w6FuZWEgZGVsIGVzdGFkbyBkZSBsYSBhcGxpY2FjacOzbiBhIHVuYSBhbHR1cmEgZGV0ZXJtaW5hZGEuCltzdGF0ZS1zeW5jXQojIHNuYXBzaG90LWludGVydmFsIGVzcGVjaWZpY2EgZWwgaW50ZXJ2YWxvIGRlIGJsb3F1ZXMgZW4gZWwgcXVlIHNlIHRvbWFuIGluc3RhbnTDoW5lYXMgCiMgZGUgc2luY3Jvbml6YWNpw7NuIGRlIGVzdGFkbyBsb2NhbCAoMCBwYXJhIGRlc2hhYmlsaXRhcikuIERlYmUgc2VyIHVuIG3Dumx0aXBsbyBkZSAKIyBwcnVuaW5nLWtlZXAtZXZlcnkuCnNuYXBzaG90LWludGVydmFsID0gMAojIHNuYXBzaG90LWtlZXAtcmVjZW50IGVzcGVjaWZpY2EgZWwgbsO6bWVybyBkZSBpbnN0YW50w6FuZWFzIHJlY2llbnRlcyBhIGNvbnNlcnZhciB5IHNlcnZpciAKIyAoMCBwYXJhIGNvbnNlcnZhciB0b2RhcykuCnNuYXBzaG90LWtlZXAtcmVjZW50ID0gMgo="}})],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{515:function(e,a,o){"use strict";o.r(a);var s=o(1),r=Object(s.a)({},(function(){var e=this,a=e.$createElement,o=e._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"instrucciones-de-actualizacion-del-cosmos-hub-3"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#instrucciones-de-actualizacion-del-cosmos-hub-3"}},[e._v("#")]),e._v(" Instrucciones de actualización del Cosmos Hub 3")]),e._v(" "),o("p",[e._v("El siguiente documento describe los pasos necesarios que deben seguir los operadores de un full node para actualizar de "),o("code",[e._v("cosmoshub-3")]),e._v(" a "),o("code",[e._v("cosmoshub-4")]),e._v(". El equipo de Tendermint publicará un archivo génesis oficial actualizado, pero se recomienda que los validadores ejecuten las siguientes instrucciones para verificar el archivo génesis resultante.")]),e._v(" "),o("p",[e._v("Existe un amplio consenso social en torno a la "),o("code",[e._v("propuesta de actualización del Cosmos Hub 4")]),e._v(" sobre el "),o("code",[e._v("cosmoshub-3")]),e._v(". Siguiendo las propuestas #"),o("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/27",target:"_blank",rel:"noopener noreferrer"}},[e._v("27"),o("OutboundLink")],1),e._v(", #"),o("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/35",target:"_blank",rel:"noopener noreferrer"}},[e._v("35"),o("OutboundLink")],1),e._v(" y #"),o("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/36",target:"_blank",rel:"noopener noreferrer"}},[e._v("36"),o("OutboundLink")],1),e._v(". Se indica que el procedimiento de actualización debe realizarse el "),o("code",[e._v("18 de febrero de 2021 a las 06:00 UTC")]),e._v(".")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"#migraciones"}},[e._v("Migraciones")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#preliminares"}},[e._v("Preliminares")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#principales-actualizaciones"}},[e._v("Principales actualizaciones")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#riesgos"}},[e._v("Riesgos")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#recuperaci%C3%B3n"}},[e._v("Recuperación")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#procedimiento-de-actualizaci%C3%B3n"}},[e._v("Procedimiento de actualización")])]),e._v(" "),o("li",[o("a",{attrs:{href:"#notas-para-los-proveedores-de-servicios"}},[e._v("Notas para los proveedores de servicios")])])]),e._v(" "),o("h1",{attrs:{id:"migraciones"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#migraciones"}},[e._v("#")]),e._v(" Migraciones")]),e._v(" "),o("p",[e._v("Estos capítulos contienen todas las guías de migración para actualizar tu aplicación y módulos a Cosmos v0.40 Stargate.")]),e._v(" "),o("p",[e._v("Si tienes un explorador de bloques, un monedero, un exchange, un validador o cualquier otro servicio (por ejemplo, un proveedor de custodia) que dependa del Cosmos Hub o del ecosistema Cosmos, deberás prestar atención, porque esta actualización implicará cambios sustanciales.")]),e._v(" "),o("ol",[o("li",[o("RouterLink",{attrs:{to:"ttps://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.html"}},[e._v("Migración de aplicaciones y módulos")])],1),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/chain-upgrade-guide-040.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Guía de actualización de la cadena a v0.41"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/rest.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Migración de endpoints REST"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/cosmos/gaia/blob/main/docs/migration/breaking_changes.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("Recopilación de modificaciones de ruptura de los registros de cambios"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#ibc",target:"_blank",rel:"noopener noreferrer"}},[e._v("Comunicación entre cadenas de bloques (IBC) - transacciones entre cadenas"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#proto",target:"_blank",rel:"noopener noreferrer"}},[e._v("Migración de Protobuf - rendimiento de la cadena de bloques y aceleración del desarrollo"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#sync",target:"_blank",rel:"noopener noreferrer"}},[e._v("Sincronización de estados - minutos para sincronizar nuevos nodos"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#light",target:"_blank",rel:"noopener noreferrer"}},[e._v("Clientes ligeros con todas las funciones"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#upgrade",target:"_blank",rel:"noopener noreferrer"}},[e._v("Módulo de actualización de la cadena - automatización de la actualización"),o("OutboundLink")],1)])]),e._v(" "),o("p",[e._v("Si quieres probar el procedimiento antes de que se produzca la actualización el 18 de febrero, consulta este "),o("a",{attrs:{href:"https://github.com/cosmos/gaia/issues/569#issuecomment-767910963",target:"_blank",rel:"noopener noreferrer"}},[e._v("post"),o("OutboundLink")],1),e._v(" en relación a ello.")]),e._v(" "),o("h2",{attrs:{id:"preliminares"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#preliminares"}},[e._v("#")]),e._v(" Preliminares")]),e._v(" "),o("p",[e._v("Se han producido muchos cambios en el SDK de Cosmos y en la aplicación Gaia desde la última gran actualización ("),o("code",[e._v("cosmoshub-3")]),e._v("). Estos cambios consisten principalmente en muchas nuevas características, cambios de protocolo y cambios estructurales de la aplicación que favorecen la ergonomía del desarrollador y el desarrollo de la aplicación.")]),e._v(" "),o("p",[e._v("En primer lugar, se habilitará "),o("a",{attrs:{href:"https://docs.cosmos.network/main/ibc/overview.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBC"),o("OutboundLink")],1),e._v(" siguiendo los "),o("a",{attrs:{href:"https://github.com/cosmos/ics#ibc-quick-references",target:"_blank",rel:"noopener noreferrer"}},[e._v("estándares de Interchain"),o("OutboundLink")],1),e._v(". Esta actualización viene con varias mejoras en la eficiencia, la sincronización de nodos y las siguientes actualizaciones de la cadena de bloques. Más detalles en el "),o("a",{attrs:{href:"https://stargate.cosmos.network/",target:"_blank",rel:"noopener noreferrer"}},[e._v("sitio web de Stargate"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("La aplicación "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(" v4.0.0 es lo que los operadores de nodos actualizarán y ejecutarán en esta próxima gran actualización")]),e._v(". Tras la versión v0.41.0 del SDK de Cosmos y la v0.34.3 de Tendermint.")]),e._v(" "),o("h2",{attrs:{id:"principales-actualizaciones"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#principales-actualizaciones"}},[e._v("#")]),e._v(" Principales actualizaciones")]),e._v(" "),o("p",[e._v("Hay muchas características y cambios notables en la próxima versión del SDK. Muchos de ellos se discuten a de forma general "),o("a",{attrs:{href:"https://github.com/cosmos/stargate",target:"_blank",rel:"noopener noreferrer"}},[e._v("aquí"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Algunos de los principales cambios que hay que tener en cuenta a la hora de actualizar como desarrollador o cliente son los siguientes:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Protocol Buffers")]),e._v(": Inicialmente el SDK de Cosmos utilizaba "),o("em",[e._v("codecs")]),e._v(" de Amino para casi toda la codificación y decodificación. En esta versión se ha integrado una importante actualización de los Protocol Buffers. Se espera que con los Protocol Buffers las aplicaciones ganen en velocidad, legibilidad, conveniencia e interoperabilidad con muchos lenguajes de programación. Para más información consulta "),o("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.md#protocol-buffers",target:"_blank",rel:"noopener noreferrer"}},[e._v("aquí"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("CLI")]),e._v(": El CLI y el commando de full node para la cadena de bloques estaban separados en las versiones anteriores del SDK de Cosmos. Esto dio lugar a dos binarios, "),o("code",[e._v("gaiad")]),e._v(" y "),o("code",[e._v("gaiacli")]),e._v(", que estaban separados y podían utilizarse para diferentes interacciones con la cadena de bloques. Ambos se han fusionado en un solo comando "),o("code",[e._v("gaiad")]),e._v(" que ahora soporta los comandos que antes soportaba el "),o("code",[e._v("gaiacli")]),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("Configuración del nodo")]),e._v(": Anteriormente los datos de la cadena de bloques y la configuración de los nodos se almacenaban en "),o("code",[e._v("~/.gaia/")]),e._v(", ahora residirán en "),o("code",[e._v("~/.gaia/")]),e._v(", si utilizas scripts que hacen uso de la configuración o de los datos de la cadena de bloques, asegúrate de actualizar la ruta.")])]),e._v(" "),o("h2",{attrs:{id:"riesgos"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#riesgos"}},[e._v("#")]),e._v(" Riesgos")]),e._v(" "),o("p",[e._v("Como validador, realizar el procedimiento de actualización en sus nodos de consenso conlleva un mayor riesgo de de doble firma y de ser penalizado. La parte más importante de este procedimiento es verificar su versión del software y el hash del archivo génesis antes de iniciar el validador y firmar.")]),e._v(" "),o("p",[e._v("Lo más arriesgado que puede hacer un validador es descubrir que ha cometido un error y volver a repetir el procedimiento de actualización durante el arranque de la red. Si descubre un error en el proceso, lo mejor es esperar a que la red se inicie antes de corregirlo. Si la red se detiene y ha comenzado con un archivo de génesis diferente al esperado, busque el asesoramiento de un desarrollador de Tendermint antes de reiniciar su validador.")]),e._v(" "),o("h2",{attrs:{id:"recuperacion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#recuperacion"}},[e._v("#")]),e._v(" Recuperación")]),e._v(" "),o("p",[e._v("Antes de exportar el estado de "),o("code",[e._v("cosmoshub-3")]),e._v(", se recomienda a los validadores que tomen una instantánea completa de los datos a la altura de la exportación antes de proceder. La toma de snapshots depende en gran medida de la infraestructura, pero en general se puede hacer una copia de seguridad del directorio "),o("code",[e._v(".gaia")]),e._v(".")]),e._v(" "),o("p",[e._v("Es muy importante hacer una copia de seguridad del archivo "),o("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" después de detener el proceso de gaiad. Este archivo se actualiza en cada bloque cuando tu validador participa en las rondas de consenso. Es un archivo crítico necesario para evitar la doble firma, en caso de que la actualización falle y sea necesario reiniciar la cadena anterior.")]),e._v(" "),o("p",[e._v("En el caso de que la actualización no tenga éxito, los validadores y operadores deben volver a actualizar a\ngaia v2.0.15 con v0.37.15 del "),o("em",[e._v("Cosmos SDK")]),e._v(" y restaurar a su último snapshot antes de reiniciar sus nodos.")]),e._v(" "),o("h2",{attrs:{id:"procedimiento-de-actualizacion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#procedimiento-de-actualizacion"}},[e._v("#")]),e._v(" Procedimiento de actualización")]),e._v(" "),o("p",[o("strong",[e._v("Nota")]),e._v(": Se asume que actualmente está operando un nodo completo ejecutando gaia v2.0.15 con v0.37.15 del "),o("em",[e._v("Cosmos SDK")]),e._v(".")]),e._v(" "),o("p",[e._v("El hash de la versión/commit de Gaia v2.0.15: "),o("code",[e._v("89cf7e6fc166eaabf47ad2755c443d455feda02e")])]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Compruebe que está ejecutando la versión correcta (v2.0.15) de "),o("em",[e._v("gaiad")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpuYW1lOiBnYWlhCnNlcnZlcl9uYW1lOiBnYWlhZApjbGllbnRfbmFtZTogZ2FpYWNsaQp2ZXJzaW9uOiAyLjAuMTUKY29tbWl0OiA4OWNmN2U2ZmMxNjZlYWFiZjQ3YWQyNzU1YzQ0M2Q0NTVmZWRhMDJlCmJ1aWxkX3RhZ3M6IG5ldGdvLGxlZGdlcgpnbzogZ28gdmVyc2lvbiBnbzEuMTUgZGFyd2luL2FtZDY0Cg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Asegúrese de que su cadena se detiene en la fecha y hora correctas:\n18 de febrero de 2021 a las 06:00 UTC es en segundos UNIX: "),o("code",[e._v("1613628000")])]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cGVybCAtaSAtcGUgJ3MvXmhhbHQtdGltZSA9LiovaGFsdC10aW1lID0gMTYxMzYyODAwMC8nIH4vLmdhaWEvY29uZmlnL2FwcC50b21sCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Después de que la cadena se haya detenido, haz una copia de seguridad de tu directorio "),o("code",[e._v(".gaia")]),e._v(".")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bXYgfi8uZ2FpYSAuL2dhaWFkX2JhY2t1cAo="}}),e._v(" "),o("p",[o("strong",[e._v("NOTA")]),e._v(": Se recomienda a los validadores y operadores que tomen una instantánea completa de los datos a la altura de la exportación antes de proceder en caso de que la actualización no vaya según lo previsto o si no se pone en línea suficiente poder de voto en un tiempo determinado y acordado. En tal caso, la cadena volverá a funcionar con "),o("code",[e._v("cosmoshub-3")]),e._v(". Consulte "),o("a",{attrs:{href:"#recuperaci%C3%B3n"}},[e._v("Recuperación")]),e._v(" para saber cómo proceder.")])],1),e._v(" "),o("li",[o("p",[e._v("Exportar el estado existente de "),o("code",[e._v("cosmoshub-3")]),e._v(":")]),e._v(" "),o("p",[e._v("Antes de exportar el estado a través del siguiente comando, el binario "),o("code",[e._v("gaiad")]),e._v(" debe estar detenido. Como validador, puedes ver la última altura del bloque creado en el "),o("code",[e._v("~/.gaia/config/data/priv_validator_state.json")]),e._v(" -o que ahora reside en "),o("code",[e._v("gaiad_backup")]),e._v(" cuando hiciste una copia de seguridad como en el último paso- y obtenerla con")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2F0IH4vLmdhaWEvY29uZmlnL2RhdGEvcHJpdl92YWxpZGF0b3Jfc3RhdGUuanNvbiB8IGpxICcuaGVpZ2h0Jwo="}}),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0tZm9yLXplcm8taGVpZ2h0IC0taGVpZ2h0PSZsdDtoZWlnaHQmZ3Q7ICZndDsgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}}),e._v(" "),o("p",[o("em",[e._v("esto puede llevar un tiempo, puede esperar una hora para este paso")])])],1),e._v(" "),o("li",[o("p",[e._v("Verifique el SHA256 del archivo génesis exportado (ordenado):")]),e._v(" "),o("p",[e._v("Compara este valor con otros validadores / operadores de nodos completos de la red.\nEn el futuro será importante que todas las partes puedan crear la misma exportación de archivos génesis.")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIHwgc2hhc3VtIC1hIDI1NgpbU0hBMjU2X1ZBTFVFXSAgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}})],1),e._v(" "),o("li",[o("p",[e._v("En este punto, ya tiene un estado de génesis exportado válido. Todos los pasos posteriores requieren ahora v4.0.0 de "),o("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia"),o("OutboundLink")],1),e._v(".\nCompruebe el hash de su génesis con otros compañeros (otros validadores) en las salas de chat.")]),e._v(" "),o("p",[o("strong",[e._v("NOTA")]),e._v(": Go "),o("a",{attrs:{href:"https://golang.org/dl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.15+"),o("OutboundLink")],1),e._v(" es necesario!")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQgJmFtcDsmYW1wOyBjZCBnYWlhICZhbXA7JmFtcDsgZ2l0IGNoZWNrb3V0IHY0LjAuMDsgbWFrZSBpbnN0YWxsCg=="}})],1),e._v(" "),o("li",[o("p",[e._v("Verifique que está ejecutando la versión correcta (v4.0.0) de "),o("em",[e._v("Gaia")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBnYWlhZCB2ZXJzaW9uIC0tbG9uZwpuYW1lOiBnYWlhCnNlcnZlcl9uYW1lOiBnYWlhZAp2ZXJzaW9uOiA0LjAuMApjb21taXQ6IDJiYjA0MjY2MjY2NTg2NDY4MjcxYzRhYjMyMjM2N2FjYmY0MTE4OGYKYnVpbGRfdGFnczogbmV0Z28sbGVkZ2VyCmdvOiBnbyB2ZXJzaW9uIGdvMS4xNSBkYXJ3aW4vYW1kNjQKYnVpbGRfZGVwczoKLi4uCg=="}}),e._v(" "),o("p",[e._v("El hash y versión/commit de Gaia v4.0.0: "),o("code",[e._v("2bb04266266586468271c4ab322367acbf41188f")])])],1),e._v(" "),o("li",[o("p",[e._v("Migrar el estado exportado de la versión actual v2.0.15 a la nueva versión v4.0.0:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgbWlncmF0ZSBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIC0tY2hhaW4taWQ9Y29zbW9zaHViLTQgLS1pbml0aWFsLWhlaWdodCBbbGFzdF9jb3Ntb3NodWItM19ibG9jaysxXSAmZ3Q7IGdlbmVzaXMuanNvbgo="}}),e._v(" "),o("p",[e._v("Esto migrará nuestro estado exportado del archivo "),o("code",[e._v("genesis.json")]),e._v(" requerido para iniciar el cosmoshub-4.")])],1),e._v(" "),o("li",[o("p",[e._v("Verifique el SHA256 del JSON final del génesis:")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBnZW5lc2lzLmpzb24gfCBzaGFzdW0gLWEgMjU2CltTSEEyNTZfVkFMVUVdICBnZW5lc2lzLmpzb24K"}}),e._v(" "),o("p",[e._v("Compare este valor con otros validadores / operadores de nodos de la red.\nEs importante que cada parte pueda reproducir el mismo archivo genesis.json de los pasos correspondientes.")])],1),e._v(" "),o("li",[o("p",[e._v("Reinicio del estado:")]),e._v(" "),o("p",[o("strong",[e._v("NOTA")]),e._v(": Asegúrese de tener una copia de seguridad completa de su nodo antes de proceder con este paso.\nConsulte "),o("a",{attrs:{href:"#recuperaci%C3%B3n"}},[e._v("Recuperación")]),e._v(" para obtener detalles sobre cómo proceder.")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}})],1),e._v(" "),o("li",[o("p",[e._v("Mueve el nuevo "),o("code",[e._v("genesis.json")]),e._v(" a tu directorio "),o("code",[e._v(".gaia/config/")]),e._v(".")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3AgZ2VuZXNpcy5qc29uIH4vLmdhaWEvY29uZmlnLwo="}})],1),e._v(" "),o("li",[o("p",[e._v("Inicie su blockchain")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),e._v(" "),o("p",[e._v("Las auditorías automatizadas del estado de génesis pueden durar entre 30 y 120 minutos utilizando el módulo de crisis. Esto se puede desactivar mediante\n"),o("code",[e._v("gaiad start --x-crisis-skip-assert-invariants")]),e._v(".")])],1)]),e._v(" "),o("h2",{attrs:{id:"notas-para-los-proveedores-de-servicios"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#notas-para-los-proveedores-de-servicios"}},[e._v("#")]),e._v(" Notas para los proveedores de servicios")]),e._v(" "),o("h1",{attrs:{id:"servidor-rest"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#servidor-rest"}},[e._v("#")]),e._v(" Servidor REST")]),e._v(" "),o("p",[e._v("En caso de que hayas estado ejecutando el servidor REST con el comando "),o("code",[e._v("gaiacli rest-server")]),e._v(" previamente, ejecutar este comando ya no será necesario. El servidor API está ahora en proceso con el demonio y puede ser activado/desactivado por la configuración de la API en su "),o("code",[e._v(".gaia/config/app.toml")]),e._v(":")]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"W2FwaV0KIyBFbmFibGUgZGVmaW5lIHNpIGxhIEFQSSBkZWwgc2Vydmlkb3IgZGViZSBlc3RhciBoYWJpbGl0YWRhLgplbmFibGUgPSBmYWxzZQojIFN3YWdnZXIgZGVmaW5lIHNpIGxhIGRvY3VtZW50YWNpw7NuIHN3YWdnZXIgZGViZSByZWdpc3RyYXJzZSBhdXRvbcOhdGljYW1lbnRlLgpzd2FnZ2VyID0gZmFsc2UK"}}),e._v(" "),o("p",[e._v("El ajuste "),o("code",[e._v("swagger")]),e._v(" se refiere a la activación/desactivación de la API de documentos swagger, es decir, el punto final de la API /swagger/.")]),e._v(" "),o("h1",{attrs:{id:"configuracion-grpc"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#configuracion-grpc"}},[e._v("#")]),e._v(" Configuración gRPC")]),e._v(" "),o("p",[e._v("Configuración gRPC en tu "),o("code",[e._v(".gaia/config/app.toml")])]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"W2dycGNdCiMgRW5hYmxlIGRlZmluZSBzaSBlbCBzZXJ2aWRvciBnUlBDIGRlYmUgZXN0YXIgaGFiaWxpdGFkby4KZW5hYmxlID0gdHJ1ZQojIEFkZHJlc3MgZGVmaW5lIGxhIGRpcmVjY2nDs24gZGVsIHNlcnZpZG9yIGdSUEMgYSBsYSBxdWUgc2UgdmluY3VsYS4KYWRkcmVzcyA9ICZxdW90OzAuMC4wLjA6OTA5MCZxdW90Owo="}}),e._v(" "),o("h1",{attrs:{id:"state-sync"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#state-sync"}},[e._v("#")]),e._v(" State Sync")]),e._v(" "),o("p",[e._v("Configuración de State Sync en tu "),o("code",[e._v(".gaia/config/app.toml")])]),e._v(" "),o("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"IyBTdGF0ZSBzeW5jIG8gbGFzIGluc3RhbnTDoW5lYXMgZGUgc2luY3Jvbml6YWNpw7NuIGRlIGVzdGFkbyBwZXJtaXRlbiBxdWUgb3Ryb3Mgbm9kb3MgCiMgc2UgdW5hbiByw6FwaWRhbWVudGUgYSBsYSByZWQgc2luIHJlcHJvZHVjaXIgbG9zIGJsb3F1ZXMgaGlzdMOzcmljb3MsIGRlc2NhcmdhbmRvIHkgCiMgYXBsaWNhbmRvIGVuIHN1IGx1Z2FyIHVuYSBpbnN0YW50w6FuZWEgZGVsIGVzdGFkbyBkZSBsYSBhcGxpY2FjacOzbiBhIHVuYSBhbHR1cmEgZGV0ZXJtaW5hZGEuCltzdGF0ZS1zeW5jXQojIHNuYXBzaG90LWludGVydmFsIGVzcGVjaWZpY2EgZWwgaW50ZXJ2YWxvIGRlIGJsb3F1ZXMgZW4gZWwgcXVlIHNlIHRvbWFuIGluc3RhbnTDoW5lYXMgCiMgZGUgc2luY3Jvbml6YWNpw7NuIGRlIGVzdGFkbyBsb2NhbCAoMCBwYXJhIGRlc2hhYmlsaXRhcikuIERlYmUgc2VyIHVuIG3Dumx0aXBsbyBkZSAKIyBwcnVuaW5nLWtlZXAtZXZlcnkuCnNuYXBzaG90LWludGVydmFsID0gMAojIHNuYXBzaG90LWtlZXAtcmVjZW50IGVzcGVjaWZpY2EgZWwgbsO6bWVybyBkZSBpbnN0YW50w6FuZWFzIHJlY2llbnRlcyBhIGNvbnNlcnZhciB5IHNlcnZpciAKIyAoMCBwYXJhIGNvbnNlcnZhciB0b2RhcykuCnNuYXBzaG90LWtlZXAtcmVjZW50ID0gMgo="}})],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/main/assets/js/151.0ce34d22.js b/main/assets/js/151.b6e386d4.js similarity index 99% rename from main/assets/js/151.0ce34d22.js rename to main/assets/js/151.b6e386d4.js index fa78221d2f1..715097c33eb 100644 --- a/main/assets/js/151.0ce34d22.js +++ b/main/assets/js/151.b6e386d4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{515:function(a,t,e){"use strict";e.r(t);var s=e(1),o=Object(s.a)({},(function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"코스모스-허브-3-업그레이드-매뉴얼"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#코스모스-허브-3-업그레이드-매뉴얼"}},[a._v("#")]),a._v(" 코스모스 허브 3 업그레이드 매뉴얼")]),a._v(" "),e("p",[a._v("이 문서는 풀노드 운영자가 "),e("code",[a._v("cosmoshub-3")]),a._v("에서 "),e("code",[a._v("cosmoshub-4")]),a._v(" 업그레이드를 진행하기 위한 과정을 설명합니다.\n텐더민트 팀이 공식적인 업데이트된 제네시스 파일을 업로드할 예정이나, 각 검증인이 해당 제네시스 파일을 각자 검증할 것을 권장합니다.")]),a._v(" "),e("p",[a._v("현재 "),e("code",[a._v("cosmoshub-3")]),a._v("에서는 "),e("code",[a._v("Cosmos Hub 4 Upgrade Proposal")]),a._v("에 대한 사회적 합의가 도달된 것으로 판단됩니다.\n프로포절 #"),e("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/27",target:"_blank",rel:"noopener noreferrer"}},[a._v("27"),e("OutboundLink")],1),a._v(", #"),e("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/35",target:"_blank",rel:"noopener noreferrer"}},[a._v("35"),e("OutboundLink")],1),a._v(" and #"),e("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/36",target:"_blank",rel:"noopener noreferrer"}},[a._v("36"),e("OutboundLink")],1),a._v("의 내용에 따라 업그레이드 과정은 "),e("code",[a._v("2021년 2월 18일, 06:00 UTC")]),a._v("에 진행될 예정입니다.")]),a._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98"}},[a._v("마이그레이션")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%82%AC%EC%A0%84-%EC%A0%95%EB%B3%B4"}},[a._v("사전 정보")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%A3%BC%EC%9A%94-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8"}},[a._v("주요 업데이트")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%9C%84%ED%97%98-%EA%B3%A0%EC%A7%80"}},[a._v("위험 고지")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EB%B3%B5%EA%B5%AC"}},[a._v("복구")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C-%EC%A0%88%EC%B0%A8"}},[a._v("업그레이드 절차")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%A0%9C%EA%B3%B5%EC%9E%90%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B3%B5%EC%A7%80"}},[a._v("서비스 제공자에 대한 공지")])])]),a._v(" "),e("h1",{attrs:{id:"마이그레이션"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#마이그레이션"}},[a._v("#")]),a._v(" 마이그레이션")]),a._v(" "),e("p",[a._v("다음 항목들은 애플리케이션 및 모듈을 코스모스 v0.41 스타게이트로 마이그레이션 하는 절차를 정보를 포함하고 있습니다.")]),a._v(" "),e("p",[a._v("만약 코스모스 허브 또는 코스모스 생태계 블록체인의 블록 익스플로러, 지갑, 거래소, 검증인, 등 서비스 (예, 커스터디 제공자)를 운영하시는 경우, 이번 업그레이드에서 상당한 변경사항이 있음으로 꼭 다음 정보를 참고하십시오.")]),a._v(" "),e("ol",[e("li",[e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.md",target:"_blank",rel:"noopener noreferrer"}},[a._v("앱 및 모듈 마이그레이션"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/chain-upgrade-guide-040.md",target:"_blank",rel:"noopener noreferrer"}},[a._v("코스모스 v0.40 체인 업그레이드 가이드"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/rest.md",target:"_blank",rel:"noopener noreferrer"}},[a._v("REST 엔드포인트 마이그레이션"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("RouterLink",{attrs:{to:"/migration/cosmoshub-3/breaking_changes.html"}},[a._v("각 버전 체인지로그의 breaking change 모음")])],1),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#ibc",target:"_blank",rel:"noopener noreferrer"}},[a._v("Inter-Blockchain Communication (IBC)– 체인간 트랜잭션"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#proto",target:"_blank",rel:"noopener noreferrer"}},[a._v("Protobuf 마이그레이션 – 블록체인 성능 및 개발 과정 개선"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#sync",target:"_blank",rel:"noopener noreferrer"}},[a._v("State Sync – 몇 분 내에 완료되는 노드 동기화"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#light",target:"_blank",rel:"noopener noreferrer"}},[a._v("강력한 기능을 포함한 라이트 클라이언트"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#upgrade",target:"_blank",rel:"noopener noreferrer"}},[a._v("체인 업그레이드 모듈 – 업그레이드 자동화"),e("OutboundLink")],1)])]),a._v(" "),e("p",[a._v("만약 2월 18일 전에 업그레이드 과정을 미리 테스트 진행을 희망하시는 경우 "),e("a",{attrs:{href:"https://github.com/cosmos/gaia/issues/569#issuecomment-767910963",target:"_blank",rel:"noopener noreferrer"}},[a._v("이 글"),e("OutboundLink")],1),a._v("을 참고하세요")]),a._v(" "),e("h2",{attrs:{id:"사전-정보"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#사전-정보"}},[a._v("#")]),a._v(" 사전 정보")]),a._v(" "),e("p",[a._v("지난 코스모스 허브 업그레이드("),e("code",[a._v("cosmoshub-3")]),a._v(") 이후 코스모스 SDK와 Gaia 애플리케이션에 상당한 양의 변경사항이 적용되었습니다.\n변경사항에는 신규 기능, 프로토콜 변경사항, 애플리케이션 구조 변경 등이 포함되었으며, 애플리케이션 개발 과정의 개선이 기대됩니다.")]),a._v(" "),e("p",[a._v("우선, "),e("a",{attrs:{href:"https://github.com/cosmos/ics#ibc-quick-references",target:"_blank",rel:"noopener noreferrer"}},[a._v("인터체인 표준"),e("OutboundLink")],1),a._v("를 따른 "),e("a",{attrs:{href:"https://docs.cosmos.network/main/ibc/overview.html",target:"_blank",rel:"noopener noreferrer"}},[a._v("IBC"),e("OutboundLink")],1),a._v("이 활성화될 예정입니다. 또한 효율성, 노드 동기화, 추후 블록체인 업데이트 과정이 개선됩니다. 자세한 내용은 "),e("a",{attrs:{href:"https://stargate.cosmos.network/",target:"_blank",rel:"noopener noreferrer"}},[a._v("스타게이트 웹사이트"),e("OutboundLink")],1),a._v("를 참고하세요.")]),a._v(" "),e("p",[a._v("__이번 업그레이드에서 풀 노드 운영자 업그레이드를 진행하는 것은 "),e("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[a._v("Gaia"),e("OutboundLink")],1),a._v(" 애플리케이션 v4.0.0입니다. 이번 버전의 Gaia 애플리케이션은 코스모스 SDK v0.41.0 그리고 텐더민트 v0.34.3 기반으로 빌드되었습니다.")]),a._v(" "),e("h2",{attrs:{id:"주요-업데이트"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#주요-업데이트"}},[a._v("#")]),a._v(" 주요 업데이트")]),a._v(" "),e("p",[a._v("이번 SDK의 릴리즈에서는 다수의 기능 및 변경사항이 적용되어 있습니다. 이에 대한 설명은 "),e("a",{attrs:{href:"https://github.com/cosmos/stargate",target:"_blank",rel:"noopener noreferrer"}},[a._v("여기"),e("OutboundLink")],1),a._v("에서 확인하실 수 있습니다.")]),a._v(" "),e("p",[a._v("개발자 또는 클라이언트로서 참고해야할 점은 다음과 같습니다:")]),a._v(" "),e("ul",[e("li",[e("strong",[a._v("프로토콜 버퍼(Protocol BufferS)")]),a._v(": 이전 버전의 코스모스 SDK에서는 인코딩 및 디코딩 과정에서 아미노 코덱을 사용했습니다.\n이번 코스모스 SDK 버전에서는 프로토콜 버퍼가 내장되어있습니다. 프로토콜 버퍼를 통해 애플리케이션은 속도, 가독성, 편의성, 프로그래밍 언어 간 상호호환성 등의 부분에서 상당한 개선이 있을 것으로 기대됩니다. "),e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.md#protocol-buffers",target:"_blank",rel:"noopener noreferrer"}},[a._v("더 읽기"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("strong",[a._v("CLI")]),a._v(": 이전 버전의 코스모스 SDK에서는 블록체인의 CLI와 데몬은 별도의 바이너리로 구성되었으며, 실행하는 블록체인 인터랙션에 따라 "),e("code",[a._v("gaiad")]),a._v("와 "),e("code",[a._v("gaiacli")]),a._v(" 바이너리가 구분되었습니다. 이번 버전의 코스모스 SDK에서는 두 바이너리가 하나의 "),e("code",[a._v("gaiad")]),a._v(" 바이너리로 통합되었으며 해당 바이너리 내에서 기존에 "),e("code",[a._v("gaiacli")]),a._v("에서 사용했던 명령어를 지원합니다.")]),a._v(" "),e("li",[e("strong",[a._v("노드 구성")]),a._v(": 이전 버전의 코스모스 SDK에서는 블록체인 데이터와 노드 설정이 "),e("code",[a._v("~/.gaia/")]),a._v("에 저장되었지만, 이번 버전에서는 해당 정보다 "),e("code",[a._v("~/.gaia/")]),a._v(" 디렉토리에 보관됩니다. 만약 블록체인 데이터 또는 노드 설정을 관리하는 스크립트를 사용하시는 경우 해당 스크립트에서 패스를 변경해야합니다.")])]),a._v(" "),e("h2",{attrs:{id:"위험-고지"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#위험-고지"}},[a._v("#")]),a._v(" 위험 고지")]),a._v(" "),e("p",[a._v("검증인이 컨센서스 노드 업그레이드를 진행하는 절차에서 이중서명에 따른 슬래싱의 위험이 존재합니다. 이 과정에서 가장 중요한 것은 검증인을 가동하고 서명을 시작하기 전 소프트웨어 버전을 확인하고 제네시스 파일의 해시를 확인하시기를 바랍니다.")]),a._v(" "),e("p",[a._v("블록체인 검증인이 할 수 있는 가장 위험한 행동은 네트워크 시작 과정에서 존재했던 실수를 인지하고 업그레이드 과정을 처음부터 다시 시작하는 것입니다. 만약 업그레이드 과정에서 실수가 발생했다면 네트워크가 시작되는 것을 기다린 후에 실수를 고치는 것을 권장합니다. 만약 네트워크가 중단되었고 본인의 검증인을 실제 시작된 네트워크가 아닌 다른 제네시스 파일로 가동한 경우, 검증인을 리셋하는 과정에 대해 텐더민트 검증인으로 부터 조언을 구할 것을 권장합니다.")]),a._v(" "),e("h2",{attrs:{id:"복구"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#복구"}},[a._v("#")]),a._v(" 복구")]),a._v(" "),e("p",[a._v("각 검증인은 "),e("code",[a._v("cosmoshub-3")]),a._v(" 상태를 내보내기(export) 전에 내보내는 블록 하이트의 풀 데이터 스냅샷을 진행할 것을 권장합니다. 스냅샷 과정은 각 검증인의 인프라에 따라 다를 수 있지만, 통상 "),e("code",[a._v(".gaia")]),a._v(" 디렉토리를 백업하는 것으로 진행합니다.")]),a._v(" "),e("p",[e("code",[a._v("gaiad")]),a._v(" 프로세스를 멈춘 후 "),e("code",[a._v(".gaia/data/priv_validator_state.json")]),a._v(" 파일을 백업하는 것은 매우 중요합니다. 이 파일은 검증인이 컨센서스 라운드에 참여할 때마다 업데이트됩니다. 만약 업그레이드 과정이 실패하여 이전 체인을 다시 시작해야되는 경우 검증인의 이중서명을 방지하기 위해서 이 파일은 필수입니다.")]),a._v(" "),e("p",[a._v("만약 업그레이드 과정이 실패하는 경우, 검증인과 노드 운영자는 gaia v2.0.15(코스모스 SDK v0.37.15 기반)으로 다운그레이드를 진행하고 가장 최근 진행했던 스냅샷을 복구한 이후에 노드를 시작해야합니다.")]),a._v(" "),e("h2",{attrs:{id:"업그레이드"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#업그레이드"}},[a._v("#")]),a._v(" 업그레이드")]),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": 이 가이드는 코스모스 SDK의 v0.37.15 기반의 gaia v2.0.15를 운영한다는 가정에 작성된 가이드입니다.")]),a._v(" "),e("p",[a._v("Gaia v2.0.15의 버전/커밋 해시값: "),e("code",[a._v("89cf7e6fc166eaabf47ad2755c443d455feda02e")])]),a._v(" "),e("ol",[e("li",[e("p",[a._v("올바른 "),e("em",[a._v("gaiad")]),a._v(" 버전 (v2.0.15)를 운영하고 있는 것을 확인하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"ICQgZ2FpYWQgdmVyc2lvbiAtLWxvbmcKIG5hbWU6IGdhaWEKIHNlcnZlcl9uYW1lOiBnYWlhZAogY2xpZW50X25hbWU6IGdhaWFjbGkKIHZlcnNpb246IDIuMC4xNQogY29tbWl0OiA4OWNmN2U2ZmMxNjZlYWFiZjQ3YWQyNzU1YzQ0M2Q0NTVmZWRhMDJlCiBidWlsZF90YWdzOiBuZXRnbyxsZWRnZXIKIGdvOiBnbyB2ZXJzaW9uIGdvMS4xNSBkYXJ3aW4vYW1kNjQK"}})],1),a._v(" "),e("li",[e("p",[a._v("체인이 올바른 날짜와 시간에 멈추도록 설정하세요:")]),a._v(" "),e("p",[a._v("2021년 2월 18일 06:00 UTC의 UNIX seconds 시간 값: "),e("code",[a._v("1613628000")])]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cGVybCAtaSAtcGUgJ3MvXmhhbHQtdGltZSA9LiovaGFsdC10aW1lID0gMTYxMzYyODAwMC8nIH4vLmdhaWEvY29uZmlnL2FwcC50b21sCg=="}})],1),a._v(" "),e("li",[e("p",[a._v("체인이 멈춘 후 "),e("code",[a._v(".gaia")]),a._v(" 디렉토리를 백업하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bXYgfi8uZ2FpYSAuL2dhaWFkX2JhY2t1cAo="}}),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": 업그레이드 과정이 예상 외로 실패하거나 합의된 시간 내에 새로운 체인에 충분한 보팅 파워가 참여하지 않는 경우를 대비해 검증인과 노드 운영자는 export height의 풀 데이터 스냅샷을 진행하는 것을 권장합니다. 이 경우에는 체인 업그레이드 과정은 보류되고 "),e("code",[a._v("cosmoshub-3")]),a._v("의 운영이 재개됩니다. 해당 과정에 대해서는 "),e("a",{attrs:{href:"#%EB%B3%B5%EA%B5%AC"}},[a._v("복구")]),a._v(" 항목을 참고하세요.")])],1),a._v(" "),e("li",[e("p",[a._v("기존 "),e("code",[a._v("cosmoshub-3")]),a._v("의 상태를 내보내기:")]),a._v(" "),e("p",[a._v("다음 명령어를 사용하여 상태를 내보내기 전 "),e("code",[a._v("gaiad")]),a._v(" 바이너리가 꼭 멈춰있어야 합니다!\n검증인으로서 가장 최근 생성된 블록은 "),e("code",[a._v("~/.gaia/config/data/priv_validator_state.json")]),a._v("에서 확인하실 수 있습니다 (또는 이전 과정에서 백업을 진행한 경우 "),e("code",[a._v("gaiad_backup")]),a._v("). 블록 높이는 다음과 같이 확인하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2F0IH4vLmdhaWEvY29uZmlnL2RhdGEvcHJpdl92YWxpZGF0b3Jfc3RhdGUuanNvbiB8IGpxICcuaGVpZ2h0Jwo="}}),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0tZm9yLXplcm8taGVpZ2h0IC0taGVpZ2h0PSZsdDtoZWlnaHQmZ3Q7ICZndDsgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}}),a._v(" "),e("p",[e("em",[a._v("이 과정은 상당한 시간이 (약 1시간) 소요될 수 있습니다")])])],1),a._v(" "),e("li",[e("p",[a._v("내보낸 제네시스 파일의 SHA256 값을 검증하세요:")]),a._v(" "),e("p",[a._v("본인의 제네시스 파일의 값을 네트워크 내 다른 검증인 / 풀 노드 운영자와 비교하세요.\n이 후 과정에서는 모든 인원이 동일한 제네시스 파일을 생성하는 것이 상당이 중요합니다.")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIHwgc2hhc3VtIC1hIDI1NgpbU0hBMjU2X1ZBTFVFXSAgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}})],1),a._v(" "),e("li",[e("p",[a._v("이 단계 까지 오셨다면 올바른 제네시스 상태를 내보내셨습니다! 이후 과정부터는 "),e("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[a._v("Gaia"),e("OutboundLink")],1),a._v(" v4.0.0을 필요로 합니다. 그룹 채팅 방의 다른 검증인들/피어와 새로운 제네시스 파일의 해시를 비교/검증하세요.")]),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": Go "),e("a",{attrs:{href:"https://golang.org/dl/",target:"_blank",rel:"noopener noreferrer"}},[a._v("1.15+"),e("OutboundLink")],1),a._v(" 버전이 설치되어야 합니다!")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQgJmFtcDsmYW1wOyBjZCBnYWlhICZhbXA7JmFtcDsgZ2l0IGNoZWNrb3V0IHY0LjAuMDsgbWFrZSBpbnN0YWxsCg=="}})],1),a._v(" "),e("li",[e("p",[a._v("_Gaia_의 올바른 버전(v4.0.0)을 운영하고 있는 것을 확인하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"ICQgZ2FpYWQgdmVyc2lvbiAtLWxvbmcKIG5hbWU6IGdhaWEKIHNlcnZlcl9uYW1lOiBnYWlhZAogdmVyc2lvbjogNC4wLjAKIGNvbW1pdDogMmJiMDQyNjYyNjY1ODY0NjgyNzFjNGFiMzIyMzY3YWNiZjQxMTg4ZgogYnVpbGRfdGFnczogbmV0Z28sbGVkZ2VyCiBnbzogZ28gdmVyc2lvbiBnbzEuMTUgZGFyd2luL2FtZDY0CiBidWlsZF9kZXBzOgogLi4uCg=="}}),a._v(" "),e("p",[a._v("Gaia v4.0.0 버전/커밋 해시 : "),e("code",[a._v("2bb04266266586468271c4ab322367acbf41188f")])])],1),a._v(" "),e("li",[e("p",[a._v("내보낸 상태를 기존 v2.0.15 버전에서 v4.0.0 버전으로 마이그레이션 하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgbWlncmF0ZSBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIC0tY2hhaW4taWQ9Y29zbW9zaHViLTQgLS1pbml0aWFsLWhlaWdodCBbbGFzdF9jb3Ntb3NodWItM19ibG9jaysxXSAmZ3Q7IGdlbmVzaXMuanNvbgo="}}),a._v(" "),e("p",[a._v("이 과정은 이전 체인에서 내보낸 상태를 기반으로 "),e("code",[a._v("cosmoshub-4")]),a._v("로 시작하기 위한 "),e("code",[a._v("genesis.json")]),a._v(" 파일을 생성합니다.")])],1),a._v(" "),e("li",[e("p",[a._v("최종 제네시스 JSON의 SHA256 해시 값을 검증하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBnZW5lc2lzLmpzb24gfCBzaGFzdW0gLWEgMjU2CltTSEEyNTZfVkFMVUVdICBnZW5lc2lzLmpzb24K"}}),a._v(" "),e("p",[a._v("해당 값을 네트워크의 다른 검증인 / 풀 노드 운영자와 비교하세요.\n과정에서 모든 참여자가 같은 genesis.json 파일을 생성하는 것이 중요합니다.")])],1),a._v(" "),e("li",[e("p",[a._v("상태 리셋:")]),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": 이 과정을 진행하기 전에 꼭 노드의 상태를 백업하세요. 백업 과정은 "),e("a",{attrs:{href:"#%EB%B3%B5%EA%B5%AC"}},[a._v("복구")]),a._v(" 항복을 참고하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}})],1),a._v(" "),e("li",[e("p",[a._v("새로운 "),e("code",[a._v("genesis.json")]),a._v("을 "),e("code",[a._v(".gaia/config/")]),a._v(" 디렉토리로 옮기세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3AgZ2VuZXNpcy5qc29uIH4vLmdhaWEvY29uZmlnLwo="}})],1),a._v(" "),e("li",[e("p",[a._v("블록체인을 가동하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),a._v(" "),e("p",[a._v("Crisis 모듈의 제네시스 상태 자동 검증은 30-120분 소요될 수 있습니다. 해당 기능은 "),e("code",[a._v("gaiad start --x-crisis-skip-assert-invariants")]),a._v("로 비활성화할 수 있습니다.")])],1)]),a._v(" "),e("h2",{attrs:{id:"서비스-제공자를-위한-정보"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#서비스-제공자를-위한-정보"}},[a._v("#")]),a._v(" 서비스 제공자를 위한 정보")]),a._v(" "),e("h1",{attrs:{id:"rest-서버"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-서버"}},[a._v("#")]),a._v(" REST 서버")]),a._v(" "),e("p",[a._v("만약 이전까지 "),e("code",[a._v("gaiacli rest-server")]),a._v(" 명령어로 REST 서버를 구동하신 경우, 해당 명령어는 이번 버전부터 비활성화 됩니다. API 서버는 데몬 내에서 활성화되며, "),e("code",[a._v(".gaia/config/app.toml")]),a._v(" 설정 내에서 활성화됩니다:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"W2FwaV0KIyBFbmFibGUgZGVmaW5lcyBpZiB0aGUgQVBJIHNlcnZlciBzaG91bGQgYmUgZW5hYmxlZC4KZW5hYmxlID0gZmFsc2UKIyBTd2FnZ2VyIGRlZmluZXMgaWYgc3dhZ2dlciBkb2N1bWVudGF0aW9uIHNob3VsZCBhdXRvbWF0aWNhbGx5IGJlIHJlZ2lzdGVyZWQuCnN3YWdnZXIgPSBmYWxzZQo="}}),a._v(" "),e("p",[e("code",[a._v("swagger")]),a._v(" 설정은 Swagger 문서 API를 활성화/비활성화 하는 여부를 관리합니다 (예, /swagger/ API 엔드포인트)")]),a._v(" "),e("h1",{attrs:{id:"grpc-설정"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#grpc-설정"}},[a._v("#")]),a._v(" gRPC 설정")]),a._v(" "),e("p",[a._v("gRPC 설정은 "),e("code",[a._v(".gaia/config/app.toml")]),a._v("에 있습니다.")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"W2dycGNdCiMgRW5hYmxlIGRlZmluZXMgaWYgdGhlIGdSUEMgc2VydmVyIHNob3VsZCBiZSBlbmFibGVkLgplbmFibGUgPSB0cnVlCiMgQWRkcmVzcyBkZWZpbmVzIHRoZSBnUlBDIHNlcnZlciBhZGRyZXNzIHRvIGJpbmQgdG8uCmFkZHJlc3MgPSAmcXVvdDswLjAuMC4wOjkwOTAmcXVvdDsK"}}),a._v(" "),e("h1",{attrs:{id:"스테이트-싱크"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#스테이트-싱크"}},[a._v("#")]),a._v(" 스테이트 싱크")]),a._v(" "),e("p",[a._v("스테이트 싱크 설정은 "),e("code",[a._v(".gaia/config/app.toml")]),a._v("에 있습니다.")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"IyBTdGF0ZSBzeW5jIHNuYXBzaG90cyBhbGxvdyBvdGhlciBub2RlcyB0byByYXBpZGx5IGpvaW4gdGhlIG5ldHdvcmsgd2l0aG91dCByZXBsYXlpbmcgaGlzdG9yaWNhbAojIGJsb2NrcywgaW5zdGVhZCBkb3dubG9hZGluZyBhbmQgYXBwbHlpbmcgYSBzbmFwc2hvdCBvZiB0aGUgYXBwbGljYXRpb24gc3RhdGUgYXQgYSBnaXZlbiBoZWlnaHQuCltzdGF0ZS1zeW5jXQojIHNuYXBzaG90LWludGVydmFsIHNwZWNpZmllcyB0aGUgYmxvY2sgaW50ZXJ2YWwgYXQgd2hpY2ggbG9jYWwgc3RhdGUgc3luYyBzbmFwc2hvdHMgYXJlCiMgdGFrZW4gKDAgdG8gZGlzYWJsZSkuIE11c3QgYmUgYSBtdWx0aXBsZSBvZiBwcnVuaW5nLWtlZXAtZXZlcnkuCnNuYXBzaG90LWludGVydmFsID0gMAojIHNuYXBzaG90LWtlZXAtcmVjZW50IHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHJlY2VudCBzbmFwc2hvdHMgdG8ga2VlcCBhbmQgc2VydmUgKDAgdG8ga2VlcCBhbGwpLgpzbmFwc2hvdC1rZWVwLXJlY2VudCA9IDIK"}})],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{516:function(a,t,e){"use strict";e.r(t);var s=e(1),o=Object(s.a)({},(function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"코스모스-허브-3-업그레이드-매뉴얼"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#코스모스-허브-3-업그레이드-매뉴얼"}},[a._v("#")]),a._v(" 코스모스 허브 3 업그레이드 매뉴얼")]),a._v(" "),e("p",[a._v("이 문서는 풀노드 운영자가 "),e("code",[a._v("cosmoshub-3")]),a._v("에서 "),e("code",[a._v("cosmoshub-4")]),a._v(" 업그레이드를 진행하기 위한 과정을 설명합니다.\n텐더민트 팀이 공식적인 업데이트된 제네시스 파일을 업로드할 예정이나, 각 검증인이 해당 제네시스 파일을 각자 검증할 것을 권장합니다.")]),a._v(" "),e("p",[a._v("현재 "),e("code",[a._v("cosmoshub-3")]),a._v("에서는 "),e("code",[a._v("Cosmos Hub 4 Upgrade Proposal")]),a._v("에 대한 사회적 합의가 도달된 것으로 판단됩니다.\n프로포절 #"),e("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/27",target:"_blank",rel:"noopener noreferrer"}},[a._v("27"),e("OutboundLink")],1),a._v(", #"),e("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/35",target:"_blank",rel:"noopener noreferrer"}},[a._v("35"),e("OutboundLink")],1),a._v(" and #"),e("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/36",target:"_blank",rel:"noopener noreferrer"}},[a._v("36"),e("OutboundLink")],1),a._v("의 내용에 따라 업그레이드 과정은 "),e("code",[a._v("2021년 2월 18일, 06:00 UTC")]),a._v("에 진행될 예정입니다.")]),a._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98"}},[a._v("마이그레이션")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%82%AC%EC%A0%84-%EC%A0%95%EB%B3%B4"}},[a._v("사전 정보")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%A3%BC%EC%9A%94-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8"}},[a._v("주요 업데이트")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%9C%84%ED%97%98-%EA%B3%A0%EC%A7%80"}},[a._v("위험 고지")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EB%B3%B5%EA%B5%AC"}},[a._v("복구")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C-%EC%A0%88%EC%B0%A8"}},[a._v("업그레이드 절차")])]),a._v(" "),e("li",[e("a",{attrs:{href:"#%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%A0%9C%EA%B3%B5%EC%9E%90%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B3%B5%EC%A7%80"}},[a._v("서비스 제공자에 대한 공지")])])]),a._v(" "),e("h1",{attrs:{id:"마이그레이션"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#마이그레이션"}},[a._v("#")]),a._v(" 마이그레이션")]),a._v(" "),e("p",[a._v("다음 항목들은 애플리케이션 및 모듈을 코스모스 v0.41 스타게이트로 마이그레이션 하는 절차를 정보를 포함하고 있습니다.")]),a._v(" "),e("p",[a._v("만약 코스모스 허브 또는 코스모스 생태계 블록체인의 블록 익스플로러, 지갑, 거래소, 검증인, 등 서비스 (예, 커스터디 제공자)를 운영하시는 경우, 이번 업그레이드에서 상당한 변경사항이 있음으로 꼭 다음 정보를 참고하십시오.")]),a._v(" "),e("ol",[e("li",[e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.md",target:"_blank",rel:"noopener noreferrer"}},[a._v("앱 및 모듈 마이그레이션"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/chain-upgrade-guide-040.md",target:"_blank",rel:"noopener noreferrer"}},[a._v("코스모스 v0.40 체인 업그레이드 가이드"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/rest.md",target:"_blank",rel:"noopener noreferrer"}},[a._v("REST 엔드포인트 마이그레이션"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("RouterLink",{attrs:{to:"/migration/cosmoshub-3/breaking_changes.html"}},[a._v("각 버전 체인지로그의 breaking change 모음")])],1),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#ibc",target:"_blank",rel:"noopener noreferrer"}},[a._v("Inter-Blockchain Communication (IBC)– 체인간 트랜잭션"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#proto",target:"_blank",rel:"noopener noreferrer"}},[a._v("Protobuf 마이그레이션 – 블록체인 성능 및 개발 과정 개선"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#sync",target:"_blank",rel:"noopener noreferrer"}},[a._v("State Sync – 몇 분 내에 완료되는 노드 동기화"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#light",target:"_blank",rel:"noopener noreferrer"}},[a._v("강력한 기능을 포함한 라이트 클라이언트"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("a",{attrs:{href:"https://figment.io/resources/cosmos-stargate-upgrade-overview/#upgrade",target:"_blank",rel:"noopener noreferrer"}},[a._v("체인 업그레이드 모듈 – 업그레이드 자동화"),e("OutboundLink")],1)])]),a._v(" "),e("p",[a._v("만약 2월 18일 전에 업그레이드 과정을 미리 테스트 진행을 희망하시는 경우 "),e("a",{attrs:{href:"https://github.com/cosmos/gaia/issues/569#issuecomment-767910963",target:"_blank",rel:"noopener noreferrer"}},[a._v("이 글"),e("OutboundLink")],1),a._v("을 참고하세요")]),a._v(" "),e("h2",{attrs:{id:"사전-정보"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#사전-정보"}},[a._v("#")]),a._v(" 사전 정보")]),a._v(" "),e("p",[a._v("지난 코스모스 허브 업그레이드("),e("code",[a._v("cosmoshub-3")]),a._v(") 이후 코스모스 SDK와 Gaia 애플리케이션에 상당한 양의 변경사항이 적용되었습니다.\n변경사항에는 신규 기능, 프로토콜 변경사항, 애플리케이션 구조 변경 등이 포함되었으며, 애플리케이션 개발 과정의 개선이 기대됩니다.")]),a._v(" "),e("p",[a._v("우선, "),e("a",{attrs:{href:"https://github.com/cosmos/ics#ibc-quick-references",target:"_blank",rel:"noopener noreferrer"}},[a._v("인터체인 표준"),e("OutboundLink")],1),a._v("를 따른 "),e("a",{attrs:{href:"https://docs.cosmos.network/main/ibc/overview.html",target:"_blank",rel:"noopener noreferrer"}},[a._v("IBC"),e("OutboundLink")],1),a._v("이 활성화될 예정입니다. 또한 효율성, 노드 동기화, 추후 블록체인 업데이트 과정이 개선됩니다. 자세한 내용은 "),e("a",{attrs:{href:"https://stargate.cosmos.network/",target:"_blank",rel:"noopener noreferrer"}},[a._v("스타게이트 웹사이트"),e("OutboundLink")],1),a._v("를 참고하세요.")]),a._v(" "),e("p",[a._v("__이번 업그레이드에서 풀 노드 운영자 업그레이드를 진행하는 것은 "),e("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[a._v("Gaia"),e("OutboundLink")],1),a._v(" 애플리케이션 v4.0.0입니다. 이번 버전의 Gaia 애플리케이션은 코스모스 SDK v0.41.0 그리고 텐더민트 v0.34.3 기반으로 빌드되었습니다.")]),a._v(" "),e("h2",{attrs:{id:"주요-업데이트"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#주요-업데이트"}},[a._v("#")]),a._v(" 주요 업데이트")]),a._v(" "),e("p",[a._v("이번 SDK의 릴리즈에서는 다수의 기능 및 변경사항이 적용되어 있습니다. 이에 대한 설명은 "),e("a",{attrs:{href:"https://github.com/cosmos/stargate",target:"_blank",rel:"noopener noreferrer"}},[a._v("여기"),e("OutboundLink")],1),a._v("에서 확인하실 수 있습니다.")]),a._v(" "),e("p",[a._v("개발자 또는 클라이언트로서 참고해야할 점은 다음과 같습니다:")]),a._v(" "),e("ul",[e("li",[e("strong",[a._v("프로토콜 버퍼(Protocol BufferS)")]),a._v(": 이전 버전의 코스모스 SDK에서는 인코딩 및 디코딩 과정에서 아미노 코덱을 사용했습니다.\n이번 코스모스 SDK 버전에서는 프로토콜 버퍼가 내장되어있습니다. 프로토콜 버퍼를 통해 애플리케이션은 속도, 가독성, 편의성, 프로그래밍 언어 간 상호호환성 등의 부분에서 상당한 개선이 있을 것으로 기대됩니다. "),e("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/master/docs/migrations/app_and_modules.md#protocol-buffers",target:"_blank",rel:"noopener noreferrer"}},[a._v("더 읽기"),e("OutboundLink")],1)]),a._v(" "),e("li",[e("strong",[a._v("CLI")]),a._v(": 이전 버전의 코스모스 SDK에서는 블록체인의 CLI와 데몬은 별도의 바이너리로 구성되었으며, 실행하는 블록체인 인터랙션에 따라 "),e("code",[a._v("gaiad")]),a._v("와 "),e("code",[a._v("gaiacli")]),a._v(" 바이너리가 구분되었습니다. 이번 버전의 코스모스 SDK에서는 두 바이너리가 하나의 "),e("code",[a._v("gaiad")]),a._v(" 바이너리로 통합되었으며 해당 바이너리 내에서 기존에 "),e("code",[a._v("gaiacli")]),a._v("에서 사용했던 명령어를 지원합니다.")]),a._v(" "),e("li",[e("strong",[a._v("노드 구성")]),a._v(": 이전 버전의 코스모스 SDK에서는 블록체인 데이터와 노드 설정이 "),e("code",[a._v("~/.gaia/")]),a._v("에 저장되었지만, 이번 버전에서는 해당 정보다 "),e("code",[a._v("~/.gaia/")]),a._v(" 디렉토리에 보관됩니다. 만약 블록체인 데이터 또는 노드 설정을 관리하는 스크립트를 사용하시는 경우 해당 스크립트에서 패스를 변경해야합니다.")])]),a._v(" "),e("h2",{attrs:{id:"위험-고지"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#위험-고지"}},[a._v("#")]),a._v(" 위험 고지")]),a._v(" "),e("p",[a._v("검증인이 컨센서스 노드 업그레이드를 진행하는 절차에서 이중서명에 따른 슬래싱의 위험이 존재합니다. 이 과정에서 가장 중요한 것은 검증인을 가동하고 서명을 시작하기 전 소프트웨어 버전을 확인하고 제네시스 파일의 해시를 확인하시기를 바랍니다.")]),a._v(" "),e("p",[a._v("블록체인 검증인이 할 수 있는 가장 위험한 행동은 네트워크 시작 과정에서 존재했던 실수를 인지하고 업그레이드 과정을 처음부터 다시 시작하는 것입니다. 만약 업그레이드 과정에서 실수가 발생했다면 네트워크가 시작되는 것을 기다린 후에 실수를 고치는 것을 권장합니다. 만약 네트워크가 중단되었고 본인의 검증인을 실제 시작된 네트워크가 아닌 다른 제네시스 파일로 가동한 경우, 검증인을 리셋하는 과정에 대해 텐더민트 검증인으로 부터 조언을 구할 것을 권장합니다.")]),a._v(" "),e("h2",{attrs:{id:"복구"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#복구"}},[a._v("#")]),a._v(" 복구")]),a._v(" "),e("p",[a._v("각 검증인은 "),e("code",[a._v("cosmoshub-3")]),a._v(" 상태를 내보내기(export) 전에 내보내는 블록 하이트의 풀 데이터 스냅샷을 진행할 것을 권장합니다. 스냅샷 과정은 각 검증인의 인프라에 따라 다를 수 있지만, 통상 "),e("code",[a._v(".gaia")]),a._v(" 디렉토리를 백업하는 것으로 진행합니다.")]),a._v(" "),e("p",[e("code",[a._v("gaiad")]),a._v(" 프로세스를 멈춘 후 "),e("code",[a._v(".gaia/data/priv_validator_state.json")]),a._v(" 파일을 백업하는 것은 매우 중요합니다. 이 파일은 검증인이 컨센서스 라운드에 참여할 때마다 업데이트됩니다. 만약 업그레이드 과정이 실패하여 이전 체인을 다시 시작해야되는 경우 검증인의 이중서명을 방지하기 위해서 이 파일은 필수입니다.")]),a._v(" "),e("p",[a._v("만약 업그레이드 과정이 실패하는 경우, 검증인과 노드 운영자는 gaia v2.0.15(코스모스 SDK v0.37.15 기반)으로 다운그레이드를 진행하고 가장 최근 진행했던 스냅샷을 복구한 이후에 노드를 시작해야합니다.")]),a._v(" "),e("h2",{attrs:{id:"업그레이드"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#업그레이드"}},[a._v("#")]),a._v(" 업그레이드")]),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": 이 가이드는 코스모스 SDK의 v0.37.15 기반의 gaia v2.0.15를 운영한다는 가정에 작성된 가이드입니다.")]),a._v(" "),e("p",[a._v("Gaia v2.0.15의 버전/커밋 해시값: "),e("code",[a._v("89cf7e6fc166eaabf47ad2755c443d455feda02e")])]),a._v(" "),e("ol",[e("li",[e("p",[a._v("올바른 "),e("em",[a._v("gaiad")]),a._v(" 버전 (v2.0.15)를 운영하고 있는 것을 확인하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"ICQgZ2FpYWQgdmVyc2lvbiAtLWxvbmcKIG5hbWU6IGdhaWEKIHNlcnZlcl9uYW1lOiBnYWlhZAogY2xpZW50X25hbWU6IGdhaWFjbGkKIHZlcnNpb246IDIuMC4xNQogY29tbWl0OiA4OWNmN2U2ZmMxNjZlYWFiZjQ3YWQyNzU1YzQ0M2Q0NTVmZWRhMDJlCiBidWlsZF90YWdzOiBuZXRnbyxsZWRnZXIKIGdvOiBnbyB2ZXJzaW9uIGdvMS4xNSBkYXJ3aW4vYW1kNjQK"}})],1),a._v(" "),e("li",[e("p",[a._v("체인이 올바른 날짜와 시간에 멈추도록 설정하세요:")]),a._v(" "),e("p",[a._v("2021년 2월 18일 06:00 UTC의 UNIX seconds 시간 값: "),e("code",[a._v("1613628000")])]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cGVybCAtaSAtcGUgJ3MvXmhhbHQtdGltZSA9LiovaGFsdC10aW1lID0gMTYxMzYyODAwMC8nIH4vLmdhaWEvY29uZmlnL2FwcC50b21sCg=="}})],1),a._v(" "),e("li",[e("p",[a._v("체인이 멈춘 후 "),e("code",[a._v(".gaia")]),a._v(" 디렉토리를 백업하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bXYgfi8uZ2FpYSAuL2dhaWFkX2JhY2t1cAo="}}),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": 업그레이드 과정이 예상 외로 실패하거나 합의된 시간 내에 새로운 체인에 충분한 보팅 파워가 참여하지 않는 경우를 대비해 검증인과 노드 운영자는 export height의 풀 데이터 스냅샷을 진행하는 것을 권장합니다. 이 경우에는 체인 업그레이드 과정은 보류되고 "),e("code",[a._v("cosmoshub-3")]),a._v("의 운영이 재개됩니다. 해당 과정에 대해서는 "),e("a",{attrs:{href:"#%EB%B3%B5%EA%B5%AC"}},[a._v("복구")]),a._v(" 항목을 참고하세요.")])],1),a._v(" "),e("li",[e("p",[a._v("기존 "),e("code",[a._v("cosmoshub-3")]),a._v("의 상태를 내보내기:")]),a._v(" "),e("p",[a._v("다음 명령어를 사용하여 상태를 내보내기 전 "),e("code",[a._v("gaiad")]),a._v(" 바이너리가 꼭 멈춰있어야 합니다!\n검증인으로서 가장 최근 생성된 블록은 "),e("code",[a._v("~/.gaia/config/data/priv_validator_state.json")]),a._v("에서 확인하실 수 있습니다 (또는 이전 과정에서 백업을 진행한 경우 "),e("code",[a._v("gaiad_backup")]),a._v("). 블록 높이는 다음과 같이 확인하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y2F0IH4vLmdhaWEvY29uZmlnL2RhdGEvcHJpdl92YWxpZGF0b3Jfc3RhdGUuanNvbiB8IGpxICcuaGVpZ2h0Jwo="}}),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZXhwb3J0IC0tZm9yLXplcm8taGVpZ2h0IC0taGVpZ2h0PSZsdDtoZWlnaHQmZ3Q7ICZndDsgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}}),a._v(" "),e("p",[e("em",[a._v("이 과정은 상당한 시간이 (약 1시간) 소요될 수 있습니다")])])],1),a._v(" "),e("li",[e("p",[a._v("내보낸 제네시스 파일의 SHA256 값을 검증하세요:")]),a._v(" "),e("p",[a._v("본인의 제네시스 파일의 값을 네트워크 내 다른 검증인 / 풀 노드 운영자와 비교하세요.\n이 후 과정에서는 모든 인원이 동일한 제네시스 파일을 생성하는 것이 상당이 중요합니다.")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIHwgc2hhc3VtIC1hIDI1NgpbU0hBMjU2X1ZBTFVFXSAgY29zbW9zaHViXzNfZ2VuZXNpc19leHBvcnQuanNvbgo="}})],1),a._v(" "),e("li",[e("p",[a._v("이 단계 까지 오셨다면 올바른 제네시스 상태를 내보내셨습니다! 이후 과정부터는 "),e("a",{attrs:{href:"https://github.com/cosmos/gaia",target:"_blank",rel:"noopener noreferrer"}},[a._v("Gaia"),e("OutboundLink")],1),a._v(" v4.0.0을 필요로 합니다. 그룹 채팅 방의 다른 검증인들/피어와 새로운 제네시스 파일의 해시를 비교/검증하세요.")]),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": Go "),e("a",{attrs:{href:"https://golang.org/dl/",target:"_blank",rel:"noopener noreferrer"}},[a._v("1.15+"),e("OutboundLink")],1),a._v(" 버전이 설치되어야 합니다!")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQgJmFtcDsmYW1wOyBjZCBnYWlhICZhbXA7JmFtcDsgZ2l0IGNoZWNrb3V0IHY0LjAuMDsgbWFrZSBpbnN0YWxsCg=="}})],1),a._v(" "),e("li",[e("p",[a._v("_Gaia_의 올바른 버전(v4.0.0)을 운영하고 있는 것을 확인하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"ICQgZ2FpYWQgdmVyc2lvbiAtLWxvbmcKIG5hbWU6IGdhaWEKIHNlcnZlcl9uYW1lOiBnYWlhZAogdmVyc2lvbjogNC4wLjAKIGNvbW1pdDogMmJiMDQyNjYyNjY1ODY0NjgyNzFjNGFiMzIyMzY3YWNiZjQxMTg4ZgogYnVpbGRfdGFnczogbmV0Z28sbGVkZ2VyCiBnbzogZ28gdmVyc2lvbiBnbzEuMTUgZGFyd2luL2FtZDY0CiBidWlsZF9kZXBzOgogLi4uCg=="}}),a._v(" "),e("p",[a._v("Gaia v4.0.0 버전/커밋 해시 : "),e("code",[a._v("2bb04266266586468271c4ab322367acbf41188f")])])],1),a._v(" "),e("li",[e("p",[a._v("내보낸 상태를 기존 v2.0.15 버전에서 v4.0.0 버전으로 마이그레이션 하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgbWlncmF0ZSBjb3Ntb3NodWJfM19nZW5lc2lzX2V4cG9ydC5qc29uIC0tY2hhaW4taWQ9Y29zbW9zaHViLTQgLS1pbml0aWFsLWhlaWdodCBbbGFzdF9jb3Ntb3NodWItM19ibG9jaysxXSAmZ3Q7IGdlbmVzaXMuanNvbgo="}}),a._v(" "),e("p",[a._v("이 과정은 이전 체인에서 내보낸 상태를 기반으로 "),e("code",[a._v("cosmoshub-4")]),a._v("로 시작하기 위한 "),e("code",[a._v("genesis.json")]),a._v(" 파일을 생성합니다.")])],1),a._v(" "),e("li",[e("p",[a._v("최종 제네시스 JSON의 SHA256 해시 값을 검증하세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"JCBqcSAtUyAtYyAtTSAnJyBnZW5lc2lzLmpzb24gfCBzaGFzdW0gLWEgMjU2CltTSEEyNTZfVkFMVUVdICBnZW5lc2lzLmpzb24K"}}),a._v(" "),e("p",[a._v("해당 값을 네트워크의 다른 검증인 / 풀 노드 운영자와 비교하세요.\n과정에서 모든 참여자가 같은 genesis.json 파일을 생성하는 것이 중요합니다.")])],1),a._v(" "),e("li",[e("p",[a._v("상태 리셋:")]),a._v(" "),e("p",[e("strong",[a._v("참고")]),a._v(": 이 과정을 진행하기 전에 꼭 노드의 상태를 백업하세요. 백업 과정은 "),e("a",{attrs:{href:"#%EB%B3%B5%EA%B5%AC"}},[a._v("복구")]),a._v(" 항복을 참고하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdW5zYWZlLXJlc2V0LWFsbAo="}})],1),a._v(" "),e("li",[e("p",[a._v("새로운 "),e("code",[a._v("genesis.json")]),a._v("을 "),e("code",[a._v(".gaia/config/")]),a._v(" 디렉토리로 옮기세요:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3AgZ2VuZXNpcy5qc29uIH4vLmdhaWEvY29uZmlnLwo="}})],1),a._v(" "),e("li",[e("p",[a._v("블록체인을 가동하세요")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),a._v(" "),e("p",[a._v("Crisis 모듈의 제네시스 상태 자동 검증은 30-120분 소요될 수 있습니다. 해당 기능은 "),e("code",[a._v("gaiad start --x-crisis-skip-assert-invariants")]),a._v("로 비활성화할 수 있습니다.")])],1)]),a._v(" "),e("h2",{attrs:{id:"서비스-제공자를-위한-정보"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#서비스-제공자를-위한-정보"}},[a._v("#")]),a._v(" 서비스 제공자를 위한 정보")]),a._v(" "),e("h1",{attrs:{id:"rest-서버"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rest-서버"}},[a._v("#")]),a._v(" REST 서버")]),a._v(" "),e("p",[a._v("만약 이전까지 "),e("code",[a._v("gaiacli rest-server")]),a._v(" 명령어로 REST 서버를 구동하신 경우, 해당 명령어는 이번 버전부터 비활성화 됩니다. API 서버는 데몬 내에서 활성화되며, "),e("code",[a._v(".gaia/config/app.toml")]),a._v(" 설정 내에서 활성화됩니다:")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"W2FwaV0KIyBFbmFibGUgZGVmaW5lcyBpZiB0aGUgQVBJIHNlcnZlciBzaG91bGQgYmUgZW5hYmxlZC4KZW5hYmxlID0gZmFsc2UKIyBTd2FnZ2VyIGRlZmluZXMgaWYgc3dhZ2dlciBkb2N1bWVudGF0aW9uIHNob3VsZCBhdXRvbWF0aWNhbGx5IGJlIHJlZ2lzdGVyZWQuCnN3YWdnZXIgPSBmYWxzZQo="}}),a._v(" "),e("p",[e("code",[a._v("swagger")]),a._v(" 설정은 Swagger 문서 API를 활성화/비활성화 하는 여부를 관리합니다 (예, /swagger/ API 엔드포인트)")]),a._v(" "),e("h1",{attrs:{id:"grpc-설정"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#grpc-설정"}},[a._v("#")]),a._v(" gRPC 설정")]),a._v(" "),e("p",[a._v("gRPC 설정은 "),e("code",[a._v(".gaia/config/app.toml")]),a._v("에 있습니다.")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"W2dycGNdCiMgRW5hYmxlIGRlZmluZXMgaWYgdGhlIGdSUEMgc2VydmVyIHNob3VsZCBiZSBlbmFibGVkLgplbmFibGUgPSB0cnVlCiMgQWRkcmVzcyBkZWZpbmVzIHRoZSBnUlBDIHNlcnZlciBhZGRyZXNzIHRvIGJpbmQgdG8uCmFkZHJlc3MgPSAmcXVvdDswLjAuMC4wOjkwOTAmcXVvdDsK"}}),a._v(" "),e("h1",{attrs:{id:"스테이트-싱크"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#스테이트-싱크"}},[a._v("#")]),a._v(" 스테이트 싱크")]),a._v(" "),e("p",[a._v("스테이트 싱크 설정은 "),e("code",[a._v(".gaia/config/app.toml")]),a._v("에 있습니다.")]),a._v(" "),e("tm-code-block",{staticClass:"codeblock",attrs:{language:"yaml",base64:"IyBTdGF0ZSBzeW5jIHNuYXBzaG90cyBhbGxvdyBvdGhlciBub2RlcyB0byByYXBpZGx5IGpvaW4gdGhlIG5ldHdvcmsgd2l0aG91dCByZXBsYXlpbmcgaGlzdG9yaWNhbAojIGJsb2NrcywgaW5zdGVhZCBkb3dubG9hZGluZyBhbmQgYXBwbHlpbmcgYSBzbmFwc2hvdCBvZiB0aGUgYXBwbGljYXRpb24gc3RhdGUgYXQgYSBnaXZlbiBoZWlnaHQuCltzdGF0ZS1zeW5jXQojIHNuYXBzaG90LWludGVydmFsIHNwZWNpZmllcyB0aGUgYmxvY2sgaW50ZXJ2YWwgYXQgd2hpY2ggbG9jYWwgc3RhdGUgc3luYyBzbmFwc2hvdHMgYXJlCiMgdGFrZW4gKDAgdG8gZGlzYWJsZSkuIE11c3QgYmUgYSBtdWx0aXBsZSBvZiBwcnVuaW5nLWtlZXAtZXZlcnkuCnNuYXBzaG90LWludGVydmFsID0gMAojIHNuYXBzaG90LWtlZXAtcmVjZW50IHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHJlY2VudCBzbmFwc2hvdHMgdG8ga2VlcCBhbmQgc2VydmUgKDAgdG8ga2VlcCBhbGwpLgpzbmFwc2hvdC1rZWVwLXJlY2VudCA9IDIK"}})],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/main/assets/js/154.aa0a518c.js b/main/assets/js/154.9fd96cad.js similarity index 99% rename from main/assets/js/154.aa0a518c.js rename to main/assets/js/154.9fd96cad.js index 4f575d8c8b6..8a27aa18adf 100644 --- a/main/assets/js/154.aa0a518c.js +++ b/main/assets/js/154.9fd96cad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{512:function(e,a,t){"use strict";t.r(a);var r=t(1),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cosmos-hub-4-gaia-v11-upgrade-instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-gaia-v11-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, Gaia v11 Upgrade, Instructions")]),e._v(" "),t("p",[e._v("This document describes the steps for validators and full node operators, to upgrade successfully to the Gaia v11 release.\nFor more details on the release, please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions"}},[e._v("#")]),e._v(" Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#cosmos-hub-4-gaia-v11-upgrade-instructions"}},[e._v("Cosmos Hub 4, Gaia v11 Upgrade, Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#instructions"}},[e._v("Instructions")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-date"}},[e._v("Upgrade date")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#current-runtime"}},[e._v("Current runtime")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#target-runtime"}},[e._v("Target runtime")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-steps"}},[e._v("Upgrade steps")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: Manual Upgrade")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("Method II: Upgrade using Cosmovisor")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#manually-preparing-the-binary"}},[e._v("Manually preparing the binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("Auto-Downloading the Gaia binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),t("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/804",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 804"),t("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which is still in its voting period. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),t("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-date"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-date"}},[e._v("#")]),e._v(" Upgrade date")]),e._v(" "),t("p",[e._v("The upgrade will take place at a block height of "),t("code",[e._v("16596000")]),e._v(". The date/time of the upgrade is subject to change as blocks are not generated at a constant interval. You can stay up-to-date using this "),t("a",{attrs:{href:"https://www.mintscan.io/cosmos/blocks/16596000",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),t("OutboundLink")],1),e._v(" page.")]),e._v(" "),t("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),t("p",[e._v("The chain-id of the network will remain the same, "),t("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),t("h2",{attrs:{id:"preparing-for-the-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),t("h3",{attrs:{id:"system-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),t("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),t("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),t("h3",{attrs:{id:"backups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),t("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),t("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("upgrade using cosmovisor")]),e._v(" section.")]),e._v(" "),t("p",[e._v("It is critically important for validator operators to back-up the "),t("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),t("h3",{attrs:{id:"testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),t("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can run a "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local",target:"_blank",rel:"noopener noreferrer"}},[e._v("v11 Local Testnet"),t("OutboundLink")],1),e._v(" or join in our "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/public",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Hub Public Testnet"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"current-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime"}},[e._v("#")]),e._v(" Current runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v10.0.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v10.0.2"),t("OutboundLink")],1),e._v(". We anticipate that operators who are running on v10.0.x, will be able to upgrade successfully. Validators are expected to ensure that their systems are up to date and capable of performing the upgrade. This includes running the correct binary, or if building from source, building with go "),t("code",[e._v("1.20")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"target-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime"}},[e._v("#")]),e._v(" Target runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", will run "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v11.0.0"),t("OutboundLink")],1),e._v(". Operators "),t("em",[t("strong",[e._v("MUST")])]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-steps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-steps"}},[e._v("#")]),e._v(" Upgrade steps")]),e._v(" "),t("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),t("ul",[t("li",[e._v("Manual upgrade")]),e._v(" "),t("li",[e._v("Upgrade using "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/tree/master/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),t("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),t("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),t("h3",{attrs:{id:"method-i-manual-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: Manual Upgrade")]),e._v(" "),t("p",[e._v("Make sure Gaia v11.0.0 is installed by either downloading a "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("compatible binary"),t("OutboundLink")],1),e._v(", or building from source. Building from source requires "),t("strong",[e._v("Golang 1.20")]),e._v(".")]),e._v(" "),t("p",[e._v("Run Gaia v10.0.x till upgrade height, the node will panic:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djExJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2NTk2MDAwOiB1cGdyYWRlIHRvIHYxMSBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTEmcXVvdDsgYXQgaGVpZ2h0OjE2NTk2MDAwCg=="}}),e._v(" "),t("p",[e._v("Stop the node, and switch the binary to Gaia v11.0.0 and re-start by "),t("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),t("p",[e._v("It may take several minutes to a few hours until validators with a total sum voting power > 2/3 to complete their node upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),t("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("#")]),e._v(" Method II: Upgrade using Cosmovisor")]),e._v(" "),t("h3",{attrs:{id:"manually-preparing-the-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manually-preparing-the-binary"}},[e._v("#")]),e._v(" Manually preparing the binary")]),e._v(" "),t("h5",{attrs:{id:"preparation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),t("p",[t("strong",[e._v("Verify Cosmovisor Version")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciB2ZXJzaW9uCmNvc21vdmlzb3IgdmVyc2lvbjogdjEuNS4wCg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a Cosmovisor folder inside "),t("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v9.1.1 into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("p",[e._v("build Gaia v11.0.0, and move gaiad v11.0.0 to "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v11/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTEvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTEvYmluCg=="}}),e._v(" "),t("p",[e._v("Then you should get the following structure:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTAuMC54CuKUlOKUgOKUgCB1cGdyYWRlcwogICAg4pSU4pSA4pSAIHYxMQogICAgICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICAgICAg4pSU4pSA4pSAIGdhaWFkICAjdjExLjAuMAo="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCiMgcGxlYXNlIG5vdGUgYERBRU1PTl9IT01FYCBoYXMgdG8gYmUgYWJzb2x1dGUgcGF0aApleHBvcnQgREFFTU9OX0hPTUU9JEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gIHN0YXJ0IC0teC1jcmlzaXMtc2tpcC1hc3NlcnQtaW52YXJpYW50cyAtLWhvbWUgJERBRU1PTl9IT01FCg=="}}),e._v(" "),t("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),t("h4",{attrs:{id:"expected-upgrade-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, Gaia will panic and stop:")]),e._v(" "),t("p",[e._v("This may take 7 minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their node upgrades.")]),e._v(" "),t("h3",{attrs:{id:"auto-downloading-the-gaia-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("#")]),e._v(" Auto-Downloading the Gaia binary")]),e._v(" "),t("p",[t("strong",[e._v("This method is not recommended!")])]),e._v(" "),t("h4",{attrs:{id:"preparation-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v10.0.x into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTAuMC54Cg=="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0kR0FJQV9IT01FCmV4cG9ydCBEQUVNT05fUkVTVEFSVF9BRlRFUl9VUEdSQURFPXRydWUKZXhwb3J0IERBRU1PTl9BTExPV19ET1dOTE9BRF9CSU5BUklFUz10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gc3RhcnQgLS14LWNyaXNpcy1za2lwLWFzc2VydC1pbnZhcmlhbnRzIC0taG9tZSAkREFFTU9OX0hPTUUK"}}),e._v(" "),t("p",[e._v("Skipping the invariant checks can help decrease the upgrade time significantly.")]),e._v(" "),t("h4",{attrs:{id:"expected-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djExJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2NTk2MDAwOiB1cGdyYWRlIHRvIHYxMSBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTEmcXVvdDsgYXQgaGVpZ2h0OjE2NTk2MDAwCg=="}}),e._v(" "),t("p",[e._v("Then the Cosmovisor will create "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v11/bin")]),e._v(" and download the Gaia v11.0.0 binary to this folder according to links in the "),t("code",[e._v("--info")]),e._v(" field of the upgrade proposal.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),t("p",[t("em",[e._v("Please Note:")])]),e._v(" "),t("ul",[t("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),t("li",[e._v("Users should run their node on v10.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.")])]),e._v(" "),t("h2",{attrs:{id:"upgrade-duration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),t("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),t("h2",{attrs:{id:"rollback-plan"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),t("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),t("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v10.0.2 binary using the following command:")]),e._v(" "),t("blockquote",[t("p",[e._v("gaiad start --unsafe-skip-upgrade 16596000")])]),e._v(" "),t("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),t("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),t("h2",{attrs:{id:"communications"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),t("p",[e._v("Operators are encouraged to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel can be sent to the "),t("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),t("h2",{attrs:{id:"risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),t("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),t("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),t("h2",{attrs:{id:"reference"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("Join Cosmos Hub Mainnet"),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{511:function(e,a,t){"use strict";t.r(a);var r=t(1),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cosmos-hub-4-gaia-v11-upgrade-instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-gaia-v11-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, Gaia v11 Upgrade, Instructions")]),e._v(" "),t("p",[e._v("This document describes the steps for validators and full node operators, to upgrade successfully to the Gaia v11 release.\nFor more details on the release, please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions"}},[e._v("#")]),e._v(" Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#cosmos-hub-4-gaia-v11-upgrade-instructions"}},[e._v("Cosmos Hub 4, Gaia v11 Upgrade, Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#instructions"}},[e._v("Instructions")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-date"}},[e._v("Upgrade date")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#current-runtime"}},[e._v("Current runtime")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#target-runtime"}},[e._v("Target runtime")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-steps"}},[e._v("Upgrade steps")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: Manual Upgrade")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("Method II: Upgrade using Cosmovisor")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#manually-preparing-the-binary"}},[e._v("Manually preparing the binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("Auto-Downloading the Gaia binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),t("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/804",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 804"),t("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which is still in its voting period. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),t("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-date"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-date"}},[e._v("#")]),e._v(" Upgrade date")]),e._v(" "),t("p",[e._v("The upgrade will take place at a block height of "),t("code",[e._v("16596000")]),e._v(". The date/time of the upgrade is subject to change as blocks are not generated at a constant interval. You can stay up-to-date using this "),t("a",{attrs:{href:"https://www.mintscan.io/cosmos/blocks/16596000",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),t("OutboundLink")],1),e._v(" page.")]),e._v(" "),t("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),t("p",[e._v("The chain-id of the network will remain the same, "),t("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),t("h2",{attrs:{id:"preparing-for-the-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),t("h3",{attrs:{id:"system-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),t("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),t("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),t("h3",{attrs:{id:"backups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),t("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),t("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("upgrade using cosmovisor")]),e._v(" section.")]),e._v(" "),t("p",[e._v("It is critically important for validator operators to back-up the "),t("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),t("h3",{attrs:{id:"testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),t("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can run a "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local",target:"_blank",rel:"noopener noreferrer"}},[e._v("v11 Local Testnet"),t("OutboundLink")],1),e._v(" or join in our "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/public",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Hub Public Testnet"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"current-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime"}},[e._v("#")]),e._v(" Current runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v10.0.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v10.0.2"),t("OutboundLink")],1),e._v(". We anticipate that operators who are running on v10.0.x, will be able to upgrade successfully. Validators are expected to ensure that their systems are up to date and capable of performing the upgrade. This includes running the correct binary, or if building from source, building with go "),t("code",[e._v("1.20")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"target-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime"}},[e._v("#")]),e._v(" Target runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", will run "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v11.0.0"),t("OutboundLink")],1),e._v(". Operators "),t("em",[t("strong",[e._v("MUST")])]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-steps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-steps"}},[e._v("#")]),e._v(" Upgrade steps")]),e._v(" "),t("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),t("ul",[t("li",[e._v("Manual upgrade")]),e._v(" "),t("li",[e._v("Upgrade using "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/tree/master/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),t("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),t("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),t("h3",{attrs:{id:"method-i-manual-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: Manual Upgrade")]),e._v(" "),t("p",[e._v("Make sure Gaia v11.0.0 is installed by either downloading a "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("compatible binary"),t("OutboundLink")],1),e._v(", or building from source. Building from source requires "),t("strong",[e._v("Golang 1.20")]),e._v(".")]),e._v(" "),t("p",[e._v("Run Gaia v10.0.x till upgrade height, the node will panic:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djExJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2NTk2MDAwOiB1cGdyYWRlIHRvIHYxMSBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTEmcXVvdDsgYXQgaGVpZ2h0OjE2NTk2MDAwCg=="}}),e._v(" "),t("p",[e._v("Stop the node, and switch the binary to Gaia v11.0.0 and re-start by "),t("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),t("p",[e._v("It may take several minutes to a few hours until validators with a total sum voting power > 2/3 to complete their node upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),t("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("#")]),e._v(" Method II: Upgrade using Cosmovisor")]),e._v(" "),t("h3",{attrs:{id:"manually-preparing-the-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manually-preparing-the-binary"}},[e._v("#")]),e._v(" Manually preparing the binary")]),e._v(" "),t("h5",{attrs:{id:"preparation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),t("p",[t("strong",[e._v("Verify Cosmovisor Version")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciB2ZXJzaW9uCmNvc21vdmlzb3IgdmVyc2lvbjogdjEuNS4wCg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a Cosmovisor folder inside "),t("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v9.1.1 into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("p",[e._v("build Gaia v11.0.0, and move gaiad v11.0.0 to "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v11/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTEvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTEvYmluCg=="}}),e._v(" "),t("p",[e._v("Then you should get the following structure:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTAuMC54CuKUlOKUgOKUgCB1cGdyYWRlcwogICAg4pSU4pSA4pSAIHYxMQogICAgICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICAgICAg4pSU4pSA4pSAIGdhaWFkICAjdjExLjAuMAo="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCiMgcGxlYXNlIG5vdGUgYERBRU1PTl9IT01FYCBoYXMgdG8gYmUgYWJzb2x1dGUgcGF0aApleHBvcnQgREFFTU9OX0hPTUU9JEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gIHN0YXJ0IC0teC1jcmlzaXMtc2tpcC1hc3NlcnQtaW52YXJpYW50cyAtLWhvbWUgJERBRU1PTl9IT01FCg=="}}),e._v(" "),t("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),t("h4",{attrs:{id:"expected-upgrade-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, Gaia will panic and stop:")]),e._v(" "),t("p",[e._v("This may take 7 minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their node upgrades.")]),e._v(" "),t("h3",{attrs:{id:"auto-downloading-the-gaia-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("#")]),e._v(" Auto-Downloading the Gaia binary")]),e._v(" "),t("p",[t("strong",[e._v("This method is not recommended!")])]),e._v(" "),t("h4",{attrs:{id:"preparation-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v10.0.x into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTAuMC54Cg=="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0kR0FJQV9IT01FCmV4cG9ydCBEQUVNT05fUkVTVEFSVF9BRlRFUl9VUEdSQURFPXRydWUKZXhwb3J0IERBRU1PTl9BTExPV19ET1dOTE9BRF9CSU5BUklFUz10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gc3RhcnQgLS14LWNyaXNpcy1za2lwLWFzc2VydC1pbnZhcmlhbnRzIC0taG9tZSAkREFFTU9OX0hPTUUK"}}),e._v(" "),t("p",[e._v("Skipping the invariant checks can help decrease the upgrade time significantly.")]),e._v(" "),t("h4",{attrs:{id:"expected-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djExJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2NTk2MDAwOiB1cGdyYWRlIHRvIHYxMSBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTEmcXVvdDsgYXQgaGVpZ2h0OjE2NTk2MDAwCg=="}}),e._v(" "),t("p",[e._v("Then the Cosmovisor will create "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v11/bin")]),e._v(" and download the Gaia v11.0.0 binary to this folder according to links in the "),t("code",[e._v("--info")]),e._v(" field of the upgrade proposal.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),t("p",[t("em",[e._v("Please Note:")])]),e._v(" "),t("ul",[t("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),t("li",[e._v("Users should run their node on v10.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.")])]),e._v(" "),t("h2",{attrs:{id:"upgrade-duration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),t("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),t("h2",{attrs:{id:"rollback-plan"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),t("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),t("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v10.0.2 binary using the following command:")]),e._v(" "),t("blockquote",[t("p",[e._v("gaiad start --unsafe-skip-upgrade 16596000")])]),e._v(" "),t("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),t("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),t("h2",{attrs:{id:"communications"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),t("p",[e._v("Operators are encouraged to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel can be sent to the "),t("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),t("h2",{attrs:{id:"risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),t("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),t("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),t("h2",{attrs:{id:"reference"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("Join Cosmos Hub Mainnet"),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/155.2f40ab7f.js b/main/assets/js/155.12c3d9b7.js similarity index 99% rename from main/assets/js/155.2f40ab7f.js rename to main/assets/js/155.12c3d9b7.js index 02fbde22cd1..9ea30a3b9b6 100644 --- a/main/assets/js/155.2f40ab7f.js +++ b/main/assets/js/155.12c3d9b7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{511:function(e,a,t){"use strict";t.r(a);var r=t(1),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cosmos-hub-4-gaia-v12-upgrade-instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-gaia-v12-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, Gaia v12 Upgrade, Instructions")]),e._v(" "),t("p",[e._v("This document describes the steps for validators and full node operators, to upgrade successfully to the Gaia v12 release.\nFor more details on the release, please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions"}},[e._v("#")]),e._v(" Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#cosmos-hub-4-gaia-v12-upgrade-instructions"}},[e._v("Cosmos Hub 4, Gaia v12 Upgrade, Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#instructions"}},[e._v("Instructions")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#liquid-staking"}},[e._v("Liquid Staking")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-date"}},[e._v("Upgrade date")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#current-runtime"}},[e._v("Current runtime")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#target-runtime"}},[e._v("Target runtime")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-steps"}},[e._v("Upgrade steps")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: Manual Upgrade")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("Method II: Upgrade using Cosmovisor")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#manually-preparing-the-binary"}},[e._v("Manually preparing the binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("Auto-Downloading the Gaia binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),t("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/821",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 821"),t("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which is still in its voting period. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),t("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),t("h2",{attrs:{id:"liquid-staking"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#liquid-staking"}},[e._v("#")]),e._v(" Liquid Staking")]),e._v(" "),t("p",[e._v("Validators please be aware that this release will include a new liquid staking module which has been included via the Cosmos SDK. Please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1),e._v(" for v12 for more information about this module.")]),e._v(" "),t("p",[t("strong",[e._v("IMPORTANT:")]),e._v(" Inclusion of this module requires validators to set a validation-bond to be eligiable for Liquid Staked delegations. Please see the "),t("RouterLink",{attrs:{to:"/validators/validator-faq.html#liquid-staking-module"}},[e._v("Validator FAQ")]),e._v(" for more information.")],1),e._v(" "),t("h2",{attrs:{id:"upgrade-date"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-date"}},[e._v("#")]),e._v(" Upgrade date")]),e._v(" "),t("p",[e._v("The upgrade will take place at a block height of "),t("code",[e._v("16985500")]),e._v(". The date/time of the upgrade is subject to change as blocks are not generated at a constant interval. You can stay up-to-date using this "),t("a",{attrs:{href:"https://www.mintscan.io/cosmos/blocks/16985500",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),t("OutboundLink")],1),e._v(" page.")]),e._v(" "),t("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),t("p",[e._v("The chain-id of the network will remain the same, "),t("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),t("h2",{attrs:{id:"preparing-for-the-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),t("h3",{attrs:{id:"system-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),t("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),t("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),t("h3",{attrs:{id:"backups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),t("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),t("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("upgrade using cosmovisor")]),e._v(" section.")]),e._v(" "),t("p",[e._v("It is critically important for validator operators to back-up the "),t("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),t("h3",{attrs:{id:"testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),t("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can run a "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local",target:"_blank",rel:"noopener noreferrer"}},[e._v("v12 Local Testnet"),t("OutboundLink")],1),e._v(" or join in our "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/public",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Hub Public Testnet"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"current-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime"}},[e._v("#")]),e._v(" Current runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v11.0.0"),t("OutboundLink")],1),e._v(". We anticipate that operators who are running on v11.0.x, will be able to upgrade successfully. Validators are expected to ensure that their systems are up to date and capable of performing the upgrade. This includes running the correct binary, or if building from source, building with go "),t("code",[e._v("1.20")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"target-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime"}},[e._v("#")]),e._v(" Target runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", will run "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v12.0.0"),t("OutboundLink")],1),e._v(". Operators "),t("em",[t("strong",[e._v("MUST")])]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-steps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-steps"}},[e._v("#")]),e._v(" Upgrade steps")]),e._v(" "),t("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),t("ul",[t("li",[e._v("Manual upgrade")]),e._v(" "),t("li",[e._v("Upgrade using "),t("a",{attrs:{href:"https://pkg.go.dev/cosmossdk.io/tools/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),t("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),t("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),t("h3",{attrs:{id:"method-i-manual-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: Manual Upgrade")]),e._v(" "),t("p",[e._v("Make sure Gaia v12.0.0 is installed by either downloading a "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("compatible binary"),t("OutboundLink")],1),e._v(", or building from source. Building from source requires "),t("strong",[e._v("Golang 1.20")]),e._v(".")]),e._v(" "),t("p",[e._v("Run Gaia v11.0.0 till upgrade height, the node will panic:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEyJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2OTg1NTAwOiB1cGdyYWRlIHRvIHYxMiBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTImcXVvdDsgYXQgaGVpZ2h0OjE2OTg1NTAwCg=="}}),e._v(" "),t("p",[e._v("Stop the node, and switch the binary to Gaia v12.0.0 and re-start by "),t("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),t("p",[e._v("It may take several minutes to a few hours until validators with a total sum voting power > 2/3 to complete their node upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),t("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("#")]),e._v(" Method II: Upgrade using Cosmovisor")]),e._v(" "),t("h3",{attrs:{id:"manually-preparing-the-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manually-preparing-the-binary"}},[e._v("#")]),e._v(" Manually preparing the binary")]),e._v(" "),t("h5",{attrs:{id:"preparation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[t("strong",[e._v("Verify Cosmovisor Version")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciB2ZXJzaW9uCmNvc21vdmlzb3IgdmVyc2lvbjogdjEuNS4wCg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a Cosmovisor folder inside "),t("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v11.0.0 into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("p",[e._v("build Gaia v12.0.0, and move gaiad v12.0.0 to "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v12/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTIvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTIvYmluCg=="}}),e._v(" "),t("p",[e._v("Then you should get the following structure:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTEuMC54CuKUlOKUgOKUgCB1cGdyYWRlcwogICAg4pSU4pSA4pSAIHYxMgogICAgICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICAgICAg4pSU4pSA4pSAIGdhaWFkICAjdjEyLjAuMAo="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCiMgcGxlYXNlIG5vdGUgYERBRU1PTl9IT01FYCBoYXMgdG8gYmUgYWJzb2x1dGUgcGF0aApleHBvcnQgREFFTU9OX0hPTUU9JEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gIHN0YXJ0IC0teC1jcmlzaXMtc2tpcC1hc3NlcnQtaW52YXJpYW50cyAtLWhvbWUgJERBRU1PTl9IT01FCg=="}}),e._v(" "),t("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),t("h4",{attrs:{id:"expected-upgrade-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, Gaia will panic and stop:")]),e._v(" "),t("p",[e._v("This may take 7 minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their node upgrades.")]),e._v(" "),t("h3",{attrs:{id:"auto-downloading-the-gaia-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("#")]),e._v(" Auto-Downloading the Gaia binary")]),e._v(" "),t("p",[t("strong",[e._v("This method is not recommended!")])]),e._v(" "),t("h4",{attrs:{id:"preparation-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v11.0.x into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTEuMC54Cg=="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0kR0FJQV9IT01FCmV4cG9ydCBEQUVNT05fUkVTVEFSVF9BRlRFUl9VUEdSQURFPXRydWUKZXhwb3J0IERBRU1PTl9BTExPV19ET1dOTE9BRF9CSU5BUklFUz10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gc3RhcnQgLS14LWNyaXNpcy1za2lwLWFzc2VydC1pbnZhcmlhbnRzIC0taG9tZSAkREFFTU9OX0hPTUUK"}}),e._v(" "),t("p",[e._v("Skipping the invariant checks can help decrease the upgrade time significantly.")]),e._v(" "),t("h4",{attrs:{id:"expected-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEyJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2OTg1NTAwOiB1cGdyYWRlIHRvIHYxMiBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTImcXVvdDsgYXQgaGVpZ2h0OjE2OTg1NTAwCg=="}}),e._v(" "),t("p",[e._v("Then the Cosmovisor will create "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v12/bin")]),e._v(" and download the Gaia v12.0.0 binary to this folder according to links in the "),t("code",[e._v("--info")]),e._v(" field of the upgrade proposal.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),t("p",[t("em",[e._v("Please Note:")])]),e._v(" "),t("ul",[t("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),t("li",[e._v("Users should run their node on v11.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.")])]),e._v(" "),t("h2",{attrs:{id:"upgrade-duration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),t("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),t("h2",{attrs:{id:"rollback-plan"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),t("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),t("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v11.0.0 binary using the following command:")]),e._v(" "),t("blockquote",[t("p",[e._v("gaiad start --unsafe-skip-upgrade 16985500")])]),e._v(" "),t("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),t("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),t("h2",{attrs:{id:"communications"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),t("p",[e._v("Operators are encouraged to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel can be sent to the "),t("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),t("h2",{attrs:{id:"risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),t("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),t("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),t("h2",{attrs:{id:"reference"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("Join Cosmos Hub Mainnet"),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{512:function(e,a,t){"use strict";t.r(a);var r=t(1),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cosmos-hub-4-gaia-v12-upgrade-instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-gaia-v12-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, Gaia v12 Upgrade, Instructions")]),e._v(" "),t("p",[e._v("This document describes the steps for validators and full node operators, to upgrade successfully to the Gaia v12 release.\nFor more details on the release, please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions"}},[e._v("#")]),e._v(" Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#cosmos-hub-4-gaia-v12-upgrade-instructions"}},[e._v("Cosmos Hub 4, Gaia v12 Upgrade, Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#instructions"}},[e._v("Instructions")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#liquid-staking"}},[e._v("Liquid Staking")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-date"}},[e._v("Upgrade date")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#current-runtime"}},[e._v("Current runtime")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#target-runtime"}},[e._v("Target runtime")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-steps"}},[e._v("Upgrade steps")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: Manual Upgrade")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("Method II: Upgrade using Cosmovisor")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#manually-preparing-the-binary"}},[e._v("Manually preparing the binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("Auto-Downloading the Gaia binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),t("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/821",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 821"),t("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which is still in its voting period. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),t("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),t("h2",{attrs:{id:"liquid-staking"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#liquid-staking"}},[e._v("#")]),e._v(" Liquid Staking")]),e._v(" "),t("p",[e._v("Validators please be aware that this release will include a new liquid staking module which has been included via the Cosmos SDK. Please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1),e._v(" for v12 for more information about this module.")]),e._v(" "),t("p",[t("strong",[e._v("IMPORTANT:")]),e._v(" Inclusion of this module requires validators to set a validation-bond to be eligiable for Liquid Staked delegations. Please see the "),t("RouterLink",{attrs:{to:"/validators/validator-faq.html#liquid-staking-module"}},[e._v("Validator FAQ")]),e._v(" for more information.")],1),e._v(" "),t("h2",{attrs:{id:"upgrade-date"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-date"}},[e._v("#")]),e._v(" Upgrade date")]),e._v(" "),t("p",[e._v("The upgrade will take place at a block height of "),t("code",[e._v("16985500")]),e._v(". The date/time of the upgrade is subject to change as blocks are not generated at a constant interval. You can stay up-to-date using this "),t("a",{attrs:{href:"https://www.mintscan.io/cosmos/blocks/16985500",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),t("OutboundLink")],1),e._v(" page.")]),e._v(" "),t("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),t("p",[e._v("The chain-id of the network will remain the same, "),t("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),t("h2",{attrs:{id:"preparing-for-the-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),t("h3",{attrs:{id:"system-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),t("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),t("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),t("h3",{attrs:{id:"backups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),t("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),t("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("upgrade using cosmovisor")]),e._v(" section.")]),e._v(" "),t("p",[e._v("It is critically important for validator operators to back-up the "),t("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),t("h3",{attrs:{id:"testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),t("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can run a "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local",target:"_blank",rel:"noopener noreferrer"}},[e._v("v12 Local Testnet"),t("OutboundLink")],1),e._v(" or join in our "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/public",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Hub Public Testnet"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"current-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime"}},[e._v("#")]),e._v(" Current runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v11.0.0"),t("OutboundLink")],1),e._v(". We anticipate that operators who are running on v11.0.x, will be able to upgrade successfully. Validators are expected to ensure that their systems are up to date and capable of performing the upgrade. This includes running the correct binary, or if building from source, building with go "),t("code",[e._v("1.20")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"target-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime"}},[e._v("#")]),e._v(" Target runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", will run "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v12.0.0"),t("OutboundLink")],1),e._v(". Operators "),t("em",[t("strong",[e._v("MUST")])]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-steps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-steps"}},[e._v("#")]),e._v(" Upgrade steps")]),e._v(" "),t("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),t("ul",[t("li",[e._v("Manual upgrade")]),e._v(" "),t("li",[e._v("Upgrade using "),t("a",{attrs:{href:"https://pkg.go.dev/cosmossdk.io/tools/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),t("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),t("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),t("h3",{attrs:{id:"method-i-manual-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: Manual Upgrade")]),e._v(" "),t("p",[e._v("Make sure Gaia v12.0.0 is installed by either downloading a "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("compatible binary"),t("OutboundLink")],1),e._v(", or building from source. Building from source requires "),t("strong",[e._v("Golang 1.20")]),e._v(".")]),e._v(" "),t("p",[e._v("Run Gaia v11.0.0 till upgrade height, the node will panic:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEyJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2OTg1NTAwOiB1cGdyYWRlIHRvIHYxMiBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTImcXVvdDsgYXQgaGVpZ2h0OjE2OTg1NTAwCg=="}}),e._v(" "),t("p",[e._v("Stop the node, and switch the binary to Gaia v12.0.0 and re-start by "),t("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),t("p",[e._v("It may take several minutes to a few hours until validators with a total sum voting power > 2/3 to complete their node upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),t("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("#")]),e._v(" Method II: Upgrade using Cosmovisor")]),e._v(" "),t("h3",{attrs:{id:"manually-preparing-the-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manually-preparing-the-binary"}},[e._v("#")]),e._v(" Manually preparing the binary")]),e._v(" "),t("h5",{attrs:{id:"preparation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[t("strong",[e._v("Verify Cosmovisor Version")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciB2ZXJzaW9uCmNvc21vdmlzb3IgdmVyc2lvbjogdjEuNS4wCg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a Cosmovisor folder inside "),t("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v11.0.0 into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("p",[e._v("build Gaia v12.0.0, and move gaiad v12.0.0 to "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v12/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTIvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTIvYmluCg=="}}),e._v(" "),t("p",[e._v("Then you should get the following structure:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTEuMC54CuKUlOKUgOKUgCB1cGdyYWRlcwogICAg4pSU4pSA4pSAIHYxMgogICAgICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICAgICAg4pSU4pSA4pSAIGdhaWFkICAjdjEyLjAuMAo="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCiMgcGxlYXNlIG5vdGUgYERBRU1PTl9IT01FYCBoYXMgdG8gYmUgYWJzb2x1dGUgcGF0aApleHBvcnQgREFFTU9OX0hPTUU9JEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gIHN0YXJ0IC0teC1jcmlzaXMtc2tpcC1hc3NlcnQtaW52YXJpYW50cyAtLWhvbWUgJERBRU1PTl9IT01FCg=="}}),e._v(" "),t("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),t("h4",{attrs:{id:"expected-upgrade-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, Gaia will panic and stop:")]),e._v(" "),t("p",[e._v("This may take 7 minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their node upgrades.")]),e._v(" "),t("h3",{attrs:{id:"auto-downloading-the-gaia-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("#")]),e._v(" Auto-Downloading the Gaia binary")]),e._v(" "),t("p",[t("strong",[e._v("This method is not recommended!")])]),e._v(" "),t("h4",{attrs:{id:"preparation-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v11.0.x into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTEuMC54Cg=="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0kR0FJQV9IT01FCmV4cG9ydCBEQUVNT05fUkVTVEFSVF9BRlRFUl9VUEdSQURFPXRydWUKZXhwb3J0IERBRU1PTl9BTExPV19ET1dOTE9BRF9CSU5BUklFUz10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gc3RhcnQgLS14LWNyaXNpcy1za2lwLWFzc2VydC1pbnZhcmlhbnRzIC0taG9tZSAkREFFTU9OX0hPTUUK"}}),e._v(" "),t("p",[e._v("Skipping the invariant checks can help decrease the upgrade time significantly.")]),e._v(" "),t("h4",{attrs:{id:"expected-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEyJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE2OTg1NTAwOiB1cGdyYWRlIHRvIHYxMiBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTImcXVvdDsgYXQgaGVpZ2h0OjE2OTg1NTAwCg=="}}),e._v(" "),t("p",[e._v("Then the Cosmovisor will create "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v12/bin")]),e._v(" and download the Gaia v12.0.0 binary to this folder according to links in the "),t("code",[e._v("--info")]),e._v(" field of the upgrade proposal.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),t("p",[t("em",[e._v("Please Note:")])]),e._v(" "),t("ul",[t("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),t("li",[e._v("Users should run their node on v11.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.")])]),e._v(" "),t("h2",{attrs:{id:"upgrade-duration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),t("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),t("h2",{attrs:{id:"rollback-plan"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),t("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),t("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v11.0.0 binary using the following command:")]),e._v(" "),t("blockquote",[t("p",[e._v("gaiad start --unsafe-skip-upgrade 16985500")])]),e._v(" "),t("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),t("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),t("h2",{attrs:{id:"communications"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),t("p",[e._v("Operators are encouraged to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel can be sent to the "),t("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),t("h2",{attrs:{id:"risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),t("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),t("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),t("h2",{attrs:{id:"reference"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("Join Cosmos Hub Mainnet"),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/156.dde91aae.js b/main/assets/js/156.0cecbafb.js similarity index 99% rename from main/assets/js/156.dde91aae.js rename to main/assets/js/156.0cecbafb.js index 3f74d46465d..3a10e8feee1 100644 --- a/main/assets/js/156.dde91aae.js +++ b/main/assets/js/156.0cecbafb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{508:function(e,a,t){"use strict";t.r(a);var r=t(1),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cosmos-hub-4-gaia-v13-upgrade-instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-gaia-v13-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, Gaia v13 Upgrade, Instructions")]),e._v(" "),t("p",[e._v("This document describes the steps for validators and full node operators, to upgrade successfully to the Gaia v13 release.\nFor more details on the release, please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions"}},[e._v("#")]),e._v(" Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#cosmos-hub-4-gaia-v13-upgrade-instructions"}},[e._v("Cosmos Hub 4, Gaia v13 Upgrade, Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#instructions"}},[e._v("Instructions")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-date"}},[e._v("Upgrade date")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#current-runtime"}},[e._v("Current runtime")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#target-runtime"}},[e._v("Target runtime")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-steps"}},[e._v("Upgrade steps")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: Manual Upgrade")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("Method II: Upgrade using Cosmovisor")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#manually-preparing-the-binary"}},[e._v("Manually preparing the binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("Auto-Downloading the Gaia binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),t("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/825",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 825"),t("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which is still in its voting period. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),t("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-date"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-date"}},[e._v("#")]),e._v(" Upgrade date")]),e._v(" "),t("p",[e._v("The upgrade will take place at a block height of "),t("code",[e._v("17380000")]),e._v(". The date/time of the upgrade is subject to change as blocks are not generated at a constant interval. You can stay up-to-date using this "),t("a",{attrs:{href:"https://www.mintscan.io/cosmos/blocks/17380000",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),t("OutboundLink")],1),e._v(" page.")]),e._v(" "),t("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),t("p",[e._v("The chain-id of the network will remain the same, "),t("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),t("h2",{attrs:{id:"preparing-for-the-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),t("h3",{attrs:{id:"system-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),t("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),t("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),t("h3",{attrs:{id:"backups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),t("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),t("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("upgrade using cosmovisor")]),e._v(" section.")]),e._v(" "),t("p",[e._v("It is critically important for validator operators to back-up the "),t("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),t("h3",{attrs:{id:"testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),t("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can run a "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local",target:"_blank",rel:"noopener noreferrer"}},[e._v("v13 Local Testnet"),t("OutboundLink")],1),e._v(" or join in our "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/public",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Hub Public Testnet"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"current-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime"}},[e._v("#")]),e._v(" Current runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v12.0.0"),t("OutboundLink")],1),e._v(". We anticipate that operators who are running on v11.0.x, will be able to upgrade successfully. Validators are expected to ensure that their systems are up to date and capable of performing the upgrade. This includes running the correct binary, or if building from source, building with go "),t("code",[e._v("1.20")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"target-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime"}},[e._v("#")]),e._v(" Target runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", will run "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v13.0.0"),t("OutboundLink")],1),e._v(". Operators "),t("em",[t("strong",[e._v("MUST")])]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-steps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-steps"}},[e._v("#")]),e._v(" Upgrade steps")]),e._v(" "),t("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),t("ul",[t("li",[e._v("Manual upgrade")]),e._v(" "),t("li",[e._v("Upgrade using "),t("a",{attrs:{href:"https://pkg.go.dev/cosmossdk.io/tools/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),t("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),t("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),t("h3",{attrs:{id:"method-i-manual-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: Manual Upgrade")]),e._v(" "),t("p",[e._v("Make sure Gaia v13.0.0 is installed by either downloading a "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("compatible binary"),t("OutboundLink")],1),e._v(", or building from source. Building from source requires "),t("strong",[e._v("Golang 1.20.x")]),e._v(".")]),e._v(" "),t("p",[e._v("Run Gaia v12.0.0 till upgrade height, the node will panic:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEzJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE3MzgwMDAwOiB1cGdyYWRlIHRvIHYxMyBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTMmcXVvdDsgYXQgaGVpZ2h0OjE3MzgwMDAwCg=="}}),e._v(" "),t("p",[e._v("Stop the node, and switch the binary to Gaia v13.0.0 and re-start by "),t("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),t("p",[e._v("It may take several minutes to a few hours until validators with a total sum voting power > 2/3 to complete their node upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),t("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("#")]),e._v(" Method II: Upgrade using Cosmovisor")]),e._v(" "),t("h3",{attrs:{id:"manually-preparing-the-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manually-preparing-the-binary"}},[e._v("#")]),e._v(" Manually preparing the binary")]),e._v(" "),t("h5",{attrs:{id:"preparation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[t("strong",[e._v("Verify Cosmovisor Version")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciB2ZXJzaW9uCmNvc21vdmlzb3IgdmVyc2lvbjogdjEuNS4wCg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a Cosmovisor folder inside "),t("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v12.0.0 into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("p",[e._v("build Gaia v13.0.0, and move gaiad v13.0.0 to "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v13/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTMvYmluCg=="}}),e._v(" "),t("p",[e._v("Then you should get the following structure:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTIuMC54CuKUlOKUgOKUgCB1cGdyYWRlcwogICAg4pSU4pSA4pSAIHYxMwogICAgICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICAgICAg4pSU4pSA4pSAIGdhaWFkICAjdjEzLjAuMAo="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCiMgcGxlYXNlIG5vdGUgYERBRU1PTl9IT01FYCBoYXMgdG8gYmUgYWJzb2x1dGUgcGF0aApleHBvcnQgREFFTU9OX0hPTUU9JEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gIHN0YXJ0IC0teC1jcmlzaXMtc2tpcC1hc3NlcnQtaW52YXJpYW50cyAtLWhvbWUgJERBRU1PTl9IT01FCg=="}}),e._v(" "),t("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),t("h4",{attrs:{id:"expected-upgrade-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, Gaia will panic and stop:")]),e._v(" "),t("p",[e._v("This may take a few minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their node upgrades.")]),e._v(" "),t("h3",{attrs:{id:"auto-downloading-the-gaia-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("#")]),e._v(" Auto-Downloading the Gaia binary")]),e._v(" "),t("p",[t("strong",[e._v("This method is not recommended!")])]),e._v(" "),t("h4",{attrs:{id:"preparation-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v12.0.x into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTIuMC54Cg=="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0kR0FJQV9IT01FCmV4cG9ydCBEQUVNT05fUkVTVEFSVF9BRlRFUl9VUEdSQURFPXRydWUKZXhwb3J0IERBRU1PTl9BTExPV19ET1dOTE9BRF9CSU5BUklFUz10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gc3RhcnQgLS14LWNyaXNpcy1za2lwLWFzc2VydC1pbnZhcmlhbnRzIC0taG9tZSAkREFFTU9OX0hPTUUK"}}),e._v(" "),t("p",[e._v("Skipping the invariant checks can help decrease the upgrade time significantly.")]),e._v(" "),t("h4",{attrs:{id:"expected-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEzJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE3MzgwMDAwOiB1cGdyYWRlIHRvIHYxMyBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTMmcXVvdDsgYXQgaGVpZ2h0OjE3MzgwMDAwCg=="}}),e._v(" "),t("p",[e._v("Then the Cosmovisor will create "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v13/bin")]),e._v(" and download the Gaia v13.0.0 binary to this folder according to links in the "),t("code",[e._v("--info")]),e._v(" field of the upgrade proposal.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),t("p",[t("em",[e._v("Please Note:")])]),e._v(" "),t("ul",[t("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),t("li",[e._v("Users should run their node on v12.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.")])]),e._v(" "),t("h2",{attrs:{id:"upgrade-duration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),t("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),t("h2",{attrs:{id:"rollback-plan"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),t("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),t("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v12.0.0 binary using the following command:")]),e._v(" "),t("blockquote",[t("p",[e._v("gaiad start --unsafe-skip-upgrade 17380000")])]),e._v(" "),t("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),t("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),t("h2",{attrs:{id:"communications"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),t("p",[e._v("Operators are encouraged to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel can be sent to the "),t("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),t("h2",{attrs:{id:"risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),t("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),t("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),t("h2",{attrs:{id:"reference"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("Join Cosmos Hub Mainnet"),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{510:function(e,a,t){"use strict";t.r(a);var r=t(1),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"cosmos-hub-4-gaia-v13-upgrade-instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-gaia-v13-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, Gaia v13 Upgrade, Instructions")]),e._v(" "),t("p",[e._v("This document describes the steps for validators and full node operators, to upgrade successfully to the Gaia v13 release.\nFor more details on the release, please see the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("release notes"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"instructions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#instructions"}},[e._v("#")]),e._v(" Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#cosmos-hub-4-gaia-v13-upgrade-instructions"}},[e._v("Cosmos Hub 4, Gaia v13 Upgrade, Instructions")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#instructions"}},[e._v("Instructions")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-date"}},[e._v("Upgrade date")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#current-runtime"}},[e._v("Current runtime")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#target-runtime"}},[e._v("Target runtime")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-steps"}},[e._v("Upgrade steps")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: Manual Upgrade")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("Method II: Upgrade using Cosmovisor")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#manually-preparing-the-binary"}},[e._v("Manually preparing the binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("Auto-Downloading the Gaia binary")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),t("li",[t("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),t("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/825",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 825"),t("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which is still in its voting period. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),t("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-date"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-date"}},[e._v("#")]),e._v(" Upgrade date")]),e._v(" "),t("p",[e._v("The upgrade will take place at a block height of "),t("code",[e._v("17380000")]),e._v(". The date/time of the upgrade is subject to change as blocks are not generated at a constant interval. You can stay up-to-date using this "),t("a",{attrs:{href:"https://www.mintscan.io/cosmos/blocks/17380000",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),t("OutboundLink")],1),e._v(" page.")]),e._v(" "),t("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),t("p",[e._v("The chain-id of the network will remain the same, "),t("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),t("h2",{attrs:{id:"preparing-for-the-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),t("h3",{attrs:{id:"system-requirement"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),t("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),t("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),t("h3",{attrs:{id:"backups"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),t("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),t("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),t("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("upgrade using cosmovisor")]),e._v(" section.")]),e._v(" "),t("p",[e._v("It is critically important for validator operators to back-up the "),t("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),t("h3",{attrs:{id:"testing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),t("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can run a "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local",target:"_blank",rel:"noopener noreferrer"}},[e._v("v13 Local Testnet"),t("OutboundLink")],1),e._v(" or join in our "),t("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/public",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmos Hub Public Testnet"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"current-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime"}},[e._v("#")]),e._v(" Current runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v12.0.0"),t("OutboundLink")],1),e._v(". We anticipate that operators who are running on v11.0.x, will be able to upgrade successfully. Validators are expected to ensure that their systems are up to date and capable of performing the upgrade. This includes running the correct binary, or if building from source, building with go "),t("code",[e._v("1.20")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"target-runtime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime"}},[e._v("#")]),e._v(" Target runtime")]),e._v(" "),t("p",[e._v("The Cosmos Hub mainnet network, "),t("code",[e._v("cosmoshub-4")]),e._v(", will run "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v13.0.0"),t("OutboundLink")],1),e._v(". Operators "),t("em",[t("strong",[e._v("MUST")])]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),t("h2",{attrs:{id:"upgrade-steps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-steps"}},[e._v("#")]),e._v(" Upgrade steps")]),e._v(" "),t("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),t("ul",[t("li",[e._v("Manual upgrade")]),e._v(" "),t("li",[e._v("Upgrade using "),t("a",{attrs:{href:"https://pkg.go.dev/cosmossdk.io/tools/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),t("OutboundLink")],1),e._v(" "),t("ul",[t("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),t("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),t("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),t("h3",{attrs:{id:"method-i-manual-upgrade"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: Manual Upgrade")]),e._v(" "),t("p",[e._v("Make sure Gaia v13.0.0 is installed by either downloading a "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("compatible binary"),t("OutboundLink")],1),e._v(", or building from source. Building from source requires "),t("strong",[e._v("Golang 1.20.x")]),e._v(".")]),e._v(" "),t("p",[e._v("Run Gaia v12.0.0 till upgrade height, the node will panic:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEzJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE3MzgwMDAwOiB1cGdyYWRlIHRvIHYxMyBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTMmcXVvdDsgYXQgaGVpZ2h0OjE3MzgwMDAwCg=="}}),e._v(" "),t("p",[e._v("Stop the node, and switch the binary to Gaia v13.0.0 and re-start by "),t("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),t("p",[e._v("It may take several minutes to a few hours until validators with a total sum voting power > 2/3 to complete their node upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),t("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor"}},[e._v("#")]),e._v(" Method II: Upgrade using Cosmovisor")]),e._v(" "),t("h3",{attrs:{id:"manually-preparing-the-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#manually-preparing-the-binary"}},[e._v("#")]),e._v(" Manually preparing the binary")]),e._v(" "),t("h5",{attrs:{id:"preparation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[t("strong",[e._v("Verify Cosmovisor Version")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciB2ZXJzaW9uCmNvc21vdmlzb3IgdmVyc2lvbjogdjEuNS4wCg=="}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a Cosmovisor folder inside "),t("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v12.0.0 into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("p",[e._v("build Gaia v13.0.0, and move gaiad v13.0.0 to "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v13/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92MTMvYmluCg=="}}),e._v(" "),t("p",[e._v("Then you should get the following structure:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTIuMC54CuKUlOKUgOKUgCB1cGdyYWRlcwogICAg4pSU4pSA4pSAIHYxMwogICAgICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICAgICAg4pSU4pSA4pSAIGdhaWFkICAjdjEzLjAuMAo="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCiMgcGxlYXNlIG5vdGUgYERBRU1PTl9IT01FYCBoYXMgdG8gYmUgYWJzb2x1dGUgcGF0aApleHBvcnQgREFFTU9OX0hPTUU9JEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gIHN0YXJ0IC0teC1jcmlzaXMtc2tpcC1hc3NlcnQtaW52YXJpYW50cyAtLWhvbWUgJERBRU1PTl9IT01FCg=="}}),e._v(" "),t("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),t("h4",{attrs:{id:"expected-upgrade-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, Gaia will panic and stop:")]),e._v(" "),t("p",[e._v("This may take a few minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their node upgrades.")]),e._v(" "),t("h3",{attrs:{id:"auto-downloading-the-gaia-binary"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#auto-downloading-the-gaia-binary"}},[e._v("#")]),e._v(" Auto-Downloading the Gaia binary")]),e._v(" "),t("p",[t("strong",[e._v("This method is not recommended!")])]),e._v(" "),t("h4",{attrs:{id:"preparation-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),t("p",[e._v("Install the latest version of Cosmovisor ("),t("code",[e._v("1.5.0")]),e._v("):")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBjb3Ntb3NzZGsuaW8vdG9vbHMvY29zbW92aXNvci9jbWQvY29zbW92aXNvckBsYXRlc3QK"}}),e._v(" "),t("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),t("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v12.0.x into "),t("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2MTIuMC54Cg=="}}),e._v(" "),t("p",[e._v("Export the environmental variables:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0kR0FJQV9IT01FCmV4cG9ydCBEQUVNT05fUkVTVEFSVF9BRlRFUl9VUEdSQURFPXRydWUKZXhwb3J0IERBRU1PTl9BTExPV19ET1dOTE9BRF9CSU5BUklFUz10cnVlCg=="}}),e._v(" "),t("p",[e._v("Start the node:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBydW4gc3RhcnQgLS14LWNyaXNpcy1za2lwLWFzc2VydC1pbnZhcmlhbnRzIC0taG9tZSAkREFFTU9OX0hPTUUK"}}),e._v(" "),t("p",[e._v("Skipping the invariant checks can help decrease the upgrade time significantly.")]),e._v(" "),t("h4",{attrs:{id:"expected-result"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),t("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djEzJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDE3MzgwMDAwOiB1cGdyYWRlIHRvIHYxMyBhbmQgYXBwbHlpbmcgdXBncmFkZSAmcXVvdDt2MTMmcXVvdDsgYXQgaGVpZ2h0OjE3MzgwMDAwCg=="}}),e._v(" "),t("p",[e._v("Then the Cosmovisor will create "),t("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v13/bin")]),e._v(" and download the Gaia v13.0.0 binary to this folder according to links in the "),t("code",[e._v("--info")]),e._v(" field of the upgrade proposal.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),t("p",[t("em",[e._v("Please Note:")])]),e._v(" "),t("ul",[t("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),t("li",[e._v("Users should run their node on v12.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.")])]),e._v(" "),t("h2",{attrs:{id:"upgrade-duration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),t("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),t("h2",{attrs:{id:"rollback-plan"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),t("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),t("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v12.0.0 binary using the following command:")]),e._v(" "),t("blockquote",[t("p",[e._v("gaiad start --unsafe-skip-upgrade 17380000")])]),e._v(" "),t("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),t("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),t("h2",{attrs:{id:"communications"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),t("p",[e._v("Operators are encouraged to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),t("code",[e._v("#cosmos-hub-validators-verified")]),e._v(" channel can be sent to the "),t("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),t("h2",{attrs:{id:"risks"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),t("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),t("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),t("h2",{attrs:{id:"reference"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("Join Cosmos Hub Mainnet"),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/157.513da9f5.js b/main/assets/js/157.b8a26b7b.js similarity index 99% rename from main/assets/js/157.513da9f5.js rename to main/assets/js/157.b8a26b7b.js index f9b29d7cfed..6fea1da9384 100644 --- a/main/assets/js/157.513da9f5.js +++ b/main/assets/js/157.b8a26b7b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{510:function(e,t,a){"use strict";a.r(t);var r=a(1),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"cosmos-hub-4-v7-theta-upgrade-instructions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-v7-theta-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, v7-Theta Upgrade, Instructions")]),e._v(" "),a("p",[e._v("This document describes the steps for validator and full node operators for the successful execution of the "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/blob/main/docs/roadmap/cosmos-hub-roadmap-2.0.md#v7-theta-upgrade-expected-q1-2022",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7-Theta Upgrade"),a("OutboundLink")],1),e._v(", which contains the following main new features/improvement:")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk",target:"_blank",rel:"noopener noreferrer"}},[e._v("cosmos-sdk"),a("OutboundLink")],1),e._v(" to "),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.1"),a("OutboundLink")],1),e._v(". See "),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md#v0451---2022-02-03",target:"_blank",rel:"noopener noreferrer"}},[e._v("CHANGELOG.md"),a("OutboundLink")],1),e._v(" for details.")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/cosmos/ibc-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("ibc-go"),a("OutboundLink")],1),e._v(" module to "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v3.0.0"),a("OutboundLink")],1),e._v(". See "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/blob/v3.0.0/CHANGELOG.md#v300---2022-03-15",target:"_blank",rel:"noopener noreferrer"}},[e._v("CHANGELOG.md"),a("OutboundLink")],1),e._v(" for details.")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/tree/main/modules/apps/27-interchain-accounts",target:"_blank",rel:"noopener noreferrer"}},[e._v("interchain account"),a("OutboundLink")],1),e._v(" module (interchain-account module is part of ibc-go module).")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/gravity-devs/liquidity",target:"_blank",rel:"noopener noreferrer"}},[e._v("liquidity"),a("OutboundLink")],1),e._v(" module to "),a("a",{attrs:{href:"https://github.com/Gravity-Devs/liquidity/releases/tag/v1.5.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v1.5.0"),a("OutboundLink")],1),e._v(". See "),a("a",{attrs:{href:"https://github.com/Gravity-Devs/liquidity/blob/v1.5.0/CHANGELOG.md#v150---20220223",target:"_blank",rel:"noopener noreferrer"}},[e._v("CHANGELOG.md"),a("OutboundLink")],1),e._v(" for details.")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/strangelove-ventures/packet-forward-middleware",target:"_blank",rel:"noopener noreferrer"}},[e._v("packet-forward-middleware"),a("OutboundLink")],1),e._v(" module to "),a("a",{attrs:{href:"https://github.com/strangelove-ventures/packet-forward-middleware/releases/tag/v2.1.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v2.1.1"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("li",[e._v("Migration logs for upgrade process.")])]),e._v(" "),a("p",[e._v("TOC:")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#cosmos-hub-4-v7-theta-upgrade-instructions"}},[e._v("Cosmos Hub 4, v7-Theta Upgrade, Instructions")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#upgrade-will-take-place-april-12-2022"}},[e._v("Upgrade will take place April 12, 2022")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v60x"}},[e._v("Current runtime, cosmoshub-4 (pre-v7-Theta upgrade) is running Gaia v6.0.x")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v700"}},[e._v("Target runtime, cosmoshub-4 (post-v7-Theta upgrade) will run Gaia v7.0.0")])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#v7-theta-upgrade-steps"}},[e._v("v7-Theta upgrade steps")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: manual upgrade")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v700-binary"}},[e._v("Method II: upgrade using Cosmovisor by manually preparing the Gaia v7.0.0 binary")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v700-binary-not-recommended"}},[e._v("Method III: upgrade using Cosmovisor by auto-downloading the Gaia v7.0.0 binary (not recommended!)")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),a("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/65",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal #65"),a("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which has passed with overwhelming community support. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),a("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),a("h2",{attrs:{id:"upgrade-will-take-place-april-12-2022"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-will-take-place-april-12-2022"}},[e._v("#")]),e._v(" Upgrade will take place April 12, 2022")]),e._v(" "),a("p",[e._v("The upgrade will take place at a block height of "),a("code",[e._v("10085397")]),e._v(". At the time of writing, and at current block times (around 7s/block), this block height corresponds approximately to "),a("code",[e._v("Tuesday, 12-April-21 16:14:40 UTC")]),e._v(". This date/time is approximate as blocks are not generated at a constant interval. You can stay up-to-date using this "),a("a",{attrs:{href:"https://chain-monitor.cros-nest.com/d/Upgrades/upgrades?var-chain_id=cosmoshub-4&orgId=1&refresh=1m",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),a("OutboundLink")],1),e._v(" page.")]),e._v(" "),a("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),a("p",[e._v("The chain-id of the network will remain the same, "),a("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),a("h2",{attrs:{id:"preparing-for-the-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),a("h3",{attrs:{id:"system-requirement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),a("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),a("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),a("h3",{attrs:{id:"backups"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),a("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),a("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),a("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v700-binary"}},[e._v("upgrade by cosmovisor")]),e._v(" section.")]),e._v(" "),a("p",[e._v("It is critically important for validator operators to back-up the "),a("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),a("h3",{attrs:{id:"testing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),a("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can join in our "),a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/v7-theta/public-testnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7-Theta public-testnet"),a("OutboundLink")],1),e._v(" or run a "),a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local/previous-local-testnets/v7-theta",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7-Theta local testnet"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v6-0-x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v6-0-x"}},[e._v("#")]),e._v(" Current runtime, cosmoshub-4 (pre-v7-Theta upgrade) is running Gaia v6.0.x")]),e._v(" "),a("p",[e._v("The Cosmos Hub mainnet network, "),a("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v6.0.4",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v6.0.4"),a("OutboundLink")],1),e._v(". We anticipate that operators who are running on v6.0.x, will be able to upgrade successfully; however, this is untested and it is up to operators to ensure that their systems are capable of performing the upgrade.")]),e._v(" "),a("h3",{attrs:{id:"target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v7-0-0"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v7-0-0"}},[e._v("#")]),e._v(" Target runtime, cosmoshub-4 (post-v7-Theta upgrade) will run Gaia v7.0.0")]),e._v(" "),a("p",[e._v("The Cosmos Hub mainnet network, "),a("code",[e._v("cosmoshub-4")]),e._v(", will run "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v7.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v7.0.0"),a("OutboundLink")],1),e._v(". Operators "),a("em",[e._v("MUST")]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),a("h2",{attrs:{id:"v7-theta-upgrade-steps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#v7-theta-upgrade-steps"}},[e._v("#")]),e._v(" v7-Theta upgrade steps")]),e._v(" "),a("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),a("ul",[a("li",[e._v("Manual upgrade")]),e._v(" "),a("li",[e._v("Upgrade using "),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/tree/master/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),a("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),a("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),a("h3",{attrs:{id:"method-i-manual-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: manual upgrade")]),e._v(" "),a("p",[e._v("Run Gaia v6.0.x till upgrade height, the node will panic:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djctVGhldGEmcXVvdDsgTkVFREVEIGF0IGhlaWdodDogMTAwODUzOTcKCnBhbmljOiBVUEdSQURFICZxdW90O3Y3LVRoZXRhJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDEwMDg1Mzk3Cg=="}}),e._v(" "),a("p",[e._v("Stop the node, and install Gaia v7.0.0 and re-start by "),a("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),a("p",[e._v("It may take 7 minutes to a few hours until validators with a total sum voting power > 2/3 to complete their nodes upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),a("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v7-0-0-binary"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v7-0-0-binary"}},[e._v("#")]),e._v(" Method II: upgrade using Cosmovisor by manually preparing the Gaia v7.0.0 binary")]),e._v(" "),a("h4",{attrs:{id:"preparation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),a("p",[e._v("Install the latest version of Cosmovisor:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),a("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),a("p",[e._v("create a Cosmovisor folder inside "),a("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v6.0.4 into "),a("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),a("p",[e._v("build Gaia v7.0.0, and move gaiad v7.0.0 to "),a("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v7-Theta/bin")])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92Ny1UaGV0YS9iaW4KY3AgJCh3aGljaCBnYWlhZCkgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL3VwZ3JhZGVzL3Y3LVRoZXRhL2Jpbgo="}}),e._v(" "),a("p",[e._v("Then you should get the following structure:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2Ni4wLjQK4pSU4pSA4pSAIHVwZ3JhZGVzCiAgICDilJTilIDilIAgdjctVGhldGEKICAgICAgICDilJTilIDilIAgYmluCiAgICAgICAgICAgIOKUlOKUgOKUgCBnYWlhZCAgI3Y3LjAuMAo="}}),e._v(" "),a("p",[e._v("Export the environmental variables:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0gJEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),a("p",[e._v("Start the node:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBzdGFydCAtLXgtY3Jpc2lzLXNraXAtYXNzZXJ0LWludmFyaWFudHMK"}}),e._v(" "),a("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),a("h4",{attrs:{id:"expected-upgrade-result"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),a("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djctVGhldGEmcXVvdDsgTkVFREVEIGF0IGhlaWdodDogMTAwODUzOTc6IHVwZ3JhZGUgdG8gdjctVGhldGEgYW5kIGFwcGx5aW5nIHVwZ3JhZGUgJnF1b3Q7djctVGhldGEmcXVvdDsgYXQgaGVpZ2h0OjEwMDg1Mzk3Lgo="}}),e._v(" "),a("p",[e._v("This may take 7 minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),a("h3",{attrs:{id:"method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v7-0-0-binary-not-recommended"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v7-0-0-binary-not-recommended"}},[e._v("#")]),e._v(" Method III: upgrade using Cosmovisor by auto-downloading the Gaia v7.0.0 binary (not recommended!)")]),e._v(" "),a("h4",{attrs:{id:"preparation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),a("p",[e._v("Install Cosmovisor v1.1.0")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),a("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),a("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v6.0.4 into "),a("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2Ni4wLjQK"}}),e._v(" "),a("p",[e._v("Export the environmental variables:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0gJEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCmV4cG9ydCBEQUVNT05fQUxMT1dfRE9XTkxPQURfQklOQVJJRVM9dHJ1ZQo="}}),e._v(" "),a("p",[e._v("Start the node:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBzdGFydCAtLXgtY3Jpc2lzLXNraXAtYXNzZXJ0LWludmFyaWFudHMK"}}),e._v(" "),a("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),a("h4",{attrs:{id:"expected-result"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),a("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djctVGhldGEmcXVvdDsgTkVFREVEIGF0IGhlaWdodDogMTAwODUzOTc6IHVwZ3JhZGUgdG8gdjctVGhldGEgYW5kIGFwcGx5aW5nIHVwZ3JhZGUgJnF1b3Q7djctVGhldGEmcXVvdDsgYXQgaGVpZ2h0OjEwMDg1Mzk3Cg=="}}),e._v(" "),a("p",[e._v("Then the Cosmovisor will create "),a("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v7-Theta/bin")]),e._v(" and download Gaia v7.0.0 binary to this folder according to links in the "),a("code",[e._v("--info")]),e._v(" field of the upgrade proposal 65.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),a("p",[a("em",[e._v("Please Note:")])]),e._v(" "),a("ul",[a("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),a("li",[e._v("Users should use run node on v6.0.4 if they use the cosmovisor v1.1.0 with auto-download enabled for upgrade process.")])]),e._v(" "),a("h2",{attrs:{id:"upgrade-duration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),a("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),a("h2",{attrs:{id:"rollback-plan"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),a("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),a("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v6.0.x binary using the following command:")]),e._v(" "),a("blockquote",[a("p",[e._v("gaiad start --unsafe-skip-upgrade 10085397")])]),e._v(" "),a("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),a("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),a("h2",{attrs:{id:"communications"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),a("p",[e._v("Operators are encouraged to join the "),a("code",[e._v("#validators-verified")]),e._v(" channel of the Cosmos Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),a("code",[e._v("#validators-verified")]),e._v(" channel can be sent to the "),a("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),a("h2",{attrs:{id:"risks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),a("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),a("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),a("h2",{attrs:{id:"reference"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/v7-theta",target:"_blank",rel:"noopener noreferrer"}},[e._v("cosmos/v7-Theta-test"),a("OutboundLink")],1),e._v(" "),a("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("join Cosmos Hub Mainnet"),a("OutboundLink")],1)])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{508:function(e,t,a){"use strict";a.r(t);var r=a(1),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"cosmos-hub-4-v7-theta-upgrade-instructions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-4-v7-theta-upgrade-instructions"}},[e._v("#")]),e._v(" Cosmos Hub 4, v7-Theta Upgrade, Instructions")]),e._v(" "),a("p",[e._v("This document describes the steps for validator and full node operators for the successful execution of the "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/blob/main/docs/roadmap/cosmos-hub-roadmap-2.0.md#v7-theta-upgrade-expected-q1-2022",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7-Theta Upgrade"),a("OutboundLink")],1),e._v(", which contains the following main new features/improvement:")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk",target:"_blank",rel:"noopener noreferrer"}},[e._v("cosmos-sdk"),a("OutboundLink")],1),e._v(" to "),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.1"),a("OutboundLink")],1),e._v(". See "),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md#v0451---2022-02-03",target:"_blank",rel:"noopener noreferrer"}},[e._v("CHANGELOG.md"),a("OutboundLink")],1),e._v(" for details.")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/cosmos/ibc-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("ibc-go"),a("OutboundLink")],1),e._v(" module to "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v3.0.0"),a("OutboundLink")],1),e._v(". See "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/blob/v3.0.0/CHANGELOG.md#v300---2022-03-15",target:"_blank",rel:"noopener noreferrer"}},[e._v("CHANGELOG.md"),a("OutboundLink")],1),e._v(" for details.")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/tree/main/modules/apps/27-interchain-accounts",target:"_blank",rel:"noopener noreferrer"}},[e._v("interchain account"),a("OutboundLink")],1),e._v(" module (interchain-account module is part of ibc-go module).")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/gravity-devs/liquidity",target:"_blank",rel:"noopener noreferrer"}},[e._v("liquidity"),a("OutboundLink")],1),e._v(" module to "),a("a",{attrs:{href:"https://github.com/Gravity-Devs/liquidity/releases/tag/v1.5.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v1.5.0"),a("OutboundLink")],1),e._v(". See "),a("a",{attrs:{href:"https://github.com/Gravity-Devs/liquidity/blob/v1.5.0/CHANGELOG.md#v150---20220223",target:"_blank",rel:"noopener noreferrer"}},[e._v("CHANGELOG.md"),a("OutboundLink")],1),e._v(" for details.")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/strangelove-ventures/packet-forward-middleware",target:"_blank",rel:"noopener noreferrer"}},[e._v("packet-forward-middleware"),a("OutboundLink")],1),e._v(" module to "),a("a",{attrs:{href:"https://github.com/strangelove-ventures/packet-forward-middleware/releases/tag/v2.1.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v2.1.1"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("li",[e._v("Migration logs for upgrade process.")])]),e._v(" "),a("p",[e._v("TOC:")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#cosmos-hub-4-v7-theta-upgrade-instructions"}},[e._v("Cosmos Hub 4, v7-Theta Upgrade, Instructions")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("On-chain governance proposal attains consensus")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#upgrade-will-take-place-april-12-2022"}},[e._v("Upgrade will take place April 12, 2022")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("Chain-id will remain the same")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#preparing-for-the-upgrade"}},[e._v("Preparing for the upgrade")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#system-requirement"}},[e._v("System requirement")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#backups"}},[e._v("Backups")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#testing"}},[e._v("Testing")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v60x"}},[e._v("Current runtime, cosmoshub-4 (pre-v7-Theta upgrade) is running Gaia v6.0.x")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v700"}},[e._v("Target runtime, cosmoshub-4 (post-v7-Theta upgrade) will run Gaia v7.0.0")])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#v7-theta-upgrade-steps"}},[e._v("v7-Theta upgrade steps")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#method-i-manual-upgrade"}},[e._v("Method I: manual upgrade")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v700-binary"}},[e._v("Method II: upgrade using Cosmovisor by manually preparing the Gaia v7.0.0 binary")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#preparation"}},[e._v("Preparation")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#expected-upgrade-result"}},[e._v("Expected upgrade result")])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v700-binary-not-recommended"}},[e._v("Method III: upgrade using Cosmovisor by auto-downloading the Gaia v7.0.0 binary (not recommended!)")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#preparation-1"}},[e._v("Preparation")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#expected-result"}},[e._v("Expected result")])])])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"#upgrade-duration"}},[e._v("Upgrade duration")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#rollback-plan"}},[e._v("Rollback plan")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#communications"}},[e._v("Communications")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#risks"}},[e._v("Risks")])]),e._v(" "),a("li",[a("a",{attrs:{href:"#reference"}},[e._v("Reference")])])])])]),e._v(" "),a("h2",{attrs:{id:"on-chain-governance-proposal-attains-consensus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#on-chain-governance-proposal-attains-consensus"}},[e._v("#")]),e._v(" On-chain governance proposal attains consensus")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/65",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal #65"),a("OutboundLink")],1),e._v(" is the reference on-chain governance proposal for this upgrade, which has passed with overwhelming community support. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a "),a("em",[e._v("fully decentralized")]),e._v(" way.")]),e._v(" "),a("h2",{attrs:{id:"upgrade-will-take-place-april-12-2022"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-will-take-place-april-12-2022"}},[e._v("#")]),e._v(" Upgrade will take place April 12, 2022")]),e._v(" "),a("p",[e._v("The upgrade will take place at a block height of "),a("code",[e._v("10085397")]),e._v(". At the time of writing, and at current block times (around 7s/block), this block height corresponds approximately to "),a("code",[e._v("Tuesday, 12-April-21 16:14:40 UTC")]),e._v(". This date/time is approximate as blocks are not generated at a constant interval. You can stay up-to-date using this "),a("a",{attrs:{href:"https://chain-monitor.cros-nest.com/d/Upgrades/upgrades?var-chain_id=cosmoshub-4&orgId=1&refresh=1m",target:"_blank",rel:"noopener noreferrer"}},[e._v("live countdown"),a("OutboundLink")],1),e._v(" page.")]),e._v(" "),a("h2",{attrs:{id:"chain-id-will-remain-the-same"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chain-id-will-remain-the-same"}},[e._v("#")]),e._v(" Chain-id will remain the same")]),e._v(" "),a("p",[e._v("The chain-id of the network will remain the same, "),a("code",[e._v("cosmoshub-4")]),e._v(". This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.")]),e._v(" "),a("h2",{attrs:{id:"preparing-for-the-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparing-for-the-upgrade"}},[e._v("#")]),e._v(" Preparing for the upgrade")]),e._v(" "),a("h3",{attrs:{id:"system-requirement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#system-requirement"}},[e._v("#")]),e._v(" System requirement")]),e._v(" "),a("p",[e._v("32GB RAM is recommended to ensure a smooth upgrade.")]),e._v(" "),a("p",[e._v("If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can\nallow your machine to run the binary than it could run in RAM alone.")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"c3VkbyBmYWxsb2NhdGUgLWwgMTZHIC9zd2FwZmlsZQpzdWRvIGNobW9kIDYwMCAvc3dhcGZpbGUKc3VkbyBta3N3YXAgL3N3YXBmaWxlCnN1ZG8gc3dhcG9uIC9zd2FwZmlsZQo="}}),e._v(" "),a("h3",{attrs:{id:"backups"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backups"}},[e._v("#")]),e._v(" Backups")]),e._v(" "),a("p",[e._v("Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the "),a("code",[e._v(".gaia")]),e._v(" directory.\nIf you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade. See below "),a("a",{attrs:{href:"#method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v700-binary"}},[e._v("upgrade by cosmovisor")]),e._v(" section.")]),e._v(" "),a("p",[e._v("It is critically important for validator operators to back-up the "),a("code",[e._v(".gaia/data/priv_validator_state.json")]),e._v(" file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted.")]),e._v(" "),a("h3",{attrs:{id:"testing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#testing"}},[e._v("#")]),e._v(" Testing")]),e._v(" "),a("p",[e._v("For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade, you can join in our "),a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/v7-theta/public-testnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7-Theta public-testnet"),a("OutboundLink")],1),e._v(" or run a "),a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local/previous-local-testnets/v7-theta",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7-Theta local testnet"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v6-0-x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v6-0-x"}},[e._v("#")]),e._v(" Current runtime, cosmoshub-4 (pre-v7-Theta upgrade) is running Gaia v6.0.x")]),e._v(" "),a("p",[e._v("The Cosmos Hub mainnet network, "),a("code",[e._v("cosmoshub-4")]),e._v(", is currently running "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/v6.0.4",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v6.0.4"),a("OutboundLink")],1),e._v(". We anticipate that operators who are running on v6.0.x, will be able to upgrade successfully; however, this is untested and it is up to operators to ensure that their systems are capable of performing the upgrade.")]),e._v(" "),a("h3",{attrs:{id:"target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v7-0-0"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v7-0-0"}},[e._v("#")]),e._v(" Target runtime, cosmoshub-4 (post-v7-Theta upgrade) will run Gaia v7.0.0")]),e._v(" "),a("p",[e._v("The Cosmos Hub mainnet network, "),a("code",[e._v("cosmoshub-4")]),e._v(", will run "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v7.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gaia v7.0.0"),a("OutboundLink")],1),e._v(". Operators "),a("em",[e._v("MUST")]),e._v(" use this version post-upgrade to remain connected to the network.")]),e._v(" "),a("h2",{attrs:{id:"v7-theta-upgrade-steps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#v7-theta-upgrade-steps"}},[e._v("#")]),e._v(" v7-Theta upgrade steps")]),e._v(" "),a("p",[e._v("There are 2 major ways to upgrade a node:")]),e._v(" "),a("ul",[a("li",[e._v("Manual upgrade")]),e._v(" "),a("li",[e._v("Upgrade using "),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/tree/master/cosmovisor",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cosmovisor"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Either by manually preparing the new binary")]),e._v(" "),a("li",[e._v("Or by using the auto-download functionality (this is not yet recommended)")])])])]),e._v(" "),a("p",[e._v("If you prefer to use Cosmovisor to upgrade, some preparation work is needed before upgrade.")]),e._v(" "),a("h3",{attrs:{id:"method-i-manual-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#method-i-manual-upgrade"}},[e._v("#")]),e._v(" Method I: manual upgrade")]),e._v(" "),a("p",[e._v("Run Gaia v6.0.x till upgrade height, the node will panic:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djctVGhldGEmcXVvdDsgTkVFREVEIGF0IGhlaWdodDogMTAwODUzOTcKCnBhbmljOiBVUEdSQURFICZxdW90O3Y3LVRoZXRhJnF1b3Q7IE5FRURFRCBhdCBoZWlnaHQ6IDEwMDg1Mzk3Cg=="}}),e._v(" "),a("p",[e._v("Stop the node, and install Gaia v7.0.0 and re-start by "),a("code",[e._v("gaiad start")]),e._v(".")]),e._v(" "),a("p",[e._v("It may take 7 minutes to a few hours until validators with a total sum voting power > 2/3 to complete their nodes upgrades. After that, the chain can continue to produce blocks.")]),e._v(" "),a("h3",{attrs:{id:"method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v7-0-0-binary"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v7-0-0-binary"}},[e._v("#")]),e._v(" Method II: upgrade using Cosmovisor by manually preparing the Gaia v7.0.0 binary")]),e._v(" "),a("h4",{attrs:{id:"preparation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),a("p",[e._v("Install the latest version of Cosmovisor:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),a("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),a("p",[e._v("create a Cosmovisor folder inside "),a("code",[e._v("$GAIA_HOME")]),e._v(" and move Gaia v6.0.4 into "),a("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),a("p",[e._v("build Gaia v7.0.0, and move gaiad v7.0.0 to "),a("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v7-Theta/bin")])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgICRHQUlBX0hPTUUvY29zbW92aXNvci91cGdyYWRlcy92Ny1UaGV0YS9iaW4KY3AgJCh3aGljaCBnYWlhZCkgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL3VwZ3JhZGVzL3Y3LVRoZXRhL2Jpbgo="}}),e._v(" "),a("p",[e._v("Then you should get the following structure:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJzilIDilIAgZ2VuZXNpcwrilIIgICDilJTilIDilIAgYmluCuKUgiAgICAgICDilJTilIDilIAgZ2FpYWQgICN2Ni4wLjQK4pSU4pSA4pSAIHVwZ3JhZGVzCiAgICDilJTilIDilIAgdjctVGhldGEKICAgICAgICDilJTilIDilIAgYmluCiAgICAgICAgICAgIOKUlOKUgOKUgCBnYWlhZCAgI3Y3LjAuMAo="}}),e._v(" "),a("p",[e._v("Export the environmental variables:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0gJEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCg=="}}),e._v(" "),a("p",[e._v("Start the node:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBzdGFydCAtLXgtY3Jpc2lzLXNraXAtYXNzZXJ0LWludmFyaWFudHMK"}}),e._v(" "),a("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),a("h4",{attrs:{id:"expected-upgrade-result"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#expected-upgrade-result"}},[e._v("#")]),e._v(" Expected upgrade result")]),e._v(" "),a("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djctVGhldGEmcXVvdDsgTkVFREVEIGF0IGhlaWdodDogMTAwODUzOTc6IHVwZ3JhZGUgdG8gdjctVGhldGEgYW5kIGFwcGx5aW5nIHVwZ3JhZGUgJnF1b3Q7djctVGhldGEmcXVvdDsgYXQgaGVpZ2h0OjEwMDg1Mzk3Lgo="}}),e._v(" "),a("p",[e._v("This may take 7 minutes to a few hours.\nAfter upgrade, the chain will continue to produce blocks when validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),a("h3",{attrs:{id:"method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v7-0-0-binary-not-recommended"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v7-0-0-binary-not-recommended"}},[e._v("#")]),e._v(" Method III: upgrade using Cosmovisor by auto-downloading the Gaia v7.0.0 binary (not recommended!)")]),e._v(" "),a("h4",{attrs:{id:"preparation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preparation-2"}},[e._v("#")]),e._v(" Preparation")]),e._v(" "),a("p",[e._v("Install Cosmovisor v1.1.0")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Z28gaW5zdGFsbCBnaXRodWIuY29tL2Nvc21vcy9jb3Ntb3Mtc2RrL2Nvc21vdmlzb3IvY21kL2Nvc21vdmlzb3JAbGF0ZXN0Cg=="}}),e._v(" "),a("p",[e._v("Create a cosmovisor folder:")]),e._v(" "),a("p",[e._v("create a cosmovisor folder inside gaia home and move gaiad v6.0.4 into "),a("code",[e._v("$GAIA_HOME/cosmovisor/genesis/bin")])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"bWtkaXIgLXAgJEdBSUFfSE9NRS9jb3Ntb3Zpc29yL2dlbmVzaXMvYmluCmNwICQod2hpY2ggZ2FpYWQpICRHQUlBX0hPTUUvY29zbW92aXNvci9nZW5lc2lzL2Jpbgo="}}),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"LgrilJzilIDilIAgY3VycmVudCAtJmd0OyBnZW5lc2lzIG9yIHVwZ3JhZGVzLyZsdDtuYW1lJmd0OwrilJTilIDilIAgZ2VuZXNpcwogICAgIOKUlOKUgOKUgCBiaW4KICAgICAgICDilJTilIDilIAgZ2FpYWQgICN2Ni4wLjQK"}}),e._v(" "),a("p",[e._v("Export the environmental variables:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"ZXhwb3J0IERBRU1PTl9OQU1FPWdhaWFkCiMgcGxlYXNlIGNoYW5nZSB0byB5b3VyIG93biBnYWlhIGhvbWUgZGlyCmV4cG9ydCBEQUVNT05fSE9NRT0gJEdBSUFfSE9NRQpleHBvcnQgREFFTU9OX1JFU1RBUlRfQUZURVJfVVBHUkFERT10cnVlCmV4cG9ydCBEQUVNT05fQUxMT1dfRE9XTkxPQURfQklOQVJJRVM9dHJ1ZQo="}}),e._v(" "),a("p",[e._v("Start the node:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"Y29zbW92aXNvciBzdGFydCAtLXgtY3Jpc2lzLXNraXAtYXNzZXJ0LWludmFyaWFudHMK"}}),e._v(" "),a("p",[e._v("Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.")]),e._v(" "),a("h4",{attrs:{id:"expected-result"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#expected-result"}},[e._v("#")]),e._v(" Expected result")]),e._v(" "),a("p",[e._v("When the upgrade block height is reached, you can find the following information in the log:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"shell",base64:"RVJSIFVQR1JBREUgJnF1b3Q7djctVGhldGEmcXVvdDsgTkVFREVEIGF0IGhlaWdodDogMTAwODUzOTc6IHVwZ3JhZGUgdG8gdjctVGhldGEgYW5kIGFwcGx5aW5nIHVwZ3JhZGUgJnF1b3Q7djctVGhldGEmcXVvdDsgYXQgaGVpZ2h0OjEwMDg1Mzk3Cg=="}}),e._v(" "),a("p",[e._v("Then the Cosmovisor will create "),a("code",[e._v("$GAIA_HOME/cosmovisor/upgrades/v7-Theta/bin")]),e._v(" and download Gaia v7.0.0 binary to this folder according to links in the "),a("code",[e._v("--info")]),e._v(" field of the upgrade proposal 65.\nThis may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.")]),e._v(" "),a("p",[a("em",[e._v("Please Note:")])]),e._v(" "),a("ul",[a("li",[e._v("In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.")]),e._v(" "),a("li",[e._v("Users should use run node on v6.0.4 if they use the cosmovisor v1.1.0 with auto-download enabled for upgrade process.")])]),e._v(" "),a("h2",{attrs:{id:"upgrade-duration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-duration"}},[e._v("#")]),e._v(" Upgrade duration")]),e._v(" "),a("p",[e._v("The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.")]),e._v(" "),a("h2",{attrs:{id:"rollback-plan"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rollback-plan"}},[e._v("#")]),e._v(" Rollback plan")]),e._v(" "),a("p",[e._v("During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.")]),e._v(" "),a("p",[e._v("Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v6.0.x binary using the following command:")]),e._v(" "),a("blockquote",[a("p",[e._v("gaiad start --unsafe-skip-upgrade 10085397")])]),e._v(" "),a("p",[e._v("Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.")]),e._v(" "),a("p",[e._v("Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.")]),e._v(" "),a("h2",{attrs:{id:"communications"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#communications"}},[e._v("#")]),e._v(" Communications")]),e._v(" "),a("p",[e._v("Operators are encouraged to join the "),a("code",[e._v("#validators-verified")]),e._v(" channel of the Cosmos Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the "),a("code",[e._v("#validators-verified")]),e._v(" channel can be sent to the "),a("code",[e._v("#general-support")]),e._v(" channel.")]),e._v(" "),a("h2",{attrs:{id:"risks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#risks"}},[e._v("#")]),e._v(" Risks")]),e._v(" "),a("p",[e._v("As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.")]),e._v(" "),a("p",[e._v("The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.")]),e._v(" "),a("h2",{attrs:{id:"reference"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reference"}},[e._v("#")]),e._v(" Reference")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/v7-theta",target:"_blank",rel:"noopener noreferrer"}},[e._v("cosmos/v7-Theta-test"),a("OutboundLink")],1),e._v(" "),a("a",{attrs:{href:"https://github.com/cosmos/mainnet",target:"_blank",rel:"noopener noreferrer"}},[e._v("join Cosmos Hub Mainnet"),a("OutboundLink")],1)])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/main/assets/js/167.fac7e76f.js b/main/assets/js/167.855950cd.js similarity index 98% rename from main/assets/js/167.fac7e76f.js rename to main/assets/js/167.855950cd.js index 08d0cf5c56e..518777d772f 100644 --- a/main/assets/js/167.fac7e76f.js +++ b/main/assets/js/167.855950cd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{559:function(t,e,a){"use strict";a.r(e);var l=a(1),i=Object(l.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"build-gaia-deterministically"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-gaia-deterministically"}},[t._v("#")]),t._v(" Build Gaia Deterministically")]),t._v(" "),a("p",[t._v("The "),a("a",{attrs:{href:"https://github.com/tendermint/images/tree/master/rbuilder",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tendermint rbuilder Docker image"),a("OutboundLink")],1),t._v(" provides a deterministic build environment that is used to build Cosmos SDK applications. It provides a way to be reasonably sure that the executables are really built from the git source. It also makes sure that the same, tested dependencies are used and statically built into the executable.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("p",[t._v("Make sure you have "),a("a",{attrs:{href:"https://docs.docker.com/get-docker/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Docker installed on your system"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("All the following instructions have been tested on "),a("em",[t._v("Ubuntu 18.04.2 LTS")]),t._v(" with "),a("em",[t._v("docker 20.10.2")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"build"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build"}},[t._v("#")]),t._v(" Build")]),t._v(" "),a("p",[t._v("Clone "),a("code",[t._v("gaia")]),t._v(":")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQK"}}),t._v(" "),a("p",[t._v("Checkout the commit, branch, or release tag you want to build:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"Y2QgZ2FpYS8KZ2l0IGNoZWNrb3V0IHY0LjIuMQo="}}),t._v(" "),a("p",[t._v("The buildsystem supports and produces binaries for the following architectures:")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("darwin/amd64")])]),t._v(" "),a("li",[a("strong",[t._v("linux/amd64")])]),t._v(" "),a("li",[a("strong",[t._v("linux/arm64")])]),t._v(" "),a("li",[a("strong",[t._v("windows/amd64")])])]),t._v(" "),a("p",[t._v("Run the following command to launch a build for all supported architectures:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"bWFrZSBkaXN0Y2xlYW4gYnVpbGQtcmVwcm9kdWNpYmxlCg=="}}),t._v(" "),a("p",[t._v("The build system generates both the binaries and deterministic build report in the "),a("code",[t._v("artifacts")]),t._v(" directory.\nThe "),a("code",[t._v("artifacts/build_report")]),t._v(" file contains the list of the build artifacts and their respective checksums, and can be used to verify\nbuild sanity. An example of its contents follows:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"QXBwOiBnYWlhZApWZXJzaW9uOiB2NC4yLjEKQ29tbWl0OiBkYmQ4YTZmYjUyMmM1NzFkZWJmOTU4ODM3ZjkxMTNjNTZkNDE4ZjZiCkZpbGVzOgogMjlkMjE5YjBiMTIwYjMxODhiZDdjZDcyNDlmYzk2YjkgIGdhaWFkLXY0LjIuMS1kYXJ3aW4tYW1kNjQKIDgwMzM4ZDlmMGU1NWVhOGY2YzkzZjJlYzdkNGUxOGQ2ICBnYWlhZC12NC4yLjEtbGludXgtYW1kNjQKIDliYzc3YTUxMmFjY2E2NzNjYTE3NjlhZTY3YjRkNmM3ICBnYWlhZC12NC4yLjEtbGludXgtYXJtNjQKIGM4NDM4Nzg2MGY1MjE3OGUyYmZmZWUwODg5NzU2NGJiICBnYWlhZC12NC4yLjEtd2luZG93cy1hbWQ2NC5leGUKIGMyNWNjYThjY2NlZWMwNmE2ZmFiYWU5MGY2NzFmYWIxICBnYWlhZC12NC4yLjEudGFyLmd6CkNoZWNrc3Vtcy1TaGEyNTY6CiAwNWU1YjkwNjRiYWM0ZTcxZjAxNjJjNGMzYzNiZmY1NWRlZjIyY2EwMTZkMzQyMDVhNTUyMGZlZjg5ZmQyNzc2ICBnYWlhZC12NC4yLjEtZGFyd2luLWFtZDY0CiBjY2RhNDIyY2JkYTI5YzcyM2FhZjI3NjUzYmNmMGY2NDEyZTEzOGVlYzMzZmJhMmI0OWRlMTMxZjlmZmJlMmQyICBnYWlhZC12NC4yLjEtbGludXgtYW1kNjQKIDk1Zjg5ZTgyMTNjYjc1OGQxMmUxYjBiNjMxMjg1OTM4ZGU4MjJkMDRkMmUyNWYzOTllOTljMGI3OTgxNzNjZmQgIGdhaWFkLXY0LjIuMS1saW51eC1hcm02NAogN2VmOThmMDA0MWYxNTczZjBhODYwMWFiYWQ0YTE0YjFjMTYzZjQ3NDgxYzdiYTE5NTRmZDgxZWQ0MjNhNjQwOCAgZ2FpYWQtdjQuMi4xLXdpbmRvd3MtYW1kNjQuZXhlCiA0MjI4ODNiYTQzYzk2YTZlYTVlZjk1MTJkMzkzMjFkZDEzNTY2MzNjNmE5NTA1NTE3YjljNjUxNzg4ZGY0YTdmICBnYWlhZC12NC4yLjEudGFyLmd6Cg=="}})],1)}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{560:function(t,e,a){"use strict";a.r(e);var l=a(1),i=Object(l.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"build-gaia-deterministically"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-gaia-deterministically"}},[t._v("#")]),t._v(" Build Gaia Deterministically")]),t._v(" "),a("p",[t._v("The "),a("a",{attrs:{href:"https://github.com/tendermint/images/tree/master/rbuilder",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tendermint rbuilder Docker image"),a("OutboundLink")],1),t._v(" provides a deterministic build environment that is used to build Cosmos SDK applications. It provides a way to be reasonably sure that the executables are really built from the git source. It also makes sure that the same, tested dependencies are used and statically built into the executable.")]),t._v(" "),a("h2",{attrs:{id:"prerequisites"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[t._v("#")]),t._v(" Prerequisites")]),t._v(" "),a("p",[t._v("Make sure you have "),a("a",{attrs:{href:"https://docs.docker.com/get-docker/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Docker installed on your system"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("All the following instructions have been tested on "),a("em",[t._v("Ubuntu 18.04.2 LTS")]),t._v(" with "),a("em",[t._v("docker 20.10.2")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"build"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build"}},[t._v("#")]),t._v(" Build")]),t._v(" "),a("p",[t._v("Clone "),a("code",[t._v("gaia")]),t._v(":")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQK"}}),t._v(" "),a("p",[t._v("Checkout the commit, branch, or release tag you want to build:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"Y2QgZ2FpYS8KZ2l0IGNoZWNrb3V0IHY0LjIuMQo="}}),t._v(" "),a("p",[t._v("The buildsystem supports and produces binaries for the following architectures:")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("darwin/amd64")])]),t._v(" "),a("li",[a("strong",[t._v("linux/amd64")])]),t._v(" "),a("li",[a("strong",[t._v("linux/arm64")])]),t._v(" "),a("li",[a("strong",[t._v("windows/amd64")])])]),t._v(" "),a("p",[t._v("Run the following command to launch a build for all supported architectures:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"bWFrZSBkaXN0Y2xlYW4gYnVpbGQtcmVwcm9kdWNpYmxlCg=="}}),t._v(" "),a("p",[t._v("The build system generates both the binaries and deterministic build report in the "),a("code",[t._v("artifacts")]),t._v(" directory.\nThe "),a("code",[t._v("artifacts/build_report")]),t._v(" file contains the list of the build artifacts and their respective checksums, and can be used to verify\nbuild sanity. An example of its contents follows:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"QXBwOiBnYWlhZApWZXJzaW9uOiB2NC4yLjEKQ29tbWl0OiBkYmQ4YTZmYjUyMmM1NzFkZWJmOTU4ODM3ZjkxMTNjNTZkNDE4ZjZiCkZpbGVzOgogMjlkMjE5YjBiMTIwYjMxODhiZDdjZDcyNDlmYzk2YjkgIGdhaWFkLXY0LjIuMS1kYXJ3aW4tYW1kNjQKIDgwMzM4ZDlmMGU1NWVhOGY2YzkzZjJlYzdkNGUxOGQ2ICBnYWlhZC12NC4yLjEtbGludXgtYW1kNjQKIDliYzc3YTUxMmFjY2E2NzNjYTE3NjlhZTY3YjRkNmM3ICBnYWlhZC12NC4yLjEtbGludXgtYXJtNjQKIGM4NDM4Nzg2MGY1MjE3OGUyYmZmZWUwODg5NzU2NGJiICBnYWlhZC12NC4yLjEtd2luZG93cy1hbWQ2NC5leGUKIGMyNWNjYThjY2NlZWMwNmE2ZmFiYWU5MGY2NzFmYWIxICBnYWlhZC12NC4yLjEudGFyLmd6CkNoZWNrc3Vtcy1TaGEyNTY6CiAwNWU1YjkwNjRiYWM0ZTcxZjAxNjJjNGMzYzNiZmY1NWRlZjIyY2EwMTZkMzQyMDVhNTUyMGZlZjg5ZmQyNzc2ICBnYWlhZC12NC4yLjEtZGFyd2luLWFtZDY0CiBjY2RhNDIyY2JkYTI5YzcyM2FhZjI3NjUzYmNmMGY2NDEyZTEzOGVlYzMzZmJhMmI0OWRlMTMxZjlmZmJlMmQyICBnYWlhZC12NC4yLjEtbGludXgtYW1kNjQKIDk1Zjg5ZTgyMTNjYjc1OGQxMmUxYjBiNjMxMjg1OTM4ZGU4MjJkMDRkMmUyNWYzOTllOTljMGI3OTgxNzNjZmQgIGdhaWFkLXY0LjIuMS1saW51eC1hcm02NAogN2VmOThmMDA0MWYxNTczZjBhODYwMWFiYWQ0YTE0YjFjMTYzZjQ3NDgxYzdiYTE5NTRmZDgxZWQ0MjNhNjQwOCAgZ2FpYWQtdjQuMi4xLXdpbmRvd3MtYW1kNjQuZXhlCiA0MjI4ODNiYTQzYzk2YTZlYTVlZjk1MTJkMzkzMjFkZDEzNTY2MzNjNmE5NTA1NTE3YjljNjUxNzg4ZGY0YTdmICBnYWlhZC12NC4yLjEudGFyLmd6Cg=="}})],1)}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/main/assets/js/168.a74a4153.js b/main/assets/js/168.6313da78.js similarity index 99% rename from main/assets/js/168.a74a4153.js rename to main/assets/js/168.6313da78.js index bfdc7c7415b..a164be780fd 100644 --- a/main/assets/js/168.a74a4153.js +++ b/main/assets/js/168.6313da78.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{503:function(a,e,t){"use strict";t.r(e);var o=t(1),s=Object(o.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"service-providers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#service-providers"}},[a._v("#")]),a._v(" Service Providers")]),a._v(" "),t("p",[a._v("'Service Providers' are defined as entities that provide services for end-users that involve some form of interaction with the Cosmos Hub. More specifically, this document is focused on interactions with tokens.")]),a._v(" "),t("p",[a._v("Service Providers are expected to act as trusted points of contact to the blockchain for their end-users. This Service Providers section does not apply to wallet builders that want to provide Light Client functionalities.")]),a._v(" "),t("p",[a._v("This document describes:")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#service-providers"}},[a._v("Service Providers")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#connection-options"}},[a._v("Connection Options")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#running-a-full-node"}},[a._v("Running a Full Node")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#what-is-a-full-node"}},[a._v("What is a Full Node?")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#installation-and-configuration"}},[a._v("Installation and Configuration")])])])]),a._v(" "),t("li",[t("a",{attrs:{href:"#command-line-interface"}},[a._v("Command-Line Interface")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#available-commands"}},[a._v("Available Commands")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#remote-access-to-gaiad"}},[a._v("Remote Access to gaiad")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#create-a-key-pair"}},[a._v("Create a Key Pair")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#check-your-account"}},[a._v("Check your Account")])])])]),a._v(" "),t("li",[t("a",{attrs:{href:"#check-your-balance"}},[a._v("Check your Balance")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#send-coins-using-the-cli"}},[a._v("Send Coins Using the CLI")])])])])])]),a._v(" "),t("li",[t("a",{attrs:{href:"#rest-api"}},[a._v("REST API")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#listen-for-incoming-transactions"}},[a._v("Listen for Incoming Transactions")])])])])])])]),a._v(" "),t("h2",{attrs:{id:"connection-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connection-options"}},[a._v("#")]),a._v(" Connection Options")]),a._v(" "),t("p",[a._v("There are four main technologies to consider to connect to the Cosmos Hub:")]),a._v(" "),t("ul",[t("li",[a._v("Full Nodes: Interact with the blockchain.")]),a._v(" "),t("li",[a._v("REST Server: Serves for HTTP calls.")]),a._v(" "),t("li",[a._v("REST API: Use available endpoints for the REST Server.")]),a._v(" "),t("li",[a._v("GRPC: Connect to the Cosmos Hub using gRPC.")])]),a._v(" "),t("h2",{attrs:{id:"running-a-full-node"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#running-a-full-node"}},[a._v("#")]),a._v(" Running a Full Node")]),a._v(" "),t("h3",{attrs:{id:"what-is-a-full-node"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-a-full-node"}},[a._v("#")]),a._v(" What is a Full Node?")]),a._v(" "),t("p",[a._v("A Full Node is a network node that syncs up with the state of the blockchain. It provides blockchain data to others by using RESTful APIs, a replica of the database by exposing data with interfaces. A Full Node keeps in syncs with the rest of the blockchain nodes and stores the state on disk. If the full node does not have the queried block on disk the full node can go find the blockchain where the queried data lives.")]),a._v(" "),t("h3",{attrs:{id:"installation-and-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installation-and-configuration"}},[a._v("#")]),a._v(" Installation and Configuration")]),a._v(" "),t("p",[a._v("This section describes the steps to run and interact with a full node for the Cosmos Hub.")]),a._v(" "),t("p",[a._v("First, you need to "),t("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[a._v("install the software")]),a._v(".")],1),a._v(" "),t("p",[a._v("Consider running your own "),t("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[a._v("Cosmos Hub Full Node")]),a._v(".")],1),a._v(" "),t("h2",{attrs:{id:"command-line-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#command-line-interface"}},[a._v("#")]),a._v(" Command-Line Interface")]),a._v(" "),t("p",[a._v("The command-line interface (CLI) is the most powerful tool to access the Cosmos Hub and use gaia.\nTo use the CLI, you must install the latest version of "),t("code",[a._v("gaia")]),a._v(" on your machine.")]),a._v(" "),t("p",[a._v("Compare your version with the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[a._v("latest release version"),t("OutboundLink")],1)]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdmVyc2lvbiAtLWxvbmcK"}}),a._v(" "),t("h3",{attrs:{id:"available-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#available-commands"}},[a._v("#")]),a._v(" Available Commands")]),a._v(" "),t("p",[a._v("All available CLI commands are shown when you run the "),t("code",[a._v("gaiad")]),a._v(" command:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQK"}}),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"U3RhcmdhdGUgQ29zbW9zIEh1YiBBcHAKClVzYWdlOgogIGdhaWFkIFtjb21tYW5kXQoKQXZhaWxhYmxlIENvbW1hbmRzOgoKCiAgYWRkLWdlbmVzaXMtYWNjb3VudCBBZGQgYSBnZW5lc2lzIGFjY291bnQgdG8gZ2VuZXNpcy5qc29uCiAgY29sbGVjdC1nZW50eHMgICAgICBDb2xsZWN0IGdlbmVzaXMgdHhzIGFuZCBvdXRwdXQgYSBnZW5lc2lzLmpzb24gZmlsZQogIGRlYnVnICAgICAgICAgICAgICAgVG9vbCBmb3IgaGVscGluZyB3aXRoIGRlYnVnZ2luZyB5b3VyIGFwcGxpY2F0aW9uCiAgZXhwb3J0ICAgICAgICAgICAgICBFeHBvcnQgc3RhdGUgdG8gSlNPTgogIGdlbnR4ICAgICAgICAgICAgICAgR2VuZXJhdGUgYSBnZW5lc2lzIHR4IGNhcnJ5aW5nIGEgc2VsZiBkZWxlZ2F0aW9uCiAgaGVscCAgICAgICAgICAgICAgICBIZWxwIGFib3V0IGFueSBjb21tYW5kCiAgaW5pdCAgICAgICAgICAgICAgICBJbml0aWFsaXplIHByaXZhdGUgdmFsaWRhdG9yLCBwMnAsIGdlbmVzaXMsIGFuZCBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIGZpbGVzCiAga2V5cyAgICAgICAgICAgICAgICBNYW5hZ2UgeW91ciBhcHBsaWNhdGlvbidzIGtleXMKICBtaWdyYXRlICAgICAgICAgICAgIE1pZ3JhdGUgZ2VuZXNpcyB0byBhIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbgogIHF1ZXJ5ICAgICAgICAgICAgICAgUXVlcnlpbmcgc3ViY29tbWFuZHMKICBzdGFydCAgICAgICAgICAgICAgIFJ1biB0aGUgZnVsbCBub2RlCiAgc3RhdHVzICAgICAgICAgICAgICBRdWVyeSByZW1vdGUgbm9kZSBmb3Igc3RhdHVzCiAgdGVuZGVybWludCAgICAgICAgICBUZW5kZXJtaW50IHN1YmNvbW1hbmRzCiAgdGVzdG5ldCAgICAgICAgICAgICBJbml0aWFsaXplIGZpbGVzIGZvciBhIHNpbWFwcCB0ZXN0bmV0CiAgdHggICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbnMgc3ViY29tbWFuZHMKICB1bnNhZmUtcmVzZXQtYWxsICAgIFJlc2V0cyB0aGUgYmxvY2tjaGFpbiBkYXRhYmFzZSwgcmVtb3ZlcyBhZGRyZXNzIGJvb2sgZmlsZXMsIGFuZCByZXNldHMgZGF0YS9wcml2X3ZhbGlkYXRvcl9zdGF0ZS5qc29uIHRvIHRoZSBnZW5lc2lzIHN0YXRlCiAgdmFsaWRhdGUtZ2VuZXNpcyAgICB2YWxpZGF0ZXMgdGhlIGdlbmVzaXMgZmlsZSBhdCB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvciBhdCB0aGUgbG9jYXRpb24gcGFzc2VkIGFzIGFuIGFyZwogIHZlcnNpb24gICAgICAgICAgICAgUHJpbnQgdGhlIGFwcGxpY2F0aW9uIGJpbmFyeSB2ZXJzaW9uIGluZm9ybWF0aW9uCgpGbGFnczoKICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIGhlbHAgZm9yIGdhaWFkCiAgICAgIC0taG9tZSBzdHJpbmcgICAgICAgICBkaXJlY3RvcnkgZm9yIGNvbmZpZyBhbmQgZGF0YSAoZGVmYXVsdCAmcXVvdDsvVXNlcnMvdG9iaWFzLy5nYWlhJnF1b3Q7KQogICAgICAtLWxvZ19mb3JtYXQgc3RyaW5nICAgVGhlIGxvZ2dpbmcgZm9ybWF0IChqc29ufHBsYWluKSAoZGVmYXVsdCAmcXVvdDtwbGFpbiZxdW90OykKICAgICAgLS1sb2dfbGV2ZWwgc3RyaW5nICAgIFRoZSBsb2dnaW5nIGxldmVsICh0cmFjZXxkZWJ1Z3xpbmZvfHdhcm58ZXJyb3J8ZmF0YWx8cGFuaWMpIChkZWZhdWx0ICZxdW90O2luZm8mcXVvdDspCiAgICAgIC0tdHJhY2UgICAgICAgICAgICAgICBwcmludCBvdXQgZnVsbCBzdGFjayB0cmFjZSBvbiBlcnJvcnMKClVzZSAmcXVvdDtnYWlhZCBbY29tbWFuZF0gLS1oZWxwJnF1b3Q7IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4K"}}),a._v(" "),t("p",[a._v("For each displayed command, you can use the "),t("code",[a._v("--help")]),a._v(" flag to get further information.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgLS1oZWxwClVzYWdlOgogIGdhaWFkIHF1ZXJ5IFtmbGFnc10KICBnYWlhZCBxdWVyeSBbY29tbWFuZF0KCkFsaWFzZXM6CiAgcXVlcnksIHEKCkF2YWlsYWJsZSBDb21tYW5kczoKICBhY2NvdW50ICAgICAgICAgICAgICAgICAgUXVlcnkgZm9yIGFjY291bnQgYnkgYWRkcmVzcwogIGF1dGggICAgICAgICAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIGF1dGggbW9kdWxlCiAgYmFuayAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgYmFuayBtb2R1bGUKICBibG9jayAgICAgICAgICAgICAgICAgICAgR2V0IHZlcmlmaWVkIGRhdGEgZm9yIGEgdGhlIGJsb2NrIGF0IGdpdmVuIGhlaWdodAogIGRpc3RyaWJ1dGlvbiAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBtb2R1bGUKICBldmlkZW5jZSAgICAgICAgICAgICAgICAgUXVlcnkgZm9yIGV2aWRlbmNlIGJ5IGhhc2ggb3IgZm9yIGFsbCAocGFnaW5hdGVkKSBzdWJtaXR0ZWQgZXZpZGVuY2UKICBnb3YgICAgICAgICAgICAgICAgICAgICAgUXVlcnlpbmcgY29tbWFuZHMgZm9yIHRoZSBnb3Zlcm5hbmNlIG1vZHVsZQogIGliYyAgICAgICAgICAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIElCQyBtb2R1bGUKICBpYmMtdHJhbnNmZXIgICAgICAgICAgICAgSUJDIGZ1bmdpYmxlIHRva2VuIHRyYW5zZmVyIHF1ZXJ5IHN1YmNvbW1hbmRzCiAgbWludCAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgbWludGluZyBtb2R1bGUKICBwYXJhbXMgICAgICAgICAgICAgICAgICAgUXVlcnlpbmcgY29tbWFuZHMgZm9yIHRoZSBwYXJhbXMgbW9kdWxlCiAgc2xhc2hpbmcgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgc2xhc2hpbmcgbW9kdWxlCiAgc3Rha2luZyAgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgc3Rha2luZyBtb2R1bGUKICB0ZW5kZXJtaW50LXZhbGlkYXRvci1zZXQgR2V0IHRoZSBmdWxsIHRlbmRlcm1pbnQgdmFsaWRhdG9yIHNldCBhdCBnaXZlbiBoZWlnaHQKICB0eCAgICAgICAgICAgICAgICAgICAgICAgUXVlcnkgZm9yIGEgdHJhbnNhY3Rpb24gYnkgaGFzaCBpbiBhIGNvbW1pdHRlZCBibG9jawogIHR4cyAgICAgICAgICAgICAgICAgICAgICBRdWVyeSBmb3IgcGFnaW5hdGVkIHRyYW5zYWN0aW9ucyB0aGF0IG1hdGNoIGEgc2V0IG9mIGV2ZW50cwogIHVwZ3JhZGUgICAgICAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIHVwZ3JhZGUgbW9kdWxlCgpGbGFnczoKICAgICAgLS1jaGFpbi1pZCBzdHJpbmcgICBUaGUgbmV0d29yayBjaGFpbiBJRAogIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGhlbHAgZm9yIHF1ZXJ5CgpHbG9iYWwgRmxhZ3M6CiAgICAgIC0taG9tZSBzdHJpbmcgICAgICAgICBkaXJlY3RvcnkgZm9yIGNvbmZpZyBhbmQgZGF0YSAoZGVmYXVsdCAmcXVvdDsvVXNlcnMvdG9iaWFzLy5nYWlhJnF1b3Q7KQogICAgICAtLWxvZ19mb3JtYXQgc3RyaW5nICAgVGhlIGxvZ2dpbmcgZm9ybWF0IChqc29ufHBsYWluKSAoZGVmYXVsdCAmcXVvdDtwbGFpbiZxdW90OykKICAgICAgLS1sb2dfbGV2ZWwgc3RyaW5nICAgIFRoZSBsb2dnaW5nIGxldmVsICh0cmFjZXxkZWJ1Z3xpbmZvfHdhcm58ZXJyb3J8ZmF0YWx8cGFuaWMpIChkZWZhdWx0ICZxdW90O2luZm8mcXVvdDspCiAgICAgIC0tdHJhY2UgICAgICAgICAgICAgICBwcmludCBvdXQgZnVsbCBzdGFjayB0cmFjZSBvbiBlcnJvcnMKClVzZSAmcXVvdDtnYWlhZCBxdWVyeSBbY29tbWFuZF0gLS1oZWxwJnF1b3Q7IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4K"}}),a._v(" "),t("h3",{attrs:{id:"remote-access-to-gaiad"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#remote-access-to-gaiad"}},[a._v("#")]),a._v(" Remote Access to gaiad")]),a._v(" "),t("p",[a._v("When choosing to remote access a Full Node and gaiad, you need a Full Node running and gaia installed on your local machine.")]),a._v(" "),t("p",[t("code",[a._v("gaiad")]),a._v(" is the tool that enables you to interact with the node that runs on the Cosmos Hub network, whether you run it yourself or not.")]),a._v(" "),t("p",[a._v("To set up "),t("code",[a._v("gaiad")]),a._v(" on a local machine and connect to an existing full node, use the following command:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgY29uZmlnICZsdDtmbGFnJmd0OyAmbHQ7dmFsdWUmZ3Q7Cg=="}}),a._v(" "),t("p",[a._v("First, set up the address of the full node you want to connect to:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgY29uZmlnIG5vZGUgJmx0O2hvc3QmZ3Q7OiZsdDtwb3J0CgovLyBleGFtcGxlOiBnYWlhZCBjb25maWcgbm9kZSBodHRwczovLzc3Ljg3LjEwNi4zMzoyNjY1NyAobm90ZTogdGhpcyBpcyBhIHBsYWNlaG9sZGVyKQo="}}),a._v(" "),t("p",[a._v("If you run your own full node locally, use "),t("code",[a._v("tcp://localhost:26657")]),a._v(" as the address.")]),a._v(" "),t("p",[a._v("Finally, set the "),t("code",[a._v("chain-id")]),a._v(" of the blockchain you want to interact with:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgY29uZmlnIGNoYWluLWlkIGNvc21vc2h1Yi00Cg=="}}),a._v(" "),t("p",[a._v("Next, learn to use CLI commands to interact with the full node.\nYou can run these commands as remote control or when you are running it on your local machine.")]),a._v(" "),t("h3",{attrs:{id:"create-a-key-pair"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-a-key-pair"}},[a._v("#")]),a._v(" Create a Key Pair")]),a._v(" "),t("p",[a._v("The default key is "),t("code",[a._v("secp256k1 elliptic curve")]),a._v(". Use the "),t("code",[a._v("gaiad keys")]),a._v(" command to list the keys and generate a new key.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQga2V5cyBhZGQgJmx0O3lvdXJfa2V5X25hbWUmZ3Q7Cg=="}}),a._v(" "),t("p",[a._v("You will be asked to create a password (at least 8 characters) for this key-pair. This will return the information listed below:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("NAME")]),a._v(": Name of your key")]),a._v(" "),t("li",[t("code",[a._v("TYPE")]),a._v(": Type of your key, always "),t("code",[a._v("local")]),a._v(".")]),a._v(" "),t("li",[t("code",[a._v("ADDRESS")]),a._v(": Your address. Used to receive funds.")]),a._v(" "),t("li",[t("code",[a._v("PUBKEY")]),a._v(": Your public key. Useful for validators.")]),a._v(" "),t("li",[t("code",[a._v("MNEMONIC")]),a._v(": 24-word phrase. "),t("strong",[a._v("Save this mnemonic somewhere safe")]),a._v(". This phrase is required to recover your private key in case you forget the password. The mnemonic is displayed at the end of the output.")])]),a._v(" "),t("p",[a._v("You can see all available keys by typing:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQga2V5cyBsaXN0Cg=="}}),a._v(" "),t("p",[a._v("Use the "),t("code",[a._v("--recover")]),a._v(" flag to add a key that imports a mnemonic to your keyring.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQga2V5cyBhZGQgJmx0O3lvdXJfa2V5X25hbWUmZ3Q7IC0tcmVjb3Zlcgo="}}),a._v(" "),t("h4",{attrs:{id:"check-your-account"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-your-account"}},[a._v("#")]),a._v(" Check your Account")]),a._v(" "),t("p",[a._v("You can view your account by using the "),t("code",[a._v("query account")]),a._v(" command.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgYWNjb3VudCAmbHQ7WU9VUl9BRERSRVNTJmd0Owo="}}),a._v(" "),t("p",[a._v("It will display your account type, account number, public key and current account sequence.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"J0B0eXBlJzogL2Nvc21vcy5hdXRoLnYxYmV0YTEuQmFzZUFjY291bnQKYWNjb3VudF9udW1iZXI6ICZxdW90O3h4eHgmcXVvdDsKYWRkcmVzczogY29zbW9zeHh4eApwdWJfa2V5OgogICdAdHlwZSc6IC9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkKICBrZXk6IHh4eApzZXF1ZW5jZTogJnF1b3Q7eCZxdW90Owo="}}),a._v(" "),t("h3",{attrs:{id:"check-your-balance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-your-balance"}},[a._v("#")]),a._v(" Check your Balance")]),a._v(" "),t("p",[a._v("Query the account balance with the command:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgYmFuayBiYWxhbmNlcyAmbHQ7WU9VUl9BRERSRVNTJmd0Owo="}}),a._v(" "),t("p",[a._v("The response contains keys "),t("code",[a._v("balances")]),a._v(" and "),t("code",[a._v("pagination")]),a._v(".\nEach "),t("code",[a._v("balances")]),a._v(" entry contains an "),t("code",[a._v("amount")]),a._v(" held, connected to a "),t("code",[a._v("denom")]),a._v(" identifier.\nThe typical $ATOM token is identified by the denom "),t("code",[a._v("uatom")]),a._v(". Where 1 "),t("code",[a._v("uatom")]),a._v(" is 0.000001 ATOM.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"YmFsYW5jZXM6Ci0gYW1vdW50OiAmcXVvdDsxMjM0NTY3OCZxdW90OwogIGRlbm9tOiB1YXRvbQpwYWdpbmF0aW9uOgogIG5leHRfa2V5OiBudWxsCiAgdG90YWw6ICZxdW90OzAmcXVvdDsK"}}),a._v(" "),t("p",[a._v("When you query an account that has not received any token yet, the "),t("code",[a._v("balances")]),a._v(" entry is shown as an empty array.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"YmFsYW5jZXM6IFtdCnBhZ2luYXRpb246CiAgbmV4dF9rZXk6IG51bGwKICB0b3RhbDogJnF1b3Q7MCZxdW90Owo="}}),a._v(" "),t("h4",{attrs:{id:"send-coins-using-the-cli"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#send-coins-using-the-cli"}},[a._v("#")]),a._v(" Send Coins Using the CLI")]),a._v(" "),t("p",[a._v("To send coins using the CLI:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggYmFuayBzZW5kIFtmcm9tX2tleV9vcl9hZGRyZXNzXSBbdG9fYWRkcmVzc10gW2Ftb3VudF0gW2ZsYWdzXQo="}}),a._v(" "),t("p",[a._v("Parameters:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("")]),a._v(": Key name or address of sending account.")]),a._v(" "),t("li",[t("code",[a._v("")]),a._v(": Address of the recipient.")]),a._v(" "),t("li",[t("code",[a._v("")]),a._v(": This parameter accepts the format "),t("code",[a._v("")]),a._v(", such as "),t("code",[a._v("1000000uatom")]),a._v(".")])]),a._v(" "),t("p",[a._v("Flags:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--chain-id")]),a._v(": This flag allows you to specify the id of the chain. There are different ids for different testnet chains and mainnet chains.")]),a._v(" "),t("li",[t("code",[a._v("--gas-prices")]),a._v(": This flag allows you to specify the gas prices you pay for the transaction. The format is used as "),t("code",[a._v("0.0025uatom")])])]),a._v(" "),t("h2",{attrs:{id:"rest-api"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rest-api"}},[a._v("#")]),a._v(" REST API")]),a._v(" "),t("p",[a._v("The "),t("a",{attrs:{href:"https://v1.cosmos.network/rpc/v0.44.5",target:"_blank",rel:"noopener noreferrer"}},[a._v("REST API documents"),t("OutboundLink")],1),a._v(" list all the available endpoints that you can use to interact\nwith your full node. Learn "),t("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html#enable-the-rest-api"}},[a._v("how to enable the REST API")]),a._v(" on your full node.")],1),a._v(" "),t("h3",{attrs:{id:"listen-for-incoming-transactions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#listen-for-incoming-transactions"}},[a._v("#")]),a._v(" Listen for Incoming Transactions")]),a._v(" "),t("p",[a._v("The recommended way to listen for incoming transactions is to periodically query the blockchain by using the following HTTP endpoint:")]),a._v(" "),t("p",[t("a",{attrs:{href:"https://cosmos.network/rpc/",target:"_blank",rel:"noopener noreferrer"}},[t("code",[a._v("/cosmos/bank/v1beta1/balances/{address}")]),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{502:function(a,e,t){"use strict";t.r(e);var o=t(1),s=Object(o.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"service-providers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#service-providers"}},[a._v("#")]),a._v(" Service Providers")]),a._v(" "),t("p",[a._v("'Service Providers' are defined as entities that provide services for end-users that involve some form of interaction with the Cosmos Hub. More specifically, this document is focused on interactions with tokens.")]),a._v(" "),t("p",[a._v("Service Providers are expected to act as trusted points of contact to the blockchain for their end-users. This Service Providers section does not apply to wallet builders that want to provide Light Client functionalities.")]),a._v(" "),t("p",[a._v("This document describes:")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#service-providers"}},[a._v("Service Providers")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#connection-options"}},[a._v("Connection Options")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#running-a-full-node"}},[a._v("Running a Full Node")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#what-is-a-full-node"}},[a._v("What is a Full Node?")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#installation-and-configuration"}},[a._v("Installation and Configuration")])])])]),a._v(" "),t("li",[t("a",{attrs:{href:"#command-line-interface"}},[a._v("Command-Line Interface")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#available-commands"}},[a._v("Available Commands")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#remote-access-to-gaiad"}},[a._v("Remote Access to gaiad")])]),a._v(" "),t("li",[t("a",{attrs:{href:"#create-a-key-pair"}},[a._v("Create a Key Pair")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#check-your-account"}},[a._v("Check your Account")])])])]),a._v(" "),t("li",[t("a",{attrs:{href:"#check-your-balance"}},[a._v("Check your Balance")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#send-coins-using-the-cli"}},[a._v("Send Coins Using the CLI")])])])])])]),a._v(" "),t("li",[t("a",{attrs:{href:"#rest-api"}},[a._v("REST API")]),a._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#listen-for-incoming-transactions"}},[a._v("Listen for Incoming Transactions")])])])])])])]),a._v(" "),t("h2",{attrs:{id:"connection-options"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#connection-options"}},[a._v("#")]),a._v(" Connection Options")]),a._v(" "),t("p",[a._v("There are four main technologies to consider to connect to the Cosmos Hub:")]),a._v(" "),t("ul",[t("li",[a._v("Full Nodes: Interact with the blockchain.")]),a._v(" "),t("li",[a._v("REST Server: Serves for HTTP calls.")]),a._v(" "),t("li",[a._v("REST API: Use available endpoints for the REST Server.")]),a._v(" "),t("li",[a._v("GRPC: Connect to the Cosmos Hub using gRPC.")])]),a._v(" "),t("h2",{attrs:{id:"running-a-full-node"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#running-a-full-node"}},[a._v("#")]),a._v(" Running a Full Node")]),a._v(" "),t("h3",{attrs:{id:"what-is-a-full-node"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-is-a-full-node"}},[a._v("#")]),a._v(" What is a Full Node?")]),a._v(" "),t("p",[a._v("A Full Node is a network node that syncs up with the state of the blockchain. It provides blockchain data to others by using RESTful APIs, a replica of the database by exposing data with interfaces. A Full Node keeps in syncs with the rest of the blockchain nodes and stores the state on disk. If the full node does not have the queried block on disk the full node can go find the blockchain where the queried data lives.")]),a._v(" "),t("h3",{attrs:{id:"installation-and-configuration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installation-and-configuration"}},[a._v("#")]),a._v(" Installation and Configuration")]),a._v(" "),t("p",[a._v("This section describes the steps to run and interact with a full node for the Cosmos Hub.")]),a._v(" "),t("p",[a._v("First, you need to "),t("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[a._v("install the software")]),a._v(".")],1),a._v(" "),t("p",[a._v("Consider running your own "),t("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[a._v("Cosmos Hub Full Node")]),a._v(".")],1),a._v(" "),t("h2",{attrs:{id:"command-line-interface"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#command-line-interface"}},[a._v("#")]),a._v(" Command-Line Interface")]),a._v(" "),t("p",[a._v("The command-line interface (CLI) is the most powerful tool to access the Cosmos Hub and use gaia.\nTo use the CLI, you must install the latest version of "),t("code",[a._v("gaia")]),a._v(" on your machine.")]),a._v(" "),t("p",[a._v("Compare your version with the "),t("a",{attrs:{href:"https://github.com/cosmos/gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[a._v("latest release version"),t("OutboundLink")],1)]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdmVyc2lvbiAtLWxvbmcK"}}),a._v(" "),t("h3",{attrs:{id:"available-commands"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#available-commands"}},[a._v("#")]),a._v(" Available Commands")]),a._v(" "),t("p",[a._v("All available CLI commands are shown when you run the "),t("code",[a._v("gaiad")]),a._v(" command:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQK"}}),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"U3RhcmdhdGUgQ29zbW9zIEh1YiBBcHAKClVzYWdlOgogIGdhaWFkIFtjb21tYW5kXQoKQXZhaWxhYmxlIENvbW1hbmRzOgoKCiAgYWRkLWdlbmVzaXMtYWNjb3VudCBBZGQgYSBnZW5lc2lzIGFjY291bnQgdG8gZ2VuZXNpcy5qc29uCiAgY29sbGVjdC1nZW50eHMgICAgICBDb2xsZWN0IGdlbmVzaXMgdHhzIGFuZCBvdXRwdXQgYSBnZW5lc2lzLmpzb24gZmlsZQogIGRlYnVnICAgICAgICAgICAgICAgVG9vbCBmb3IgaGVscGluZyB3aXRoIGRlYnVnZ2luZyB5b3VyIGFwcGxpY2F0aW9uCiAgZXhwb3J0ICAgICAgICAgICAgICBFeHBvcnQgc3RhdGUgdG8gSlNPTgogIGdlbnR4ICAgICAgICAgICAgICAgR2VuZXJhdGUgYSBnZW5lc2lzIHR4IGNhcnJ5aW5nIGEgc2VsZiBkZWxlZ2F0aW9uCiAgaGVscCAgICAgICAgICAgICAgICBIZWxwIGFib3V0IGFueSBjb21tYW5kCiAgaW5pdCAgICAgICAgICAgICAgICBJbml0aWFsaXplIHByaXZhdGUgdmFsaWRhdG9yLCBwMnAsIGdlbmVzaXMsIGFuZCBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIGZpbGVzCiAga2V5cyAgICAgICAgICAgICAgICBNYW5hZ2UgeW91ciBhcHBsaWNhdGlvbidzIGtleXMKICBtaWdyYXRlICAgICAgICAgICAgIE1pZ3JhdGUgZ2VuZXNpcyB0byBhIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbgogIHF1ZXJ5ICAgICAgICAgICAgICAgUXVlcnlpbmcgc3ViY29tbWFuZHMKICBzdGFydCAgICAgICAgICAgICAgIFJ1biB0aGUgZnVsbCBub2RlCiAgc3RhdHVzICAgICAgICAgICAgICBRdWVyeSByZW1vdGUgbm9kZSBmb3Igc3RhdHVzCiAgdGVuZGVybWludCAgICAgICAgICBUZW5kZXJtaW50IHN1YmNvbW1hbmRzCiAgdGVzdG5ldCAgICAgICAgICAgICBJbml0aWFsaXplIGZpbGVzIGZvciBhIHNpbWFwcCB0ZXN0bmV0CiAgdHggICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbnMgc3ViY29tbWFuZHMKICB1bnNhZmUtcmVzZXQtYWxsICAgIFJlc2V0cyB0aGUgYmxvY2tjaGFpbiBkYXRhYmFzZSwgcmVtb3ZlcyBhZGRyZXNzIGJvb2sgZmlsZXMsIGFuZCByZXNldHMgZGF0YS9wcml2X3ZhbGlkYXRvcl9zdGF0ZS5qc29uIHRvIHRoZSBnZW5lc2lzIHN0YXRlCiAgdmFsaWRhdGUtZ2VuZXNpcyAgICB2YWxpZGF0ZXMgdGhlIGdlbmVzaXMgZmlsZSBhdCB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvciBhdCB0aGUgbG9jYXRpb24gcGFzc2VkIGFzIGFuIGFyZwogIHZlcnNpb24gICAgICAgICAgICAgUHJpbnQgdGhlIGFwcGxpY2F0aW9uIGJpbmFyeSB2ZXJzaW9uIGluZm9ybWF0aW9uCgpGbGFnczoKICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIGhlbHAgZm9yIGdhaWFkCiAgICAgIC0taG9tZSBzdHJpbmcgICAgICAgICBkaXJlY3RvcnkgZm9yIGNvbmZpZyBhbmQgZGF0YSAoZGVmYXVsdCAmcXVvdDsvVXNlcnMvdG9iaWFzLy5nYWlhJnF1b3Q7KQogICAgICAtLWxvZ19mb3JtYXQgc3RyaW5nICAgVGhlIGxvZ2dpbmcgZm9ybWF0IChqc29ufHBsYWluKSAoZGVmYXVsdCAmcXVvdDtwbGFpbiZxdW90OykKICAgICAgLS1sb2dfbGV2ZWwgc3RyaW5nICAgIFRoZSBsb2dnaW5nIGxldmVsICh0cmFjZXxkZWJ1Z3xpbmZvfHdhcm58ZXJyb3J8ZmF0YWx8cGFuaWMpIChkZWZhdWx0ICZxdW90O2luZm8mcXVvdDspCiAgICAgIC0tdHJhY2UgICAgICAgICAgICAgICBwcmludCBvdXQgZnVsbCBzdGFjayB0cmFjZSBvbiBlcnJvcnMKClVzZSAmcXVvdDtnYWlhZCBbY29tbWFuZF0gLS1oZWxwJnF1b3Q7IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4K"}}),a._v(" "),t("p",[a._v("For each displayed command, you can use the "),t("code",[a._v("--help")]),a._v(" flag to get further information.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgLS1oZWxwClVzYWdlOgogIGdhaWFkIHF1ZXJ5IFtmbGFnc10KICBnYWlhZCBxdWVyeSBbY29tbWFuZF0KCkFsaWFzZXM6CiAgcXVlcnksIHEKCkF2YWlsYWJsZSBDb21tYW5kczoKICBhY2NvdW50ICAgICAgICAgICAgICAgICAgUXVlcnkgZm9yIGFjY291bnQgYnkgYWRkcmVzcwogIGF1dGggICAgICAgICAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIGF1dGggbW9kdWxlCiAgYmFuayAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgYmFuayBtb2R1bGUKICBibG9jayAgICAgICAgICAgICAgICAgICAgR2V0IHZlcmlmaWVkIGRhdGEgZm9yIGEgdGhlIGJsb2NrIGF0IGdpdmVuIGhlaWdodAogIGRpc3RyaWJ1dGlvbiAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBtb2R1bGUKICBldmlkZW5jZSAgICAgICAgICAgICAgICAgUXVlcnkgZm9yIGV2aWRlbmNlIGJ5IGhhc2ggb3IgZm9yIGFsbCAocGFnaW5hdGVkKSBzdWJtaXR0ZWQgZXZpZGVuY2UKICBnb3YgICAgICAgICAgICAgICAgICAgICAgUXVlcnlpbmcgY29tbWFuZHMgZm9yIHRoZSBnb3Zlcm5hbmNlIG1vZHVsZQogIGliYyAgICAgICAgICAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIElCQyBtb2R1bGUKICBpYmMtdHJhbnNmZXIgICAgICAgICAgICAgSUJDIGZ1bmdpYmxlIHRva2VuIHRyYW5zZmVyIHF1ZXJ5IHN1YmNvbW1hbmRzCiAgbWludCAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgbWludGluZyBtb2R1bGUKICBwYXJhbXMgICAgICAgICAgICAgICAgICAgUXVlcnlpbmcgY29tbWFuZHMgZm9yIHRoZSBwYXJhbXMgbW9kdWxlCiAgc2xhc2hpbmcgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgc2xhc2hpbmcgbW9kdWxlCiAgc3Rha2luZyAgICAgICAgICAgICAgICAgIFF1ZXJ5aW5nIGNvbW1hbmRzIGZvciB0aGUgc3Rha2luZyBtb2R1bGUKICB0ZW5kZXJtaW50LXZhbGlkYXRvci1zZXQgR2V0IHRoZSBmdWxsIHRlbmRlcm1pbnQgdmFsaWRhdG9yIHNldCBhdCBnaXZlbiBoZWlnaHQKICB0eCAgICAgICAgICAgICAgICAgICAgICAgUXVlcnkgZm9yIGEgdHJhbnNhY3Rpb24gYnkgaGFzaCBpbiBhIGNvbW1pdHRlZCBibG9jawogIHR4cyAgICAgICAgICAgICAgICAgICAgICBRdWVyeSBmb3IgcGFnaW5hdGVkIHRyYW5zYWN0aW9ucyB0aGF0IG1hdGNoIGEgc2V0IG9mIGV2ZW50cwogIHVwZ3JhZGUgICAgICAgICAgICAgICAgICBRdWVyeWluZyBjb21tYW5kcyBmb3IgdGhlIHVwZ3JhZGUgbW9kdWxlCgpGbGFnczoKICAgICAgLS1jaGFpbi1pZCBzdHJpbmcgICBUaGUgbmV0d29yayBjaGFpbiBJRAogIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGhlbHAgZm9yIHF1ZXJ5CgpHbG9iYWwgRmxhZ3M6CiAgICAgIC0taG9tZSBzdHJpbmcgICAgICAgICBkaXJlY3RvcnkgZm9yIGNvbmZpZyBhbmQgZGF0YSAoZGVmYXVsdCAmcXVvdDsvVXNlcnMvdG9iaWFzLy5nYWlhJnF1b3Q7KQogICAgICAtLWxvZ19mb3JtYXQgc3RyaW5nICAgVGhlIGxvZ2dpbmcgZm9ybWF0IChqc29ufHBsYWluKSAoZGVmYXVsdCAmcXVvdDtwbGFpbiZxdW90OykKICAgICAgLS1sb2dfbGV2ZWwgc3RyaW5nICAgIFRoZSBsb2dnaW5nIGxldmVsICh0cmFjZXxkZWJ1Z3xpbmZvfHdhcm58ZXJyb3J8ZmF0YWx8cGFuaWMpIChkZWZhdWx0ICZxdW90O2luZm8mcXVvdDspCiAgICAgIC0tdHJhY2UgICAgICAgICAgICAgICBwcmludCBvdXQgZnVsbCBzdGFjayB0cmFjZSBvbiBlcnJvcnMKClVzZSAmcXVvdDtnYWlhZCBxdWVyeSBbY29tbWFuZF0gLS1oZWxwJnF1b3Q7IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4K"}}),a._v(" "),t("h3",{attrs:{id:"remote-access-to-gaiad"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#remote-access-to-gaiad"}},[a._v("#")]),a._v(" Remote Access to gaiad")]),a._v(" "),t("p",[a._v("When choosing to remote access a Full Node and gaiad, you need a Full Node running and gaia installed on your local machine.")]),a._v(" "),t("p",[t("code",[a._v("gaiad")]),a._v(" is the tool that enables you to interact with the node that runs on the Cosmos Hub network, whether you run it yourself or not.")]),a._v(" "),t("p",[a._v("To set up "),t("code",[a._v("gaiad")]),a._v(" on a local machine and connect to an existing full node, use the following command:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgY29uZmlnICZsdDtmbGFnJmd0OyAmbHQ7dmFsdWUmZ3Q7Cg=="}}),a._v(" "),t("p",[a._v("First, set up the address of the full node you want to connect to:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgY29uZmlnIG5vZGUgJmx0O2hvc3QmZ3Q7OiZsdDtwb3J0CgovLyBleGFtcGxlOiBnYWlhZCBjb25maWcgbm9kZSBodHRwczovLzc3Ljg3LjEwNi4zMzoyNjY1NyAobm90ZTogdGhpcyBpcyBhIHBsYWNlaG9sZGVyKQo="}}),a._v(" "),t("p",[a._v("If you run your own full node locally, use "),t("code",[a._v("tcp://localhost:26657")]),a._v(" as the address.")]),a._v(" "),t("p",[a._v("Finally, set the "),t("code",[a._v("chain-id")]),a._v(" of the blockchain you want to interact with:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgY29uZmlnIGNoYWluLWlkIGNvc21vc2h1Yi00Cg=="}}),a._v(" "),t("p",[a._v("Next, learn to use CLI commands to interact with the full node.\nYou can run these commands as remote control or when you are running it on your local machine.")]),a._v(" "),t("h3",{attrs:{id:"create-a-key-pair"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#create-a-key-pair"}},[a._v("#")]),a._v(" Create a Key Pair")]),a._v(" "),t("p",[a._v("The default key is "),t("code",[a._v("secp256k1 elliptic curve")]),a._v(". Use the "),t("code",[a._v("gaiad keys")]),a._v(" command to list the keys and generate a new key.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQga2V5cyBhZGQgJmx0O3lvdXJfa2V5X25hbWUmZ3Q7Cg=="}}),a._v(" "),t("p",[a._v("You will be asked to create a password (at least 8 characters) for this key-pair. This will return the information listed below:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("NAME")]),a._v(": Name of your key")]),a._v(" "),t("li",[t("code",[a._v("TYPE")]),a._v(": Type of your key, always "),t("code",[a._v("local")]),a._v(".")]),a._v(" "),t("li",[t("code",[a._v("ADDRESS")]),a._v(": Your address. Used to receive funds.")]),a._v(" "),t("li",[t("code",[a._v("PUBKEY")]),a._v(": Your public key. Useful for validators.")]),a._v(" "),t("li",[t("code",[a._v("MNEMONIC")]),a._v(": 24-word phrase. "),t("strong",[a._v("Save this mnemonic somewhere safe")]),a._v(". This phrase is required to recover your private key in case you forget the password. The mnemonic is displayed at the end of the output.")])]),a._v(" "),t("p",[a._v("You can see all available keys by typing:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQga2V5cyBsaXN0Cg=="}}),a._v(" "),t("p",[a._v("Use the "),t("code",[a._v("--recover")]),a._v(" flag to add a key that imports a mnemonic to your keyring.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQga2V5cyBhZGQgJmx0O3lvdXJfa2V5X25hbWUmZ3Q7IC0tcmVjb3Zlcgo="}}),a._v(" "),t("h4",{attrs:{id:"check-your-account"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-your-account"}},[a._v("#")]),a._v(" Check your Account")]),a._v(" "),t("p",[a._v("You can view your account by using the "),t("code",[a._v("query account")]),a._v(" command.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgYWNjb3VudCAmbHQ7WU9VUl9BRERSRVNTJmd0Owo="}}),a._v(" "),t("p",[a._v("It will display your account type, account number, public key and current account sequence.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"J0B0eXBlJzogL2Nvc21vcy5hdXRoLnYxYmV0YTEuQmFzZUFjY291bnQKYWNjb3VudF9udW1iZXI6ICZxdW90O3h4eHgmcXVvdDsKYWRkcmVzczogY29zbW9zeHh4eApwdWJfa2V5OgogICdAdHlwZSc6IC9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkKICBrZXk6IHh4eApzZXF1ZW5jZTogJnF1b3Q7eCZxdW90Owo="}}),a._v(" "),t("h3",{attrs:{id:"check-your-balance"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-your-balance"}},[a._v("#")]),a._v(" Check your Balance")]),a._v(" "),t("p",[a._v("Query the account balance with the command:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgYmFuayBiYWxhbmNlcyAmbHQ7WU9VUl9BRERSRVNTJmd0Owo="}}),a._v(" "),t("p",[a._v("The response contains keys "),t("code",[a._v("balances")]),a._v(" and "),t("code",[a._v("pagination")]),a._v(".\nEach "),t("code",[a._v("balances")]),a._v(" entry contains an "),t("code",[a._v("amount")]),a._v(" held, connected to a "),t("code",[a._v("denom")]),a._v(" identifier.\nThe typical $ATOM token is identified by the denom "),t("code",[a._v("uatom")]),a._v(". Where 1 "),t("code",[a._v("uatom")]),a._v(" is 0.000001 ATOM.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"YmFsYW5jZXM6Ci0gYW1vdW50OiAmcXVvdDsxMjM0NTY3OCZxdW90OwogIGRlbm9tOiB1YXRvbQpwYWdpbmF0aW9uOgogIG5leHRfa2V5OiBudWxsCiAgdG90YWw6ICZxdW90OzAmcXVvdDsK"}}),a._v(" "),t("p",[a._v("When you query an account that has not received any token yet, the "),t("code",[a._v("balances")]),a._v(" entry is shown as an empty array.")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"YmFsYW5jZXM6IFtdCnBhZ2luYXRpb246CiAgbmV4dF9rZXk6IG51bGwKICB0b3RhbDogJnF1b3Q7MCZxdW90Owo="}}),a._v(" "),t("h4",{attrs:{id:"send-coins-using-the-cli"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#send-coins-using-the-cli"}},[a._v("#")]),a._v(" Send Coins Using the CLI")]),a._v(" "),t("p",[a._v("To send coins using the CLI:")]),a._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggYmFuayBzZW5kIFtmcm9tX2tleV9vcl9hZGRyZXNzXSBbdG9fYWRkcmVzc10gW2Ftb3VudF0gW2ZsYWdzXQo="}}),a._v(" "),t("p",[a._v("Parameters:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("")]),a._v(": Key name or address of sending account.")]),a._v(" "),t("li",[t("code",[a._v("")]),a._v(": Address of the recipient.")]),a._v(" "),t("li",[t("code",[a._v("")]),a._v(": This parameter accepts the format "),t("code",[a._v("")]),a._v(", such as "),t("code",[a._v("1000000uatom")]),a._v(".")])]),a._v(" "),t("p",[a._v("Flags:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--chain-id")]),a._v(": This flag allows you to specify the id of the chain. There are different ids for different testnet chains and mainnet chains.")]),a._v(" "),t("li",[t("code",[a._v("--gas-prices")]),a._v(": This flag allows you to specify the gas prices you pay for the transaction. The format is used as "),t("code",[a._v("0.0025uatom")])])]),a._v(" "),t("h2",{attrs:{id:"rest-api"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rest-api"}},[a._v("#")]),a._v(" REST API")]),a._v(" "),t("p",[a._v("The "),t("a",{attrs:{href:"https://v1.cosmos.network/rpc/v0.44.5",target:"_blank",rel:"noopener noreferrer"}},[a._v("REST API documents"),t("OutboundLink")],1),a._v(" list all the available endpoints that you can use to interact\nwith your full node. Learn "),t("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html#enable-the-rest-api"}},[a._v("how to enable the REST API")]),a._v(" on your full node.")],1),a._v(" "),t("h3",{attrs:{id:"listen-for-incoming-transactions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#listen-for-incoming-transactions"}},[a._v("#")]),a._v(" Listen for Incoming Transactions")]),a._v(" "),t("p",[a._v("The recommended way to listen for incoming transactions is to periodically query the blockchain by using the following HTTP endpoint:")]),a._v(" "),t("p",[t("a",{attrs:{href:"https://cosmos.network/rpc/",target:"_blank",rel:"noopener noreferrer"}},[t("code",[a._v("/cosmos/bank/v1beta1/balances/{address}")]),t("OutboundLink")],1)])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/169.afca087e.js b/main/assets/js/169.f19f36b4.js similarity index 99% rename from main/assets/js/169.afca087e.js rename to main/assets/js/169.f19f36b4.js index 8d1b89bd0b8..a17e689ae5e 100644 --- a/main/assets/js/169.afca087e.js +++ b/main/assets/js/169.f19f36b4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{502:function(e,t,r){"use strict";r.r(t);var o=r(1),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"previous-releases"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#previous-releases"}},[e._v("#")]),e._v(" Previous Releases")]),e._v(" "),r("p",[e._v("Please see the table below for library versions and other dependencies.")]),e._v(" "),r("h2",{attrs:{id:"cosmos-hub-release-details"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-release-details"}},[e._v("#")]),e._v(" Cosmos Hub Release Details")]),e._v(" "),r("h3",{attrs:{id:"delta-upgrade-completed-july-12-2021"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#delta-upgrade-completed-july-12-2021"}},[e._v("#")]),e._v(" Delta Upgrade (Completed July 12, 2021)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v5.0.x")]),e._v(" "),r("li",[e._v("Gravity DEX:\n"),r("ul",[r("li",[e._v("A scalable AMM model for token swaps")]),e._v(" "),r("li",[e._v("Drives liquidity for tokens on the Cosmos Hub")]),e._v(" "),r("li",[e._v("Delivers price consistency and order execution")])])])]),e._v(" "),r("h3",{attrs:{id:"vega-upgrade-completed-december-14-2021"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#vega-upgrade-completed-december-14-2021"}},[e._v("#")]),e._v(" Vega Upgrade (Completed December 14, 2021)")]),e._v(" "),r("ul",[r("li",[r("p",[e._v("Gaia v6.0.x")])]),e._v(" "),r("li",[r("p",[e._v("Cosmos SDK v0.44")]),e._v(" "),r("ul",[r("li",[e._v("Fee grant module:\n"),r("ul",[r("li",[e._v("Allows paying fees on behalf of another account")])])]),e._v(" "),r("li",[e._v("Authz module:\n"),r("ul",[r("li",[e._v("Provide governance functions to execute transactions on behalf of another account")])])])])]),e._v(" "),r("li",[r("p",[e._v("Liquidity Module v1.4.2")]),e._v(" "),r("ul",[r("li",[e._v("The Gravity DEX with updates for dependencies")])])]),e._v(" "),r("li",[r("p",[e._v("IBC v2.0.0")])]),e._v(" "),r("li",[r("p",[e._v("Tendermint v0.34.14")])]),e._v(" "),r("li",[r("p",[e._v("Cosmosvisor v0.1.0")])]),e._v(" "),r("li",[r("p",[e._v("IBC packet forward middleware v1.0.1")]),e._v(" "),r("ul",[r("li",[e._v("Cosmos Hub as a router")])])]),e._v(" "),r("li",[r("p",[e._v("External chain launch: Gravity Bridge")]),e._v(" "),r("ul",[r("li",[e._v("Transfer ATOM, ETH, ERC-20, and other Cosmos tokens between Ethereum and the Gravity Bridge Chain and by extension all IBC connected chains.")]),e._v(" "),r("li",[e._v("Fee and reward model hosted across Cosmos and Ethereum")])])])]),e._v(" "),r("h3",{attrs:{id:"v7-theta-upgrade-completed-march-25-2022"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#v7-theta-upgrade-completed-march-25-2022"}},[e._v("#")]),e._v(" v7-Theta Upgrade (Completed March 25, 2022)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v7.0.x")]),e._v(" "),r("li",[e._v("Cosmos SDK v0.45\n"),r("ul",[r("li",[e._v("Minimal update with small fixes")])])]),e._v(" "),r("li",[e._v("Gravity DEX: Liquidity v1.4.5\n"),r("ul",[r("li",[e._v("Adds a circuit breaker governance proposal type to disable adding new liquidity in order to make a migration possible.")])])]),e._v(" "),r("li",[e._v("IBC 3.0.0\n"),r("ul",[r("li",[e._v("Interchain Account Module\n"),r("ul",[r("li",[e._v('Allows the creation of accounts on a "Host" blockchain which are controlled by an authentication module on a "Controller" blockchain.')]),e._v(" "),r("li",[e._v('Arbitrary messages are able to be submitted from the "Controller" blockchain to the "Host" blockchain to be executed on behalf of the Interchain Account.')]),e._v(" "),r("li",[e._v("Uses ordered IBC channels, one per account.")])])])])])]),e._v(" "),r("h3",{attrs:{id:"v8-rho-upgrade-expected-q1-2023"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#v8-rho-upgrade-expected-q1-2023"}},[e._v("#")]),e._v(" v8-Rho Upgrade (expected Q1 2023)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v8.0.x")]),e._v(" "),r("li",[e._v("Cosmos SDK v0.45.12\n"),r("ul",[r("li",[e._v("Version bump with a number of fixes")]),e._v(" "),r("li",[e._v("See "),r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/v0.45.12/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("changelog"),r("OutboundLink")],1),e._v(" for details")])])]),e._v(" "),r("li",[e._v("IBC v3.4\n"),r("ul",[r("li",[e._v("See "),r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/blob/v3.4.0/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("changelog"),r("OutboundLink")],1),e._v(" for details")])])]),e._v(" "),r("li",[e._v("IBC Packet Forward Middleware v3.1.1")]),e._v(" "),r("li",[e._v("IBC Msg Whitelist to skip MinFee in CheckTX")]),e._v(" "),r("li",[e._v("Global Fee Module\n"),r("ul",[r("li",[e._v("Allows denoms and min-fees to be governance parameters so gas can be paid in various denoms.")]),e._v(" "),r("li",[e._v("Visible on "),r("a",{attrs:{href:"https://github.com/confio/tgrade/tree/main/x/globalfee",target:"_blank",rel:"noopener noreferrer"}},[e._v("tgrade"),r("OutboundLink")],1),e._v(" already and enabled in "),r("a",{attrs:{href:"https://github.com/confio/tgrade/blob/main/app/ante.go#L72-L92",target:"_blank",rel:"noopener noreferrer"}},[e._v("ante.go"),r("OutboundLink")],1)])])])]),e._v(" "),r("h3",{attrs:{id:"v9-lambda-upgrade-expected-q1-2023"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#v9-lambda-upgrade-expected-q1-2023"}},[e._v("#")]),e._v(" v9-Lambda Upgrade (expected Q1 2023)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v9.0.x")]),e._v(" "),r("li",[e._v("Cosmos SDK v0.45-ics")]),e._v(" "),r("li",[e._v("IBC 4.2")]),e._v(" "),r("li",[e._v("Interchain Security - Replicated Security\n"),r("ul",[r("li",[e._v("The Cosmos solution to shared security that uses IBC Cross Chain Validation (CCV) to relay validator set composition from a Provider Chain (Cosmos Hub) to a Consumer Chain. This validator set is in charge of producing blocks on both networks using separate nodes. Misbehavior on the Consumer Chain results in slashing Provider Chain staking tokens (ATOM).")])])])]),e._v(" "),r("h2",{attrs:{id:"cosmos-hub-summary"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-summary"}},[e._v("#")]),e._v(" Cosmos Hub Summary")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",[e._v("Upgrade Name")]),e._v(" "),r("th",[e._v("Date")]),e._v(" "),r("th",[e._v("Height")]),e._v(" "),r("th",[e._v("Chain Identifier")]),e._v(" "),r("th",[e._v("Tm")]),e._v(" "),r("th",[e._v("Cosmos SDK")]),e._v(" "),r("th",[e._v("Gaia")]),e._v(" "),r("th",[e._v("IBC")])])]),e._v(" "),r("tbody",[r("tr",[r("td",[e._v("Mainnet Launch")]),e._v(" "),r("td",[e._v("13/03/19")]),e._v(" "),r("td",[e._v("0")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-1")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.31.11",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.31.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.33.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.33.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[r("a",{attrs:{href:"https://forum.cosmos.network/t/critical-cosmossdk-security-advisory-updated/2211",target:"_blank",rel:"noopener noreferrer"}},[e._v("Security Hard Fork"),r("OutboundLink")],1)]),e._v(" "),r("td",[e._v("21/04/19")]),e._v(" "),r("td",[e._v("482,100")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-1")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.31.11",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.31.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.34.6",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")]),e._v(")")]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[e._v("Upgrade #1")]),e._v(" "),r("td",[e._v("21/01/20")]),e._v(" "),r("td",[e._v("500043")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-2")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.31.11",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.31.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.34.10",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")]),e._v(")")]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[e._v("Upgrade #2")]),e._v(" "),r("td",[e._v("07/08/20")]),e._v(" "),r("td",[e._v("2902000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-3")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.32.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.32.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.37.15",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.37.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v2.0.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v2.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[e._v("Stargate")]),e._v(" "),r("td",[e._v("18/02/21")]),e._v(" "),r("td",[e._v("5200791")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.3",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.40.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.40.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v4.0.6",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])])]),e._v(" "),r("tr",[r("td",[e._v("Security Hard Fork")]),e._v(" "),r("td",[e._v("?")]),e._v(" "),r("td",[e._v("?")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.8",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.41.4",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.41.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v4.2.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.2.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])])]),e._v(" "),r("tr",[r("td",[e._v("Delta (Gravity DEX)")]),e._v(" "),r("td",[e._v("13/07/21")]),e._v(" "),r("td",[e._v("6910000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.13",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.42.10",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.42.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v5.0.8",target:"_blank",rel:"noopener noreferrer"}},[e._v("v5.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])])]),e._v(" "),r("tr",[r("td",[e._v("Vega v6")]),e._v(" "),r("td",[e._v("13/12/21")]),e._v(" "),r("td",[e._v("8695000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.44.5",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.44.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v6.0.4",target:"_blank",rel:"noopener noreferrer"}},[e._v("v6.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v2.0.3",target:"_blank",rel:"noopener noreferrer"}},[e._v("v2.0.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("Theta v7")]),e._v(" "),r("td",[e._v("12/04/22")]),e._v(" "),r("td",[e._v("10085397")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v7.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v3.0.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("Rho v8")]),e._v(" "),r("td",[e._v("16/02/23")]),e._v(" "),r("td",[e._v("14099412")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/informalsystems/tendermint/releases/tag/v0.34.24",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.12",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v8.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v8.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.4.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v3.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("Lambda v9")]),e._v(" "),r("td",[e._v("15/03/23")]),e._v(" "),r("td",[e._v("14470501")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/informalsystems/tendermint/releases/tag/v0.34.25",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.13-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v9.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v9.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.2.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.2.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v10")]),e._v(" "),r("td",[e._v("21/06/23")]),e._v(" "),r("td",[e._v("15816200")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.28",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v10.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v10.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v11")]),e._v(" "),r("td",[e._v("16/08/23")]),e._v(" "),r("td",[e._v("16596000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.29",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v11.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v12")]),e._v(" "),r("td",[e._v("13/09/23")]),e._v(" "),r("td",[e._v("16985500")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.29",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v12.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v13")]),e._v(" "),r("td",[e._v("11/10/23")]),e._v(" "),r("td",[e._v("17380000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.29",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics-lsm",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v13.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])])])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{503:function(e,t,r){"use strict";r.r(t);var o=r(1),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"previous-releases"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#previous-releases"}},[e._v("#")]),e._v(" Previous Releases")]),e._v(" "),r("p",[e._v("Please see the table below for library versions and other dependencies.")]),e._v(" "),r("h2",{attrs:{id:"cosmos-hub-release-details"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-release-details"}},[e._v("#")]),e._v(" Cosmos Hub Release Details")]),e._v(" "),r("h3",{attrs:{id:"delta-upgrade-completed-july-12-2021"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#delta-upgrade-completed-july-12-2021"}},[e._v("#")]),e._v(" Delta Upgrade (Completed July 12, 2021)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v5.0.x")]),e._v(" "),r("li",[e._v("Gravity DEX:\n"),r("ul",[r("li",[e._v("A scalable AMM model for token swaps")]),e._v(" "),r("li",[e._v("Drives liquidity for tokens on the Cosmos Hub")]),e._v(" "),r("li",[e._v("Delivers price consistency and order execution")])])])]),e._v(" "),r("h3",{attrs:{id:"vega-upgrade-completed-december-14-2021"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#vega-upgrade-completed-december-14-2021"}},[e._v("#")]),e._v(" Vega Upgrade (Completed December 14, 2021)")]),e._v(" "),r("ul",[r("li",[r("p",[e._v("Gaia v6.0.x")])]),e._v(" "),r("li",[r("p",[e._v("Cosmos SDK v0.44")]),e._v(" "),r("ul",[r("li",[e._v("Fee grant module:\n"),r("ul",[r("li",[e._v("Allows paying fees on behalf of another account")])])]),e._v(" "),r("li",[e._v("Authz module:\n"),r("ul",[r("li",[e._v("Provide governance functions to execute transactions on behalf of another account")])])])])]),e._v(" "),r("li",[r("p",[e._v("Liquidity Module v1.4.2")]),e._v(" "),r("ul",[r("li",[e._v("The Gravity DEX with updates for dependencies")])])]),e._v(" "),r("li",[r("p",[e._v("IBC v2.0.0")])]),e._v(" "),r("li",[r("p",[e._v("Tendermint v0.34.14")])]),e._v(" "),r("li",[r("p",[e._v("Cosmosvisor v0.1.0")])]),e._v(" "),r("li",[r("p",[e._v("IBC packet forward middleware v1.0.1")]),e._v(" "),r("ul",[r("li",[e._v("Cosmos Hub as a router")])])]),e._v(" "),r("li",[r("p",[e._v("External chain launch: Gravity Bridge")]),e._v(" "),r("ul",[r("li",[e._v("Transfer ATOM, ETH, ERC-20, and other Cosmos tokens between Ethereum and the Gravity Bridge Chain and by extension all IBC connected chains.")]),e._v(" "),r("li",[e._v("Fee and reward model hosted across Cosmos and Ethereum")])])])]),e._v(" "),r("h3",{attrs:{id:"v7-theta-upgrade-completed-march-25-2022"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#v7-theta-upgrade-completed-march-25-2022"}},[e._v("#")]),e._v(" v7-Theta Upgrade (Completed March 25, 2022)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v7.0.x")]),e._v(" "),r("li",[e._v("Cosmos SDK v0.45\n"),r("ul",[r("li",[e._v("Minimal update with small fixes")])])]),e._v(" "),r("li",[e._v("Gravity DEX: Liquidity v1.4.5\n"),r("ul",[r("li",[e._v("Adds a circuit breaker governance proposal type to disable adding new liquidity in order to make a migration possible.")])])]),e._v(" "),r("li",[e._v("IBC 3.0.0\n"),r("ul",[r("li",[e._v("Interchain Account Module\n"),r("ul",[r("li",[e._v('Allows the creation of accounts on a "Host" blockchain which are controlled by an authentication module on a "Controller" blockchain.')]),e._v(" "),r("li",[e._v('Arbitrary messages are able to be submitted from the "Controller" blockchain to the "Host" blockchain to be executed on behalf of the Interchain Account.')]),e._v(" "),r("li",[e._v("Uses ordered IBC channels, one per account.")])])])])])]),e._v(" "),r("h3",{attrs:{id:"v8-rho-upgrade-expected-q1-2023"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#v8-rho-upgrade-expected-q1-2023"}},[e._v("#")]),e._v(" v8-Rho Upgrade (expected Q1 2023)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v8.0.x")]),e._v(" "),r("li",[e._v("Cosmos SDK v0.45.12\n"),r("ul",[r("li",[e._v("Version bump with a number of fixes")]),e._v(" "),r("li",[e._v("See "),r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/blob/v0.45.12/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("changelog"),r("OutboundLink")],1),e._v(" for details")])])]),e._v(" "),r("li",[e._v("IBC v3.4\n"),r("ul",[r("li",[e._v("See "),r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/blob/v3.4.0/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("changelog"),r("OutboundLink")],1),e._v(" for details")])])]),e._v(" "),r("li",[e._v("IBC Packet Forward Middleware v3.1.1")]),e._v(" "),r("li",[e._v("IBC Msg Whitelist to skip MinFee in CheckTX")]),e._v(" "),r("li",[e._v("Global Fee Module\n"),r("ul",[r("li",[e._v("Allows denoms and min-fees to be governance parameters so gas can be paid in various denoms.")]),e._v(" "),r("li",[e._v("Visible on "),r("a",{attrs:{href:"https://github.com/confio/tgrade/tree/main/x/globalfee",target:"_blank",rel:"noopener noreferrer"}},[e._v("tgrade"),r("OutboundLink")],1),e._v(" already and enabled in "),r("a",{attrs:{href:"https://github.com/confio/tgrade/blob/main/app/ante.go#L72-L92",target:"_blank",rel:"noopener noreferrer"}},[e._v("ante.go"),r("OutboundLink")],1)])])])]),e._v(" "),r("h3",{attrs:{id:"v9-lambda-upgrade-expected-q1-2023"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#v9-lambda-upgrade-expected-q1-2023"}},[e._v("#")]),e._v(" v9-Lambda Upgrade (expected Q1 2023)")]),e._v(" "),r("ul",[r("li",[e._v("Gaia v9.0.x")]),e._v(" "),r("li",[e._v("Cosmos SDK v0.45-ics")]),e._v(" "),r("li",[e._v("IBC 4.2")]),e._v(" "),r("li",[e._v("Interchain Security - Replicated Security\n"),r("ul",[r("li",[e._v("The Cosmos solution to shared security that uses IBC Cross Chain Validation (CCV) to relay validator set composition from a Provider Chain (Cosmos Hub) to a Consumer Chain. This validator set is in charge of producing blocks on both networks using separate nodes. Misbehavior on the Consumer Chain results in slashing Provider Chain staking tokens (ATOM).")])])])]),e._v(" "),r("h2",{attrs:{id:"cosmos-hub-summary"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-summary"}},[e._v("#")]),e._v(" Cosmos Hub Summary")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",[e._v("Upgrade Name")]),e._v(" "),r("th",[e._v("Date")]),e._v(" "),r("th",[e._v("Height")]),e._v(" "),r("th",[e._v("Chain Identifier")]),e._v(" "),r("th",[e._v("Tm")]),e._v(" "),r("th",[e._v("Cosmos SDK")]),e._v(" "),r("th",[e._v("Gaia")]),e._v(" "),r("th",[e._v("IBC")])])]),e._v(" "),r("tbody",[r("tr",[r("td",[e._v("Mainnet Launch")]),e._v(" "),r("td",[e._v("13/03/19")]),e._v(" "),r("td",[e._v("0")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-1")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.31.11",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.31.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.33.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.33.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[r("a",{attrs:{href:"https://forum.cosmos.network/t/critical-cosmossdk-security-advisory-updated/2211",target:"_blank",rel:"noopener noreferrer"}},[e._v("Security Hard Fork"),r("OutboundLink")],1)]),e._v(" "),r("td",[e._v("21/04/19")]),e._v(" "),r("td",[e._v("482,100")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-1")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.31.11",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.31.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.34.6",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")]),e._v(")")]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[e._v("Upgrade #1")]),e._v(" "),r("td",[e._v("21/01/20")]),e._v(" "),r("td",[e._v("500043")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-2")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.31.11",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.31.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.34.10",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")]),e._v(")")]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[e._v("Upgrade #2")]),e._v(" "),r("td",[e._v("07/08/20")]),e._v(" "),r("td",[e._v("2902000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-3")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.32.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.32.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.37.15",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.37.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v2.0.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v2.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[e._v("n/a")])]),e._v(" "),r("tr",[r("td",[e._v("Stargate")]),e._v(" "),r("td",[e._v("18/02/21")]),e._v(" "),r("td",[e._v("5200791")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.3",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.40.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.40.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v4.0.6",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])])]),e._v(" "),r("tr",[r("td",[e._v("Security Hard Fork")]),e._v(" "),r("td",[e._v("?")]),e._v(" "),r("td",[e._v("?")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.8",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.41.4",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.41.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v4.2.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.2.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])])]),e._v(" "),r("tr",[r("td",[e._v("Delta (Gravity DEX)")]),e._v(" "),r("td",[e._v("13/07/21")]),e._v(" "),r("td",[e._v("6910000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.13",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.42.10",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.42.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v5.0.8",target:"_blank",rel:"noopener noreferrer"}},[e._v("v5.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("em",[e._v("Included in Cosmos SDK")])])]),e._v(" "),r("tr",[r("td",[e._v("Vega v6")]),e._v(" "),r("td",[e._v("13/12/21")]),e._v(" "),r("td",[e._v("8695000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.44.5",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.44.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v6.0.4",target:"_blank",rel:"noopener noreferrer"}},[e._v("v6.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v2.0.3",target:"_blank",rel:"noopener noreferrer"}},[e._v("v2.0.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("Theta v7")]),e._v(" "),r("td",[e._v("12/04/22")]),e._v(" "),r("td",[e._v("10085397")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/tendermint/tendermint/releases/tag/v0.34.14",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.1",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v7.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v7.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v3.0.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("Rho v8")]),e._v(" "),r("td",[e._v("16/02/23")]),e._v(" "),r("td",[e._v("14099412")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/informalsystems/tendermint/releases/tag/v0.34.24",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.12",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v8.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v8.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.4.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v3.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("Lambda v9")]),e._v(" "),r("td",[e._v("15/03/23")]),e._v(" "),r("td",[e._v("14470501")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/informalsystems/tendermint/releases/tag/v0.34.25",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.13-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v9.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v9.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.2.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.2.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v10")]),e._v(" "),r("td",[e._v("21/06/23")]),e._v(" "),r("td",[e._v("15816200")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.28",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v10.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v10.0.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v11")]),e._v(" "),r("td",[e._v("16/08/23")]),e._v(" "),r("td",[e._v("16596000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.29",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v11.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v11.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v12")]),e._v(" "),r("td",[e._v("13/09/23")]),e._v(" "),r("td",[e._v("16985500")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.29",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v12.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v12.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])]),e._v(" "),r("tr",[r("td",[e._v("v13")]),e._v(" "),r("td",[e._v("11/10/23")]),e._v(" "),r("td",[e._v("17380000")]),e._v(" "),r("td",[r("code",[e._v("cosmoshub-4")])]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cometbft/cometbft/releases/tag/v0.34.29",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.34.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16-ics-lsm",target:"_blank",rel:"noopener noreferrer"}},[e._v("v0.45.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/gaia/releases/tag/v13.0.0",target:"_blank",rel:"noopener noreferrer"}},[e._v("v13.x"),r("OutboundLink")],1)]),e._v(" "),r("td",[r("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v4.4.2",target:"_blank",rel:"noopener noreferrer"}},[e._v("v4.4.x"),r("OutboundLink")],1)])])])])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/main/assets/js/170.0972700d.js b/main/assets/js/170.9621a3ac.js similarity index 94% rename from main/assets/js/170.0972700d.js rename to main/assets/js/170.9621a3ac.js index 022a5761278..eb9bf99c296 100644 --- a/main/assets/js/170.0972700d.js +++ b/main/assets/js/170.9621a3ac.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{560:function(e,t,o){"use strict";o.r(t);var r=o(1),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"the-cosmos-hub-roadmap"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-cosmos-hub-roadmap"}},[e._v("#")]),e._v(" The Cosmos Hub Roadmap")]),e._v(" "),o("p",[e._v("This Cosmos Hub roadmap serves as a reference for the current planned features of upcoming releases. For past releases, please see the following "),o("RouterLink",{attrs:{to:"/roadmap/"}},[e._v("document")]),e._v(".")],1),e._v(" "),o("p",[e._v("The Cosmos Hub is decentralized and other teams contribute to it as well.")]),e._v(" "),o("p",[e._v("The Informal Systems roadmap can be found "),o("a",{attrs:{href:"https://docs.google.com/document/d/1EsA7WstAVz9kHfLeaBAUYo0cFNKcdkwnfDPP3xKzN4I/edit#heading=h.2hlqd6ar7xmu",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Other teams also contribute actively to the Hub, but that information lives in other repos or project boards.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{559:function(e,t,o){"use strict";o.r(t);var r=o(1),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"the-cosmos-hub-roadmap"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-cosmos-hub-roadmap"}},[e._v("#")]),e._v(" The Cosmos Hub Roadmap")]),e._v(" "),o("p",[e._v("This Cosmos Hub roadmap serves as a reference for the current planned features of upcoming releases. For past releases, please see the following "),o("RouterLink",{attrs:{to:"/roadmap/"}},[e._v("document")]),e._v(".")],1),e._v(" "),o("p",[e._v("The Cosmos Hub is decentralized and other teams contribute to it as well.")]),e._v(" "),o("p",[e._v("The Informal Systems roadmap can be found "),o("a",{attrs:{href:"https://docs.google.com/document/d/1EsA7WstAVz9kHfLeaBAUYo0cFNKcdkwnfDPP3xKzN4I/edit#heading=h.2hlqd6ar7xmu",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Other teams also contribute actively to the Hub, but that information lives in other repos or project boards.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/main/assets/js/182.7f1b8f3a.js b/main/assets/js/182.c90d83a5.js similarity index 98% rename from main/assets/js/182.7f1b8f3a.js rename to main/assets/js/182.c90d83a5.js index 109ca64bab2..8c8d12c05b8 100644 --- a/main/assets/js/182.7f1b8f3a.js +++ b/main/assets/js/182.c90d83a5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{549:function(t,e,a){"use strict";a.r(e);var s=a(1),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"加入公共测试网"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#加入公共测试网"}},[t._v("#")]),t._v(" 加入公共测试网")]),t._v(" "),a("p",[t._v("::: 提示 当前测试网\n请查看"),a("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),a("OutboundLink")],1),t._v("获取最新的公共测试网信息,包含了所使用的 Cosmos-SDK 的正确版本和 genesis 文件。\n:::")]),t._v(" "),a("p",[t._v("::: 警告\n你需要先完成"),a("RouterLink",{attrs:{to:"/zh/gaia-tutorials/installation.html"}},[t._v("安装"),a("code",[t._v("gaia")])]),t._v("\n:::")],1),t._v(" "),a("h2",{attrs:{id:"创建一个新节点"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#创建一个新节点"}},[t._v("#")]),t._v(" 创建一个新节点")]),t._v(" "),a("blockquote",[a("p",[t._v("注意:如果你在之前的测试网中运行过一个全节点,请跳至"),a("a",{attrs:{href:"#upgrading-from-previous-testnet"}},[t._v("升级之前的 Testnet")]),t._v("。")])]),t._v(" "),a("p",[t._v("要创建一个新节点,主网的指令同样适用:")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/zh/gaia-tutorials/join-mainnet.html"}},[t._v("加入 mainnet")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/zh/gaia-tutorials/validators/validator-setup.html"}},[t._v("部署验证人节点")])],1)]),t._v(" "),a("p",[t._v("只有 SDK 的版本和 genesis 文件不同。查看"),a("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),a("OutboundLink")],1),t._v("\n获取测试网的信息,包括 Cosmos-SDK 正确的版本和 genesis 文件。")]),t._v(" "),a("h2",{attrs:{id:"升级之前的-testnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#升级之前的-testnet"}},[t._v("#")]),t._v(" 升级之前的 Testnet")]),t._v(" "),a("p",[t._v("这些指令用以把运行过以前测试网络的全节点升级至最新的测试网络。")]),t._v(" "),a("h3",{attrs:{id:"重置数据"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#重置数据"}},[t._v("#")]),t._v(" 重置数据")]),t._v(" "),a("p",[t._v("首先,移除过期的文件并重置数据:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cm0gJEhPTUUvLmdhaWEvY29uZmlnL2FkZHJib29rLmpzb24gJEhPTUUvLmdhaWEvY29uZmlnL2dlbmVzaXMuanNvbgpnYWlhZCB1bnNhZmUtcmVzZXQtYWxsCg=="}}),t._v(" "),a("p",[t._v("你的节点现在处于原始状态并保留了最初的"),a("code",[t._v("priv_validator.json")]),t._v("文件和"),a("code",[t._v("config.toml")]),t._v("文件。如果之前你还有其他的哨兵节点或者全节点,你的节点仍然会连接他们,但是会失败,因为他们还没有升级。")]),t._v(" "),a("p",[t._v("::: 警告\n确保每个节点有一个独一无二的"),a("code",[t._v("priv_validator.json")]),t._v("文件。不要从一个旧节点拷贝"),a("code",[t._v("priv_validator.json")]),t._v("到多个新的节点。运行两个有着相同"),a("code",[t._v("priv_validator.json")]),t._v("文件的节点会导致双签。\n:::")]),t._v(" "),a("h3",{attrs:{id:"升级软件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#升级软件"}},[t._v("#")]),t._v(" 升级软件")]),t._v(" "),a("p",[t._v("现在升级软件:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvY29zbW9zLXNkay5naXQKY2QgY29zbW9zLXNkawpnaXQgZmV0Y2ggLS1hbGwgJmFtcDsmYW1wOyBnaXQgY2hlY2tvdXQgbWFzdGVyCm1ha2UgaW5zdGFsbAo="}}),t._v(" "),a("p",[t._v("::: 提示\n"),a("em",[t._v("注意")]),t._v(":如果在这一步出现问题,请检查是否安装了最新稳定版本的 Go。\n:::")]),t._v(" "),a("p",[t._v("注意这里我们使用的是包含最新稳定发布版本的"),a("code",[t._v("master")]),t._v("分支。请查看"),a("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),a("OutboundLink")],1),t._v("查看哪个版本的测试网需要哪一个 Cosmos-SDK 版本,在"),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("SDK 发布版"),a("OutboundLink")],1),t._v("中对应的详细信息。")]),t._v(" "),a("p",[t._v("你的全节点已经升级成功!")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{548:function(t,e,a){"use strict";a.r(e);var s=a(1),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"加入公共测试网"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#加入公共测试网"}},[t._v("#")]),t._v(" 加入公共测试网")]),t._v(" "),a("p",[t._v("::: 提示 当前测试网\n请查看"),a("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),a("OutboundLink")],1),t._v("获取最新的公共测试网信息,包含了所使用的 Cosmos-SDK 的正确版本和 genesis 文件。\n:::")]),t._v(" "),a("p",[t._v("::: 警告\n你需要先完成"),a("RouterLink",{attrs:{to:"/zh/gaia-tutorials/installation.html"}},[t._v("安装"),a("code",[t._v("gaia")])]),t._v("\n:::")],1),t._v(" "),a("h2",{attrs:{id:"创建一个新节点"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#创建一个新节点"}},[t._v("#")]),t._v(" 创建一个新节点")]),t._v(" "),a("blockquote",[a("p",[t._v("注意:如果你在之前的测试网中运行过一个全节点,请跳至"),a("a",{attrs:{href:"#upgrading-from-previous-testnet"}},[t._v("升级之前的 Testnet")]),t._v("。")])]),t._v(" "),a("p",[t._v("要创建一个新节点,主网的指令同样适用:")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/zh/gaia-tutorials/join-mainnet.html"}},[t._v("加入 mainnet")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/zh/gaia-tutorials/validators/validator-setup.html"}},[t._v("部署验证人节点")])],1)]),t._v(" "),a("p",[t._v("只有 SDK 的版本和 genesis 文件不同。查看"),a("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),a("OutboundLink")],1),t._v("\n获取测试网的信息,包括 Cosmos-SDK 正确的版本和 genesis 文件。")]),t._v(" "),a("h2",{attrs:{id:"升级之前的-testnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#升级之前的-testnet"}},[t._v("#")]),t._v(" 升级之前的 Testnet")]),t._v(" "),a("p",[t._v("这些指令用以把运行过以前测试网络的全节点升级至最新的测试网络。")]),t._v(" "),a("h3",{attrs:{id:"重置数据"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#重置数据"}},[t._v("#")]),t._v(" 重置数据")]),t._v(" "),a("p",[t._v("首先,移除过期的文件并重置数据:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"cm0gJEhPTUUvLmdhaWEvY29uZmlnL2FkZHJib29rLmpzb24gJEhPTUUvLmdhaWEvY29uZmlnL2dlbmVzaXMuanNvbgpnYWlhZCB1bnNhZmUtcmVzZXQtYWxsCg=="}}),t._v(" "),a("p",[t._v("你的节点现在处于原始状态并保留了最初的"),a("code",[t._v("priv_validator.json")]),t._v("文件和"),a("code",[t._v("config.toml")]),t._v("文件。如果之前你还有其他的哨兵节点或者全节点,你的节点仍然会连接他们,但是会失败,因为他们还没有升级。")]),t._v(" "),a("p",[t._v("::: 警告\n确保每个节点有一个独一无二的"),a("code",[t._v("priv_validator.json")]),t._v("文件。不要从一个旧节点拷贝"),a("code",[t._v("priv_validator.json")]),t._v("到多个新的节点。运行两个有着相同"),a("code",[t._v("priv_validator.json")]),t._v("文件的节点会导致双签。\n:::")]),t._v(" "),a("h3",{attrs:{id:"升级软件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#升级软件"}},[t._v("#")]),t._v(" 升级软件")]),t._v(" "),a("p",[t._v("现在升级软件:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvY29zbW9zLXNkay5naXQKY2QgY29zbW9zLXNkawpnaXQgZmV0Y2ggLS1hbGwgJmFtcDsmYW1wOyBnaXQgY2hlY2tvdXQgbWFzdGVyCm1ha2UgaW5zdGFsbAo="}}),t._v(" "),a("p",[t._v("::: 提示\n"),a("em",[t._v("注意")]),t._v(":如果在这一步出现问题,请检查是否安装了最新稳定版本的 Go。\n:::")]),t._v(" "),a("p",[t._v("注意这里我们使用的是包含最新稳定发布版本的"),a("code",[t._v("master")]),t._v("分支。请查看"),a("a",{attrs:{href:"https://github.com/cosmos/testnets",target:"_blank",rel:"noopener noreferrer"}},[t._v("testnet repo"),a("OutboundLink")],1),t._v("查看哪个版本的测试网需要哪一个 Cosmos-SDK 版本,在"),a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("SDK 发布版"),a("OutboundLink")],1),t._v("中对应的详细信息。")]),t._v(" "),a("p",[t._v("你的全节点已经升级成功!")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/main/assets/js/183.46241736.js b/main/assets/js/183.6a80eba5.js similarity index 97% rename from main/assets/js/183.46241736.js rename to main/assets/js/183.6a80eba5.js index fee1d613394..29d018ef5c7 100644 --- a/main/assets/js/183.46241736.js +++ b/main/assets/js/183.6a80eba5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{548:function(o,a,v){"use strict";v.r(a);var _=v(1),i=Object(_.a)({},(function(){var o=this,a=o.$createElement,v=o._self._c||a;return v("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[v("h1",{attrs:{id:"gaia是什么"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#gaia是什么"}},[o._v("#")]),o._v(" Gaia是什么")]),o._v(" "),v("p",[v("code",[o._v("gaia")]),o._v("是作为Cosmos SDK应用程序的Cosmos Hub的名称。它有两个主要的入口:")]),o._v(" "),v("ul",[v("li",[v("code",[o._v("gaiad")]),o._v(" : Gaia的服务进程,运行着"),v("code",[o._v("gaia")]),o._v("程序的全节点。")]),o._v(" "),v("li",[v("code",[o._v("gaiad")]),o._v(" : Gaia的命令行界面,用于同一个Gaia的全节点交互。")])]),o._v(" "),v("p",[v("code",[o._v("gaia")]),o._v("基于Cosmos SDK构建,使用了如下模块:")]),o._v(" "),v("ul",[v("li",[v("code",[o._v("x/auth")]),o._v(" : 账户和签名")]),o._v(" "),v("li",[v("code",[o._v("x/bank")]),o._v(" : token转账")]),o._v(" "),v("li",[v("code",[o._v("x/staking")]),o._v(" : 抵押逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/mint")]),o._v(" : 增发通胀逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/distribution")]),o._v(" : 费用分配逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/slashing")]),o._v(" : 处罚逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/gov")]),o._v(" : 治理逻辑")]),o._v(" "),v("li",[v("code",[o._v("ibc-go/modules")]),o._v(" : 跨链交易")]),o._v(" "),v("li",[v("code",[o._v("x/params")]),o._v(" : 处理应用级别的参数")])]),o._v(" "),v("blockquote",[v("p",[o._v("关于Cosmos Hub : Cosmos Hub是第一个在Cosmos Network中上线的枢纽。枢纽的作用是用以跨链转账。如果区块链通过IBC协议连接到枢纽,它会自动获得对其它连接至枢纽的区块链的访问能力。Cosmos Hub是一个公开的PoS区块链。它的权益代币称为Atom。")])]),o._v(" "),v("p",[o._v("接着,学习如何"),v("RouterLink",{attrs:{to:"/zh/gaia-tutorials/installation.html"}},[o._v("安装Gaia")])],1)])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{549:function(o,a,v){"use strict";v.r(a);var _=v(1),i=Object(_.a)({},(function(){var o=this,a=o.$createElement,v=o._self._c||a;return v("ContentSlotsDistributor",{attrs:{"slot-key":o.$parent.slotKey}},[v("h1",{attrs:{id:"gaia是什么"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#gaia是什么"}},[o._v("#")]),o._v(" Gaia是什么")]),o._v(" "),v("p",[v("code",[o._v("gaia")]),o._v("是作为Cosmos SDK应用程序的Cosmos Hub的名称。它有两个主要的入口:")]),o._v(" "),v("ul",[v("li",[v("code",[o._v("gaiad")]),o._v(" : Gaia的服务进程,运行着"),v("code",[o._v("gaia")]),o._v("程序的全节点。")]),o._v(" "),v("li",[v("code",[o._v("gaiad")]),o._v(" : Gaia的命令行界面,用于同一个Gaia的全节点交互。")])]),o._v(" "),v("p",[v("code",[o._v("gaia")]),o._v("基于Cosmos SDK构建,使用了如下模块:")]),o._v(" "),v("ul",[v("li",[v("code",[o._v("x/auth")]),o._v(" : 账户和签名")]),o._v(" "),v("li",[v("code",[o._v("x/bank")]),o._v(" : token转账")]),o._v(" "),v("li",[v("code",[o._v("x/staking")]),o._v(" : 抵押逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/mint")]),o._v(" : 增发通胀逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/distribution")]),o._v(" : 费用分配逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/slashing")]),o._v(" : 处罚逻辑")]),o._v(" "),v("li",[v("code",[o._v("x/gov")]),o._v(" : 治理逻辑")]),o._v(" "),v("li",[v("code",[o._v("ibc-go/modules")]),o._v(" : 跨链交易")]),o._v(" "),v("li",[v("code",[o._v("x/params")]),o._v(" : 处理应用级别的参数")])]),o._v(" "),v("blockquote",[v("p",[o._v("关于Cosmos Hub : Cosmos Hub是第一个在Cosmos Network中上线的枢纽。枢纽的作用是用以跨链转账。如果区块链通过IBC协议连接到枢纽,它会自动获得对其它连接至枢纽的区块链的访问能力。Cosmos Hub是一个公开的PoS区块链。它的权益代币称为Atom。")])]),o._v(" "),v("p",[o._v("接着,学习如何"),v("RouterLink",{attrs:{to:"/zh/gaia-tutorials/installation.html"}},[o._v("安装Gaia")])],1)])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file diff --git a/main/assets/js/190.688c9e55.js b/main/assets/js/190.b2731a9d.js similarity index 98% rename from main/assets/js/190.688c9e55.js rename to main/assets/js/190.b2731a9d.js index 7eb73871648..1b7af3fcb1b 100644 --- a/main/assets/js/190.688c9e55.js +++ b/main/assets/js/190.b2731a9d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{544:function(t,r,a){"use strict";a.r(r);var o=a(1),s=Object(o.a)({},(function(){var t=this,r=t.$createElement,a=t._self._c||r;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"验证人概览"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#验证人概览"}},[t._v("#")]),t._v(" 验证人概览")]),t._v(" "),a("h2",{attrs:{id:"介绍"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#介绍"}},[t._v("#")]),t._v(" 介绍")]),t._v(" "),a("p",[t._v("Cosmos Hub基于CometBFT,它依赖于一组负责在区块链中提交新区块的验证人。这些验证人通过广播投票来参与共识协议,投票包含由每个验证人的私钥签名的加密签名。")]),t._v(" "),a("p",[t._v("验证人候选者可以绑定他们自己的Atoms=,还能让token持有者将Atoms=“委托”或“抵押”给他们。Cosmos Hub将有100个验证人,但随着时间的推移,将根据预定义的时间表增加到300个验证人。验证人根据谁拥有最多的投票权来确定——拥有最多股权的前100名验证人候选者将成为Cosmos的验证人。")]),t._v(" "),a("p",[t._v("验证人及其委托人能通过执行CometBFT共识协议赚取Atom作为区块增发奖励和作为交易手续费的其他token。最初,交易费用将以Atom支付,但在将来,Cosmos生态中的任何token如果通过治理加入到白名单中,就能作为有效的交易手续费。请注意,验证人可以设置从他们的委托人身上收取的佣金作为额外奖励。")]),t._v(" "),a("p",[t._v("如果验证人双签,频繁下线或不参与治理,则可以削减其抵押的Atom(包括那些用户委托给他们的Atom)。处罚取决于违规的严重程度。")]),t._v(" "),a("h2",{attrs:{id:"硬件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#硬件"}},[t._v("#")]),t._v(" 硬件")]),t._v(" "),a("p",[t._v("目前还没有合适的针对验证人密钥管理的云解决方案。这可能会等到2018年云解决方案SGX变得更加普及时才会有所改善。由于这个原因,验证人必须设置一个受限访问的物理操作。例如,安置在安全的数据中心。")]),t._v(" "),a("p",[t._v("验证人期望为他们的数据中心装备充足的电力,带宽及存储备份。期望有数个充足的对应光纤,防火墙还有路由的需求的网络设备,一台有着足够硬盘和容错能力的小型服务器。硬件可以先从低端的数据中心配置开始。")]),t._v(" "),a("p",[t._v("我们预计最初的网络需求是比较低的。当前的测试网络只需要极小的资源。之后,带宽,CPU和内存的需求将会随着网络的发展而增长。要存储数年区块链的历史信息的话,推荐配置足够大的的硬盘。")]),t._v(" "),a("h2",{attrs:{id:"创建一个网站"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#创建一个网站"}},[t._v("#")]),t._v(" 创建一个网站")]),t._v(" "),a("p",[t._v("建立一个专门的用以显示验证人信息网站,并在我们的"),a("a",{attrs:{href:"https://forum.cosmos.network/t/validator-candidates/127/3",target:"_blank",rel:"noopener noreferrer"}},[t._v("论坛"),a("OutboundLink")],1),t._v("上表明您想成为验证人的意图。这非常重要,因为委托人希望获得关于他们予以Atom委托的验证人的信息。")]),t._v(" "),a("h2",{attrs:{id:"寻求法律建议"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#寻求法律建议"}},[t._v("#")]),t._v(" 寻求法律建议")]),t._v(" "),a("p",[t._v("如果您打算成为一个验证人,请寻求法律建议")]),t._v(" "),a("h2",{attrs:{id:"社区"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#社区"}},[t._v("#")]),t._v(" 社区")]),t._v(" "),a("p",[t._v("在我们的社区聊天频道和论坛上讨论有关成为验证人的更多细节:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://riot.im/app/#/room/#cosmos_validators:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Validator Chat"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://forum.cosmos.network/c/validating",target:"_blank",rel:"noopener noreferrer"}},[t._v("Validator Forum"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{614:function(t,r,a){"use strict";a.r(r);var o=a(1),s=Object(o.a)({},(function(){var t=this,r=t.$createElement,a=t._self._c||r;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"验证人概览"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#验证人概览"}},[t._v("#")]),t._v(" 验证人概览")]),t._v(" "),a("h2",{attrs:{id:"介绍"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#介绍"}},[t._v("#")]),t._v(" 介绍")]),t._v(" "),a("p",[t._v("Cosmos Hub基于CometBFT,它依赖于一组负责在区块链中提交新区块的验证人。这些验证人通过广播投票来参与共识协议,投票包含由每个验证人的私钥签名的加密签名。")]),t._v(" "),a("p",[t._v("验证人候选者可以绑定他们自己的Atoms=,还能让token持有者将Atoms=“委托”或“抵押”给他们。Cosmos Hub将有100个验证人,但随着时间的推移,将根据预定义的时间表增加到300个验证人。验证人根据谁拥有最多的投票权来确定——拥有最多股权的前100名验证人候选者将成为Cosmos的验证人。")]),t._v(" "),a("p",[t._v("验证人及其委托人能通过执行CometBFT共识协议赚取Atom作为区块增发奖励和作为交易手续费的其他token。最初,交易费用将以Atom支付,但在将来,Cosmos生态中的任何token如果通过治理加入到白名单中,就能作为有效的交易手续费。请注意,验证人可以设置从他们的委托人身上收取的佣金作为额外奖励。")]),t._v(" "),a("p",[t._v("如果验证人双签,频繁下线或不参与治理,则可以削减其抵押的Atom(包括那些用户委托给他们的Atom)。处罚取决于违规的严重程度。")]),t._v(" "),a("h2",{attrs:{id:"硬件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#硬件"}},[t._v("#")]),t._v(" 硬件")]),t._v(" "),a("p",[t._v("目前还没有合适的针对验证人密钥管理的云解决方案。这可能会等到2018年云解决方案SGX变得更加普及时才会有所改善。由于这个原因,验证人必须设置一个受限访问的物理操作。例如,安置在安全的数据中心。")]),t._v(" "),a("p",[t._v("验证人期望为他们的数据中心装备充足的电力,带宽及存储备份。期望有数个充足的对应光纤,防火墙还有路由的需求的网络设备,一台有着足够硬盘和容错能力的小型服务器。硬件可以先从低端的数据中心配置开始。")]),t._v(" "),a("p",[t._v("我们预计最初的网络需求是比较低的。当前的测试网络只需要极小的资源。之后,带宽,CPU和内存的需求将会随着网络的发展而增长。要存储数年区块链的历史信息的话,推荐配置足够大的的硬盘。")]),t._v(" "),a("h2",{attrs:{id:"创建一个网站"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#创建一个网站"}},[t._v("#")]),t._v(" 创建一个网站")]),t._v(" "),a("p",[t._v("建立一个专门的用以显示验证人信息网站,并在我们的"),a("a",{attrs:{href:"https://forum.cosmos.network/t/validator-candidates/127/3",target:"_blank",rel:"noopener noreferrer"}},[t._v("论坛"),a("OutboundLink")],1),t._v("上表明您想成为验证人的意图。这非常重要,因为委托人希望获得关于他们予以Atom委托的验证人的信息。")]),t._v(" "),a("h2",{attrs:{id:"寻求法律建议"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#寻求法律建议"}},[t._v("#")]),t._v(" 寻求法律建议")]),t._v(" "),a("p",[t._v("如果您打算成为一个验证人,请寻求法律建议")]),t._v(" "),a("h2",{attrs:{id:"社区"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#社区"}},[t._v("#")]),t._v(" 社区")]),t._v(" "),a("p",[t._v("在我们的社区聊天频道和论坛上讨论有关成为验证人的更多细节:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://riot.im/app/#/room/#cosmos_validators:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Validator Chat"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("a",{attrs:{href:"https://forum.cosmos.network/c/validating",target:"_blank",rel:"noopener noreferrer"}},[t._v("Validator Forum"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/191.5c7e320c.js b/main/assets/js/191.6befd515.js similarity index 98% rename from main/assets/js/191.5c7e320c.js rename to main/assets/js/191.6befd515.js index 5f6e9486998..994292b10bb 100644 --- a/main/assets/js/191.5c7e320c.js +++ b/main/assets/js/191.6befd515.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{542:function(v,a,t){"use strict";t.r(a);var _=t(1),l=Object(_.a)({},(function(){var v=this,a=v.$createElement,t=v._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[t("h1",{attrs:{id:"验证人安全"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#验证人安全"}},[v._v("#")]),v._v(" 验证人安全")]),v._v(" "),t("p",[v._v("我们鼓励每一个验证人候选者独立运行其操作,因为不同的设置增加了网络的抵抗能力。为了能按时启动主网,验证人候选者现在就应该开始设置了。")]),v._v(" "),t("h2",{attrs:{id:"密钥管理-hsm"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#密钥管理-hsm"}},[v._v("#")]),v._v(" 密钥管理 - HSM")]),v._v(" "),t("p",[v._v("让攻击者无法盗取验证人的密钥是至关重要的任务。如果可能发生盗取,这将会使委托给抵抗力脆弱的验证人的所有股权都处于风险之中。硬件安全模块是防范该风险的一个重要策略。")]),v._v(" "),t("p",[v._v("为了支持Cosmos Hub,HSM模块必须要支持"),t("code",[v._v("ed25519")]),v._v("签名。YubiHSM2支持了"),t("code",[v._v("ed25519")]),v._v(",我们期望在2017年12月时,能有一个可以使用的库。YubiHSM可以保护私钥但是不能确保它不会去重复签署一个区块。")]),v._v(" "),t("p",[v._v("CometBFT团队也在为拓展Ledger Nano S应用以支持验证人签名做贡献。这个应用将会储存最近的区块,并能降低双重签名攻击的风险。")]),v._v(" "),t("p",[v._v("我们会在有更多关于密钥保存安全的可行的解决方案出现时更新这个文档。")]),v._v(" "),t("h2",{attrs:{id:"哨兵节点-ddos防御"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#哨兵节点-ddos防御"}},[v._v("#")]),v._v(" 哨兵节点(DDOS防御)")]),v._v(" "),t("p",[v._v("验证人有责任确保网络能够经受住DDOS攻击。")]),v._v(" "),t("p",[v._v("降低这种风险的一个推荐方案是验证人要在成为哨兵节点的网络拓扑结构上去精心搭建他们的网络结构。")]),v._v(" "),t("p",[v._v("因为验证人节点可以操作自身,也可以被其熟知的其它验证人运行,验证人节点应该只连接到其所信任的全节点上。一个验证人节点通常会运行在一个数据中心。大部分数据中心提供对主流云服务提供商的直接网络连接服务。验证人可以去连接云服务中上的哨兵节点。验证人节点直接连接到其哨兵节点,减缓了DDOS攻击带来的压力,还可以添加多个新的哨兵节点用以轮换来减轻已存在哨兵节点所遭受到的攻击。")]),v._v(" "),t("p",[v._v("哨兵节点能够迅速轮换或者改变它们的IP地址。因为与哨兵节点的连接是在私有的IP网段,基于因特网的攻击不可能直接骚扰到验证人节点。这将确保验证人区块的提交和投票总是能广播至网络中的其余节点。")]),v._v(" "),t("p",[v._v("你可以按照下面的指令去设置你的哨兵节点架构:")]),v._v(" "),t("p",[v._v("验证人节点必须编辑它们的config.toml文件:")]),v._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBub2RlcyB0byBrZWVwIHBlcnNpc3RlbnQgY29ubmVjdGlvbnMgdG8KIyBEbyBub3QgYWRkIHByaXZhdGUgcGVlcnMgdG8gdGhpcyBsaXN0IGlmIHlvdSBkb24ndCB3YW50IHRoZW0gYWR2ZXJ0aXNlZApwZXJzaXN0ZW50X3BlZXJzID1bbGlzdCBvZiBzZW50cnkgbm9kZXNdCgojIFNldCB0cnVlIHRvIGVuYWJsZSB0aGUgcGVlci1leGNoYW5nZSByZWFjdG9yCnBleCA9IGZhbHNlCg=="}}),v._v(" "),t("p",[v._v("哨兵节点应该编辑它们的config.toml文件:")]),v._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwZWVyIElEcyB0byBrZWVwIHByaXZhdGUgKHdpbGwgbm90IGJlIGdvc3NpcGVkIHRvIG90aGVyIHBlZXJzKQpwcml2YXRlX3BlZXJfaWRzID0gJnF1b3Q7aXBhZGRyZXNzIG9mIHZhbGlkYXRvciBub2RlcyZxdW90Owo="}}),v._v(" "),t("h2",{attrs:{id:"环境变量"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#环境变量"}},[v._v("#")]),v._v(" 环境变量")]),v._v(" "),t("p",[v._v("默认情况下,具有以下前缀的大写环境变量将替换小写命令行标志:")]),v._v(" "),t("ul",[t("li",[t("code",[v._v("GA")]),v._v("(对应Gaia的标识)")]),v._v(" "),t("li",[t("code",[v._v("TM")]),v._v("(对应Tendermint, 现在 CometBFT的标识)")]),v._v(" "),t("li",[t("code",[v._v("BC")]),v._v("(对应democli或basecli的标识)")])]),v._v(" "),t("p",[v._v("例如,环境变量"),t("code",[v._v("GA_CHAIN_ID")]),v._v("将映射到命令行标识"),t("code",[v._v("--chain-id")]),v._v("。注意,虽然显式命令行标识优先于环境变量,但环境变量优先于任何配置文件。因此,必须锁定环境,以便在CLI上将任何关键参数定义为标识或防止修改任何环境变量。\n")])],1)}),[],!1,null,null,null);a.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{544:function(v,a,t){"use strict";t.r(a);var _=t(1),l=Object(_.a)({},(function(){var v=this,a=v.$createElement,t=v._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[t("h1",{attrs:{id:"验证人安全"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#验证人安全"}},[v._v("#")]),v._v(" 验证人安全")]),v._v(" "),t("p",[v._v("我们鼓励每一个验证人候选者独立运行其操作,因为不同的设置增加了网络的抵抗能力。为了能按时启动主网,验证人候选者现在就应该开始设置了。")]),v._v(" "),t("h2",{attrs:{id:"密钥管理-hsm"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#密钥管理-hsm"}},[v._v("#")]),v._v(" 密钥管理 - HSM")]),v._v(" "),t("p",[v._v("让攻击者无法盗取验证人的密钥是至关重要的任务。如果可能发生盗取,这将会使委托给抵抗力脆弱的验证人的所有股权都处于风险之中。硬件安全模块是防范该风险的一个重要策略。")]),v._v(" "),t("p",[v._v("为了支持Cosmos Hub,HSM模块必须要支持"),t("code",[v._v("ed25519")]),v._v("签名。YubiHSM2支持了"),t("code",[v._v("ed25519")]),v._v(",我们期望在2017年12月时,能有一个可以使用的库。YubiHSM可以保护私钥但是不能确保它不会去重复签署一个区块。")]),v._v(" "),t("p",[v._v("CometBFT团队也在为拓展Ledger Nano S应用以支持验证人签名做贡献。这个应用将会储存最近的区块,并能降低双重签名攻击的风险。")]),v._v(" "),t("p",[v._v("我们会在有更多关于密钥保存安全的可行的解决方案出现时更新这个文档。")]),v._v(" "),t("h2",{attrs:{id:"哨兵节点-ddos防御"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#哨兵节点-ddos防御"}},[v._v("#")]),v._v(" 哨兵节点(DDOS防御)")]),v._v(" "),t("p",[v._v("验证人有责任确保网络能够经受住DDOS攻击。")]),v._v(" "),t("p",[v._v("降低这种风险的一个推荐方案是验证人要在成为哨兵节点的网络拓扑结构上去精心搭建他们的网络结构。")]),v._v(" "),t("p",[v._v("因为验证人节点可以操作自身,也可以被其熟知的其它验证人运行,验证人节点应该只连接到其所信任的全节点上。一个验证人节点通常会运行在一个数据中心。大部分数据中心提供对主流云服务提供商的直接网络连接服务。验证人可以去连接云服务中上的哨兵节点。验证人节点直接连接到其哨兵节点,减缓了DDOS攻击带来的压力,还可以添加多个新的哨兵节点用以轮换来减轻已存在哨兵节点所遭受到的攻击。")]),v._v(" "),t("p",[v._v("哨兵节点能够迅速轮换或者改变它们的IP地址。因为与哨兵节点的连接是在私有的IP网段,基于因特网的攻击不可能直接骚扰到验证人节点。这将确保验证人区块的提交和投票总是能广播至网络中的其余节点。")]),v._v(" "),t("p",[v._v("你可以按照下面的指令去设置你的哨兵节点架构:")]),v._v(" "),t("p",[v._v("验证人节点必须编辑它们的config.toml文件:")]),v._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBub2RlcyB0byBrZWVwIHBlcnNpc3RlbnQgY29ubmVjdGlvbnMgdG8KIyBEbyBub3QgYWRkIHByaXZhdGUgcGVlcnMgdG8gdGhpcyBsaXN0IGlmIHlvdSBkb24ndCB3YW50IHRoZW0gYWR2ZXJ0aXNlZApwZXJzaXN0ZW50X3BlZXJzID1bbGlzdCBvZiBzZW50cnkgbm9kZXNdCgojIFNldCB0cnVlIHRvIGVuYWJsZSB0aGUgcGVlci1leGNoYW5nZSByZWFjdG9yCnBleCA9IGZhbHNlCg=="}}),v._v(" "),t("p",[v._v("哨兵节点应该编辑它们的config.toml文件:")]),v._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"IyBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwZWVyIElEcyB0byBrZWVwIHByaXZhdGUgKHdpbGwgbm90IGJlIGdvc3NpcGVkIHRvIG90aGVyIHBlZXJzKQpwcml2YXRlX3BlZXJfaWRzID0gJnF1b3Q7aXBhZGRyZXNzIG9mIHZhbGlkYXRvciBub2RlcyZxdW90Owo="}}),v._v(" "),t("h2",{attrs:{id:"环境变量"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#环境变量"}},[v._v("#")]),v._v(" 环境变量")]),v._v(" "),t("p",[v._v("默认情况下,具有以下前缀的大写环境变量将替换小写命令行标志:")]),v._v(" "),t("ul",[t("li",[t("code",[v._v("GA")]),v._v("(对应Gaia的标识)")]),v._v(" "),t("li",[t("code",[v._v("TM")]),v._v("(对应Tendermint, 现在 CometBFT的标识)")]),v._v(" "),t("li",[t("code",[v._v("BC")]),v._v("(对应democli或basecli的标识)")])]),v._v(" "),t("p",[v._v("例如,环境变量"),t("code",[v._v("GA_CHAIN_ID")]),v._v("将映射到命令行标识"),t("code",[v._v("--chain-id")]),v._v("。注意,虽然显式命令行标识优先于环境变量,但环境变量优先于任何配置文件。因此,必须锁定环境,以便在CLI上将任何关键参数定义为标识或防止修改任何环境变量。\n")])],1)}),[],!1,null,null,null);a.default=l.exports}}]); \ No newline at end of file diff --git a/main/assets/js/193.18bf43b3.js b/main/assets/js/193.79c702d6.js similarity index 99% rename from main/assets/js/193.18bf43b3.js rename to main/assets/js/193.79c702d6.js index fe6e8081869..113c8dced5b 100644 --- a/main/assets/js/193.18bf43b3.js +++ b/main/assets/js/193.79c702d6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[193],{614:function(t,a,v){"use strict";v.r(a);var e=v(1),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,v=t._self._c||a;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"在主网上运行一个验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#在主网上运行一个验证人"}},[t._v("#")]),t._v(" 在主网上运行一个验证人")]),t._v(" "),v("p",[t._v("::: 提示\n加入主网所需的信息("),v("code",[t._v("genesis.json")]),t._v("和种子节点)在"),v("a",{attrs:{href:"https://github.com/cosmos/launch/tree/master/latest",target:"_blank",rel:"noopener noreferrer"}},[v("code",[t._v("lauch")]),t._v(" repo"),v("OutboundLink")],1),t._v("中可以找到。\n:::")]),t._v(" "),v("p",[t._v("在启动你验证人节点前,确定你已经完成了"),v("RouterLink",{attrs:{to:"/zh/join-mainnet.html"}},[t._v("启动全节点")]),t._v("教程。")],1),t._v(" "),v("h2",{attrs:{id:"什么是验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#什么是验证人"}},[t._v("#")]),t._v(" 什么是验证人?")]),t._v(" "),v("p",[v("RouterLink",{attrs:{to:"/zh/validators/overview.html"}},[t._v("验证人")]),t._v("负责通过投票来向区块链提交新区块。如果验证人不可访问或者对多个相同高度的区块签名,将会遭受到削减处罚。如果变得不可用或者在同一高度上签名,则会被削减。请阅读有关Sentry节点架构的信息,以保护您的节点免受DDOS攻击并确保高可用性。请阅读"),v("a",{attrs:{href:""}},[t._v("哨兵节点网络架构")]),t._v("来保护你的节点免于DDOS攻击并保证高的可访问性。")],1),t._v(" "),v("p",[t._v("::: 警告\n如果你想要成为Cosmos Hub主网的验证人,你应该"),v("RouterLink",{attrs:{to:"/zh/validators/security.html"}},[t._v("安全研究")]),t._v("。\n:::")],1),t._v(" "),v("p",[t._v("如果你已经"),v("RouterLink",{attrs:{to:"/zh/join-mainnet.html"}},[t._v("启动了一个全节点")]),t._v(",可以跳过下一节的内容。")],1),t._v(" "),v("h2",{attrs:{id:"创建你的验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#创建你的验证人"}},[t._v("#")]),t._v(" 创建你的验证人")]),t._v(" "),v("p",[t._v("你的"),v("code",[t._v("cosmosvalconspub")]),t._v("可以用于通过抵押token来创建一个新的验证人。你可以通过运行下面的命令来查看你的验证人公钥:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdGVuZGVybWludCBzaG93LXZhbGlkYXRvcgo="}}),t._v(" "),v("p",[t._v("使用下面的命令创建你的验证人:")]),t._v(" "),v("p",[t._v("::: 注意\n不要使用多于你所拥有的"),v("code",[t._v("uatom")]),t._v("!\n:::")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggc3Rha2luZyBjcmVhdGUtdmFsaWRhdG9yIFwKICAtLWFtb3VudD0xMDAwMDAwdWF0b20gXAogIC0tcHVia2V5PSQoZ2FpYWQgdGVuZGVybWludCBzaG93LXZhbGlkYXRvcikgXAogIC0tbW9uaWtlcj0mcXVvdDtjaG9vc2UgYSBtb25pa2VyJnF1b3Q7IFwKICAtLWNoYWluLWlkPSZsdDtjaGFpbl9pZCZndDsgXAogIC0tY29tbWlzc2lvbi1yYXRlPSZxdW90OzAuMTAmcXVvdDsgXAogIC0tY29tbWlzc2lvbi1tYXgtcmF0ZT0mcXVvdDswLjIwJnF1b3Q7IFwKICAtLWNvbW1pc3Npb24tbWF4LWNoYW5nZS1yYXRlPSZxdW90OzAuMDEmcXVvdDsgXAogIC0tbWluLXNlbGYtZGVsZWdhdGlvbj0mcXVvdDsxMDAwMDAwJnF1b3Q7IFwKICAtLWdhcz0mcXVvdDthdXRvJnF1b3Q7IFwKICAtLWdhcy1wcmljZXM9JnF1b3Q7MC4wMDI1dWF0b20mcXVvdDsgXAogIC0tZnJvbT0mbHQ7a2V5X25hbWUmZ3Q7Cg=="}}),t._v(" "),v("p",[t._v("::: 提示\n在指定commission参数时,"),v("code",[t._v("commission-max-change-rate")]),t._v("用于度量"),v("code",[t._v("commission-rate")]),t._v("的百分比点数的变化。比如,1%到2%增长了100%,但反映到"),v("code",[t._v("commission-rate")]),t._v("上只有1个百分点。\n:::")]),t._v(" "),v("p",[t._v("::: 提示\n如果没有指定,"),v("code",[t._v("consensus_pubkey")]),t._v("将默认为"),v("code",[t._v("gaiad tendermint show-validator")]),t._v("命令的输出。"),v("code",[t._v("key_name")]),t._v("是将用于对交易进行签名的私钥的名称。\n:::")]),t._v(" "),v("p",[t._v("你可以在第三方区块链浏览器上确定你是否处于验证人行列。")]),t._v(" "),v("h2",{attrs:{id:"以初始验证人的形式加入到genesis文件"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#以初始验证人的形式加入到genesis文件"}},[t._v("#")]),t._v(" 以初始验证人的形式加入到genesis文件")]),t._v(" "),v("p",[t._v("::: 警告\n这一节内容只针对想要在Cosmos Hub主网启动前就作为初始验证人身份的节点。如果主网已经启动,请跳过这一节。\n:::")]),t._v(" "),v("p",[t._v("如果你想作为初始验证人被写入到genesis.json文件,你需要证明你在创世状态中有一些权益代币,创建一个(或多个)交易以将股权与你的验证人地址联系起来,并将此交易包含在genesis文件中。")]),t._v(" "),v("p",[t._v("你的"),v("code",[t._v("cosmosvalconspub")]),t._v("可以用于通过抵押token来创建一个新的验证人。运行如下命令来获取你的验证人节点公钥:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdGVuZGVybWludCBzaG93LXZhbGlkYXRvcgo="}}),t._v(" "),v("p",[t._v("然后执行"),v("code",[t._v("gaiad gentx")]),t._v("命令:")]),t._v(" "),v("p",[t._v("::: 提示\n"),v("code",[t._v("gentx")]),t._v("是持有self-delegation的JSON文件。所有的创世交易会被"),v("code",[t._v("创世协调员")]),t._v("收集起来验证并初始化成一个"),v("code",[t._v("genesis.json")]),t._v("\n:::")]),t._v(" "),v("p",[t._v("::: 注意\n不要使用多于你所拥有的"),v("code",[t._v("uatom")]),t._v("!\n:::")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZ2VudHggXAogIC0tYW1vdW50ICZsdDthbW91bnRfb2ZfZGVsZWdhdGlvbl91YXRvbSZndDsgXAogIC0tY29tbWlzc2lvbi1yYXRlICZsdDtjb21taXNzaW9uX3JhdGUmZ3Q7IFwKICAtLWNvbW1pc3Npb24tbWF4LXJhdGUgJmx0O2NvbW1pc3Npb25fbWF4X3JhdGUmZ3Q7IFwKICAtLWNvbW1pc3Npb24tbWF4LWNoYW5nZS1yYXRlICZsdDtjb21taXNzaW9uX21heF9jaGFuZ2VfcmF0ZSZndDsgXAogIC0tcHVia2V5ICZsdDtjb25zZW5zdXNfcHVia2V5Jmd0OyBcCiAgLS1uYW1lICZsdDtrZXlfbmFtZSZndDsK"}}),t._v(" "),v("p",[t._v("::: 提示\n在指定佣金相关的参数时,"),v("code",[t._v("commission-max-change-rate")]),t._v("用于标识"),v("code",[t._v("commission-rate")]),t._v("每日变动的最大百分点数。比如从1%到2%按比率是增长了100%,但只增加了1个百分点。\n:::")]),t._v(" "),v("p",[t._v("你可以提交你的"),v("code",[t._v("gentx")]),t._v("到"),v("a",{attrs:{href:"https://github.com/cosmos/launch",target:"_blank",rel:"noopener noreferrer"}},[t._v("launch repository"),v("OutboundLink")],1),t._v(". 这些"),v("code",[t._v("gentx")]),t._v("将会组成最终的genesis.json.")]),t._v(" "),v("h2",{attrs:{id:"编辑验证人的描述信息"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#编辑验证人的描述信息"}},[t._v("#")]),t._v(" 编辑验证人的描述信息")]),t._v(" "),v("p",[t._v("你可以编辑验证人的公开说明。此信息用于标识你的验证人节点,委托人将根据此信息来决定要委托的验证人节点。确保为下面的每个标识提供输入,否则该字段将默认为空( "),v("code",[t._v("--moniker")]),t._v("默认为机器名称)。")]),t._v(" "),v("p",[t._v("指定你要编辑的验证人。如果你选择不包含此标识,记住必须要含有--from标识来指定你要更新的验证人。")]),t._v(" "),v("p",[v("code",[t._v("--identity")]),t._v("可用于验证和Keybase或UPort这样的系统一起验证身份。与Keybase一起使用时,"),v("code",[t._v("--identity")]),t._v("应使用由一个"),v("a",{attrs:{href:"https://keybase.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("keybase.io"),v("OutboundLink")],1),t._v("帐户生成的16位字符串。它是一种加密安全的方法,可以跨多个在线网络验证您的身份。 Keybase API允许我们检索你的Keybase头像。这是你可以在验证人配置文件中添加徽标的方法。")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggc3Rha2luZyBlZGl0LXZhbGlkYXRvcgogIC0tbW9uaWtlcj0mcXVvdDtjaG9vc2UgYSBtb25pa2VyJnF1b3Q7IFwKICAtLXdlYnNpdGU9JnF1b3Q7aHR0cHM6Ly9jb3Ntb3MubmV0d29yayZxdW90OyBcCiAgLS1pZGVudGl0eT02QTBENjVFMjlBNENCQzhFIFwKICAtLWRldGFpbHM9JnF1b3Q7VG8gaW5maW5pdHkgYW5kIGJleW9uZCEmcXVvdDsgXAogIC0tY2hhaW4taWQ9Jmx0O2NoYWluX2lkJmd0OyBcCiAgLS1nYXM9JnF1b3Q7YXV0byZxdW90OyBcCiAgLS1nYXMtcHJpY2VzPSZxdW90OzAuMDAyNXVhdG9tJnF1b3Q7IFwKICAtLWZyb209Jmx0O2tleV9uYW1lJmd0OyBcCiAgLS1jb21taXNzaW9uLXJhdGU9JnF1b3Q7MC4xMCZxdW90Owo="}}),t._v(" "),v("p",[v("strong",[t._v("注意")]),t._v(" : "),v("code",[t._v("commission-rate")]),t._v("的值必须符合如下的不变量检查:")]),t._v(" "),v("ul",[v("li",[t._v("必须在 0 和 验证人的"),v("code",[t._v("commission-max-rate")]),t._v(" 之间")]),t._v(" "),v("li",[t._v("不得超过 验证人的"),v("code",[t._v("commission-max-change-rate")]),t._v(", 该参数标识"),v("strong",[t._v("每日")]),t._v("最大的百分点变化数。也就是,一个验证人在"),v("code",[t._v("commission-max-change-rate")]),t._v("的界限内每日一次可调整的最大佣金变化。")])]),t._v(" "),v("h2",{attrs:{id:"查看验证人的描述信息"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#查看验证人的描述信息"}},[t._v("#")]),t._v(" 查看验证人的描述信息")]),t._v(" "),v("p",[t._v("通过该命令查看验证人的描述信息:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgc3Rha2luZyB2YWxpZGF0b3IgJmx0O2FjY291bnRfY29zbW9zJmd0Owo="}}),t._v(" "),v("h2",{attrs:{id:"跟踪验证人的签名信息"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#跟踪验证人的签名信息"}},[t._v("#")]),t._v(" 跟踪验证人的签名信息")]),t._v(" "),v("p",[t._v("你可以通过"),v("code",[t._v("signing-info")]),t._v("命令跟踪过往的验证人签名:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgc2xhc2hpbmcgc2lnbmluZy1pbmZvICZsdDt2YWxpZGF0b3ItcHVia2V5Jmd0O1wKICAtLWNoYWluLWlkPSZsdDtjaGFpbl9pZCZndDsK"}}),t._v(" "),v("h2",{attrs:{id:"unjail验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#unjail验证人"}},[t._v("#")]),t._v(" unjail验证人")]),t._v(" "),v("p",[t._v('当验证人因停机而"jailed"(入狱)时,你必须用节点操作人帐户提交一笔'),v("code",[t._v("Unjail")]),t._v("交易,使其再次能够获得区块提交的奖励(奖励多少取决于分区的fee分配)。")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggc2xhc2hpbmcgdW5qYWlsIFwKIC0tZnJvbT0mbHQ7a2V5X25hbWUmZ3Q7IFwKIC0tY2hhaW4taWQ9Jmx0O2NoYWluX2lkJmd0Owo="}}),t._v(" "),v("h2",{attrs:{id:"确认你的验证人节点正在运行"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#确认你的验证人节点正在运行"}},[t._v("#")]),t._v(" 确认你的验证人节点正在运行")]),t._v(" "),v("p",[t._v("如果下面的命令返回有内容就证明你的验证人正处于活跃状态:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgdGVuZGVybWludC12YWxpZGF0b3Itc2V0IHwgZ3JlcCAmcXVvdDskKGdhaWFkIHRlbmRlcm1pbnQgc2hvdy12YWxpZGF0b3IpJnF1b3Q7Cg=="}}),t._v(" "),v("p",[t._v("你必须要在"),v("a",{attrs:{href:"https://explorecosmos.network/validators",target:"_blank",rel:"noopener noreferrer"}},[t._v("区块浏览器"),v("OutboundLink")],1),t._v("中看见你的验证人节点信息。你可以在"),v("code",[t._v("~/.gaia/config/priv_validator.json")]),t._v("文件中找到"),v("code",[t._v("bech32")]),t._v("编码格式的"),v("code",[t._v("address")]),t._v("。")]),t._v(" "),v("div",{staticClass:"custom-block warning"},[v("p",{staticClass:"custom-block-title"},[t._v("注意")]),t._v(" "),v("p",[t._v("为了能进入验证人集合,你的权重必须超过第100名的验证人。")])]),t._v(" "),v("h2",{attrs:{id:"常见问题"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#常见问题"}},[t._v("#")]),t._v(" 常见问题")]),t._v(" "),v("h3",{attrs:{id:"问题-1-我的验证人的voting-power-0"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#问题-1-我的验证人的voting-power-0"}},[t._v("#")]),t._v(" 问题 #1 : 我的验证人的"),v("code",[t._v("voting_power: 0")])]),t._v(" "),v("p",[t._v("你的验证人已经是jailed状态。如果验证人在最近"),v("code",[t._v("10000")]),t._v("个区块中有超过"),v("code",[t._v("500")]),t._v("个区块没有进行投票,或者被发现双签,就会被jail掉。")]),t._v(" "),v("p",[t._v("如果被因为掉线而遭到jail,你可以重获你的投票股权以重回验证人队伍。首先,如果"),v("code",[t._v("gaiad")]),t._v("没有运行,请再次启动:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),t._v(" "),v("p",[t._v("等待你的全节点追赶上最新的区块高度。然后,运行如下命令。接着,你可以"),v("a",{attrs:{href:""}},[t._v("unjail你的验证人")]),t._v("。")]),t._v(" "),v("p",[t._v("最后,检查你的验证人看看投票股权是否恢复:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhdHVzCg=="}}),t._v(" "),v("p",[t._v("你可能会注意到你的投票权比之前要少。这是由于你的下线受到的削减处罚!")]),t._v(" "),v("h3",{attrs:{id:"问题-2-我的gaiad由于too-many-open-files而崩溃"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#问题-2-我的gaiad由于too-many-open-files而崩溃"}},[t._v("#")]),t._v(" 问题 #2 : 我的"),v("code",[t._v("gaiad")]),t._v("由于"),v("code",[t._v("too many open files")]),t._v("而崩溃")]),t._v(" "),v("p",[t._v("Linux可以打开的默认文件数(每个进程)是1024。已知"),v("code",[t._v("gaiad")]),t._v("可以打开超过1024个文件。这会导致进程崩溃。快速修复运行"),v("code",[t._v("ulimit -n 4096")]),t._v("(增加允许的打开文件数)来快速修复,然后使用"),v("code",[t._v("gaiad start")]),t._v("重新启动进程。如果你使用"),v("code",[t._v("systemd")]),t._v("或其他进程管理器来启动"),v("code",[t._v("gaiad")]),t._v(",则可能需要在该级别进行一些配置。解决此问题的示例"),v("code",[t._v("systemd")]),t._v("文件如下:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"toml",base64:"IyAvZXRjL3N5c3RlbWQvc3lzdGVtL2dhaWFkLnNlcnZpY2UKW1VuaXRdCkRlc2NyaXB0aW9uPUNvc21vcyBHYWlhIE5vZGUKQWZ0ZXI9bmV0d29yay50YXJnZXQKCltTZXJ2aWNlXQpUeXBlPXNpbXBsZQpVc2VyPXVidW50dQpXb3JraW5nRGlyZWN0b3J5PS9ob21lL3VidW50dQpFeGVjU3RhcnQ9L2hvbWUvdWJ1bnR1L2dvL2Jpbi9nYWlhZCBzdGFydApSZXN0YXJ0PW9uLWZhaWx1cmUKUmVzdGFydFNlYz0zCkxpbWl0Tk9GSUxFPTQwOTYKCltJbnN0YWxsXQpXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldAo="}})],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[193],{542:function(t,a,v){"use strict";v.r(a);var e=v(1),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,v=t._self._c||a;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"在主网上运行一个验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#在主网上运行一个验证人"}},[t._v("#")]),t._v(" 在主网上运行一个验证人")]),t._v(" "),v("p",[t._v("::: 提示\n加入主网所需的信息("),v("code",[t._v("genesis.json")]),t._v("和种子节点)在"),v("a",{attrs:{href:"https://github.com/cosmos/launch/tree/master/latest",target:"_blank",rel:"noopener noreferrer"}},[v("code",[t._v("lauch")]),t._v(" repo"),v("OutboundLink")],1),t._v("中可以找到。\n:::")]),t._v(" "),v("p",[t._v("在启动你验证人节点前,确定你已经完成了"),v("RouterLink",{attrs:{to:"/zh/join-mainnet.html"}},[t._v("启动全节点")]),t._v("教程。")],1),t._v(" "),v("h2",{attrs:{id:"什么是验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#什么是验证人"}},[t._v("#")]),t._v(" 什么是验证人?")]),t._v(" "),v("p",[v("RouterLink",{attrs:{to:"/zh/validators/overview.html"}},[t._v("验证人")]),t._v("负责通过投票来向区块链提交新区块。如果验证人不可访问或者对多个相同高度的区块签名,将会遭受到削减处罚。如果变得不可用或者在同一高度上签名,则会被削减。请阅读有关Sentry节点架构的信息,以保护您的节点免受DDOS攻击并确保高可用性。请阅读"),v("a",{attrs:{href:""}},[t._v("哨兵节点网络架构")]),t._v("来保护你的节点免于DDOS攻击并保证高的可访问性。")],1),t._v(" "),v("p",[t._v("::: 警告\n如果你想要成为Cosmos Hub主网的验证人,你应该"),v("RouterLink",{attrs:{to:"/zh/validators/security.html"}},[t._v("安全研究")]),t._v("。\n:::")],1),t._v(" "),v("p",[t._v("如果你已经"),v("RouterLink",{attrs:{to:"/zh/join-mainnet.html"}},[t._v("启动了一个全节点")]),t._v(",可以跳过下一节的内容。")],1),t._v(" "),v("h2",{attrs:{id:"创建你的验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#创建你的验证人"}},[t._v("#")]),t._v(" 创建你的验证人")]),t._v(" "),v("p",[t._v("你的"),v("code",[t._v("cosmosvalconspub")]),t._v("可以用于通过抵押token来创建一个新的验证人。你可以通过运行下面的命令来查看你的验证人公钥:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdGVuZGVybWludCBzaG93LXZhbGlkYXRvcgo="}}),t._v(" "),v("p",[t._v("使用下面的命令创建你的验证人:")]),t._v(" "),v("p",[t._v("::: 注意\n不要使用多于你所拥有的"),v("code",[t._v("uatom")]),t._v("!\n:::")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggc3Rha2luZyBjcmVhdGUtdmFsaWRhdG9yIFwKICAtLWFtb3VudD0xMDAwMDAwdWF0b20gXAogIC0tcHVia2V5PSQoZ2FpYWQgdGVuZGVybWludCBzaG93LXZhbGlkYXRvcikgXAogIC0tbW9uaWtlcj0mcXVvdDtjaG9vc2UgYSBtb25pa2VyJnF1b3Q7IFwKICAtLWNoYWluLWlkPSZsdDtjaGFpbl9pZCZndDsgXAogIC0tY29tbWlzc2lvbi1yYXRlPSZxdW90OzAuMTAmcXVvdDsgXAogIC0tY29tbWlzc2lvbi1tYXgtcmF0ZT0mcXVvdDswLjIwJnF1b3Q7IFwKICAtLWNvbW1pc3Npb24tbWF4LWNoYW5nZS1yYXRlPSZxdW90OzAuMDEmcXVvdDsgXAogIC0tbWluLXNlbGYtZGVsZWdhdGlvbj0mcXVvdDsxMDAwMDAwJnF1b3Q7IFwKICAtLWdhcz0mcXVvdDthdXRvJnF1b3Q7IFwKICAtLWdhcy1wcmljZXM9JnF1b3Q7MC4wMDI1dWF0b20mcXVvdDsgXAogIC0tZnJvbT0mbHQ7a2V5X25hbWUmZ3Q7Cg=="}}),t._v(" "),v("p",[t._v("::: 提示\n在指定commission参数时,"),v("code",[t._v("commission-max-change-rate")]),t._v("用于度量"),v("code",[t._v("commission-rate")]),t._v("的百分比点数的变化。比如,1%到2%增长了100%,但反映到"),v("code",[t._v("commission-rate")]),t._v("上只有1个百分点。\n:::")]),t._v(" "),v("p",[t._v("::: 提示\n如果没有指定,"),v("code",[t._v("consensus_pubkey")]),t._v("将默认为"),v("code",[t._v("gaiad tendermint show-validator")]),t._v("命令的输出。"),v("code",[t._v("key_name")]),t._v("是将用于对交易进行签名的私钥的名称。\n:::")]),t._v(" "),v("p",[t._v("你可以在第三方区块链浏览器上确定你是否处于验证人行列。")]),t._v(" "),v("h2",{attrs:{id:"以初始验证人的形式加入到genesis文件"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#以初始验证人的形式加入到genesis文件"}},[t._v("#")]),t._v(" 以初始验证人的形式加入到genesis文件")]),t._v(" "),v("p",[t._v("::: 警告\n这一节内容只针对想要在Cosmos Hub主网启动前就作为初始验证人身份的节点。如果主网已经启动,请跳过这一节。\n:::")]),t._v(" "),v("p",[t._v("如果你想作为初始验证人被写入到genesis.json文件,你需要证明你在创世状态中有一些权益代币,创建一个(或多个)交易以将股权与你的验证人地址联系起来,并将此交易包含在genesis文件中。")]),t._v(" "),v("p",[t._v("你的"),v("code",[t._v("cosmosvalconspub")]),t._v("可以用于通过抵押token来创建一个新的验证人。运行如下命令来获取你的验证人节点公钥:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdGVuZGVybWludCBzaG93LXZhbGlkYXRvcgo="}}),t._v(" "),v("p",[t._v("然后执行"),v("code",[t._v("gaiad gentx")]),t._v("命令:")]),t._v(" "),v("p",[t._v("::: 提示\n"),v("code",[t._v("gentx")]),t._v("是持有self-delegation的JSON文件。所有的创世交易会被"),v("code",[t._v("创世协调员")]),t._v("收集起来验证并初始化成一个"),v("code",[t._v("genesis.json")]),t._v("\n:::")]),t._v(" "),v("p",[t._v("::: 注意\n不要使用多于你所拥有的"),v("code",[t._v("uatom")]),t._v("!\n:::")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgZ2VudHggXAogIC0tYW1vdW50ICZsdDthbW91bnRfb2ZfZGVsZWdhdGlvbl91YXRvbSZndDsgXAogIC0tY29tbWlzc2lvbi1yYXRlICZsdDtjb21taXNzaW9uX3JhdGUmZ3Q7IFwKICAtLWNvbW1pc3Npb24tbWF4LXJhdGUgJmx0O2NvbW1pc3Npb25fbWF4X3JhdGUmZ3Q7IFwKICAtLWNvbW1pc3Npb24tbWF4LWNoYW5nZS1yYXRlICZsdDtjb21taXNzaW9uX21heF9jaGFuZ2VfcmF0ZSZndDsgXAogIC0tcHVia2V5ICZsdDtjb25zZW5zdXNfcHVia2V5Jmd0OyBcCiAgLS1uYW1lICZsdDtrZXlfbmFtZSZndDsK"}}),t._v(" "),v("p",[t._v("::: 提示\n在指定佣金相关的参数时,"),v("code",[t._v("commission-max-change-rate")]),t._v("用于标识"),v("code",[t._v("commission-rate")]),t._v("每日变动的最大百分点数。比如从1%到2%按比率是增长了100%,但只增加了1个百分点。\n:::")]),t._v(" "),v("p",[t._v("你可以提交你的"),v("code",[t._v("gentx")]),t._v("到"),v("a",{attrs:{href:"https://github.com/cosmos/launch",target:"_blank",rel:"noopener noreferrer"}},[t._v("launch repository"),v("OutboundLink")],1),t._v(". 这些"),v("code",[t._v("gentx")]),t._v("将会组成最终的genesis.json.")]),t._v(" "),v("h2",{attrs:{id:"编辑验证人的描述信息"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#编辑验证人的描述信息"}},[t._v("#")]),t._v(" 编辑验证人的描述信息")]),t._v(" "),v("p",[t._v("你可以编辑验证人的公开说明。此信息用于标识你的验证人节点,委托人将根据此信息来决定要委托的验证人节点。确保为下面的每个标识提供输入,否则该字段将默认为空( "),v("code",[t._v("--moniker")]),t._v("默认为机器名称)。")]),t._v(" "),v("p",[t._v("指定你要编辑的验证人。如果你选择不包含此标识,记住必须要含有--from标识来指定你要更新的验证人。")]),t._v(" "),v("p",[v("code",[t._v("--identity")]),t._v("可用于验证和Keybase或UPort这样的系统一起验证身份。与Keybase一起使用时,"),v("code",[t._v("--identity")]),t._v("应使用由一个"),v("a",{attrs:{href:"https://keybase.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("keybase.io"),v("OutboundLink")],1),t._v("帐户生成的16位字符串。它是一种加密安全的方法,可以跨多个在线网络验证您的身份。 Keybase API允许我们检索你的Keybase头像。这是你可以在验证人配置文件中添加徽标的方法。")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggc3Rha2luZyBlZGl0LXZhbGlkYXRvcgogIC0tbW9uaWtlcj0mcXVvdDtjaG9vc2UgYSBtb25pa2VyJnF1b3Q7IFwKICAtLXdlYnNpdGU9JnF1b3Q7aHR0cHM6Ly9jb3Ntb3MubmV0d29yayZxdW90OyBcCiAgLS1pZGVudGl0eT02QTBENjVFMjlBNENCQzhFIFwKICAtLWRldGFpbHM9JnF1b3Q7VG8gaW5maW5pdHkgYW5kIGJleW9uZCEmcXVvdDsgXAogIC0tY2hhaW4taWQ9Jmx0O2NoYWluX2lkJmd0OyBcCiAgLS1nYXM9JnF1b3Q7YXV0byZxdW90OyBcCiAgLS1nYXMtcHJpY2VzPSZxdW90OzAuMDAyNXVhdG9tJnF1b3Q7IFwKICAtLWZyb209Jmx0O2tleV9uYW1lJmd0OyBcCiAgLS1jb21taXNzaW9uLXJhdGU9JnF1b3Q7MC4xMCZxdW90Owo="}}),t._v(" "),v("p",[v("strong",[t._v("注意")]),t._v(" : "),v("code",[t._v("commission-rate")]),t._v("的值必须符合如下的不变量检查:")]),t._v(" "),v("ul",[v("li",[t._v("必须在 0 和 验证人的"),v("code",[t._v("commission-max-rate")]),t._v(" 之间")]),t._v(" "),v("li",[t._v("不得超过 验证人的"),v("code",[t._v("commission-max-change-rate")]),t._v(", 该参数标识"),v("strong",[t._v("每日")]),t._v("最大的百分点变化数。也就是,一个验证人在"),v("code",[t._v("commission-max-change-rate")]),t._v("的界限内每日一次可调整的最大佣金变化。")])]),t._v(" "),v("h2",{attrs:{id:"查看验证人的描述信息"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#查看验证人的描述信息"}},[t._v("#")]),t._v(" 查看验证人的描述信息")]),t._v(" "),v("p",[t._v("通过该命令查看验证人的描述信息:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgc3Rha2luZyB2YWxpZGF0b3IgJmx0O2FjY291bnRfY29zbW9zJmd0Owo="}}),t._v(" "),v("h2",{attrs:{id:"跟踪验证人的签名信息"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#跟踪验证人的签名信息"}},[t._v("#")]),t._v(" 跟踪验证人的签名信息")]),t._v(" "),v("p",[t._v("你可以通过"),v("code",[t._v("signing-info")]),t._v("命令跟踪过往的验证人签名:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgc2xhc2hpbmcgc2lnbmluZy1pbmZvICZsdDt2YWxpZGF0b3ItcHVia2V5Jmd0O1wKICAtLWNoYWluLWlkPSZsdDtjaGFpbl9pZCZndDsK"}}),t._v(" "),v("h2",{attrs:{id:"unjail验证人"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#unjail验证人"}},[t._v("#")]),t._v(" unjail验证人")]),t._v(" "),v("p",[t._v('当验证人因停机而"jailed"(入狱)时,你必须用节点操作人帐户提交一笔'),v("code",[t._v("Unjail")]),t._v("交易,使其再次能够获得区块提交的奖励(奖励多少取决于分区的fee分配)。")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdHggc2xhc2hpbmcgdW5qYWlsIFwKIC0tZnJvbT0mbHQ7a2V5X25hbWUmZ3Q7IFwKIC0tY2hhaW4taWQ9Jmx0O2NoYWluX2lkJmd0Owo="}}),t._v(" "),v("h2",{attrs:{id:"确认你的验证人节点正在运行"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#确认你的验证人节点正在运行"}},[t._v("#")]),t._v(" 确认你的验证人节点正在运行")]),t._v(" "),v("p",[t._v("如果下面的命令返回有内容就证明你的验证人正处于活跃状态:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgcXVlcnkgdGVuZGVybWludC12YWxpZGF0b3Itc2V0IHwgZ3JlcCAmcXVvdDskKGdhaWFkIHRlbmRlcm1pbnQgc2hvdy12YWxpZGF0b3IpJnF1b3Q7Cg=="}}),t._v(" "),v("p",[t._v("你必须要在"),v("a",{attrs:{href:"https://explorecosmos.network/validators",target:"_blank",rel:"noopener noreferrer"}},[t._v("区块浏览器"),v("OutboundLink")],1),t._v("中看见你的验证人节点信息。你可以在"),v("code",[t._v("~/.gaia/config/priv_validator.json")]),t._v("文件中找到"),v("code",[t._v("bech32")]),t._v("编码格式的"),v("code",[t._v("address")]),t._v("。")]),t._v(" "),v("div",{staticClass:"custom-block warning"},[v("p",{staticClass:"custom-block-title"},[t._v("注意")]),t._v(" "),v("p",[t._v("为了能进入验证人集合,你的权重必须超过第100名的验证人。")])]),t._v(" "),v("h2",{attrs:{id:"常见问题"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#常见问题"}},[t._v("#")]),t._v(" 常见问题")]),t._v(" "),v("h3",{attrs:{id:"问题-1-我的验证人的voting-power-0"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#问题-1-我的验证人的voting-power-0"}},[t._v("#")]),t._v(" 问题 #1 : 我的验证人的"),v("code",[t._v("voting_power: 0")])]),t._v(" "),v("p",[t._v("你的验证人已经是jailed状态。如果验证人在最近"),v("code",[t._v("10000")]),t._v("个区块中有超过"),v("code",[t._v("500")]),t._v("个区块没有进行投票,或者被发现双签,就会被jail掉。")]),t._v(" "),v("p",[t._v("如果被因为掉线而遭到jail,你可以重获你的投票股权以重回验证人队伍。首先,如果"),v("code",[t._v("gaiad")]),t._v("没有运行,请再次启动:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhcnQK"}}),t._v(" "),v("p",[t._v("等待你的全节点追赶上最新的区块高度。然后,运行如下命令。接着,你可以"),v("a",{attrs:{href:""}},[t._v("unjail你的验证人")]),t._v("。")]),t._v(" "),v("p",[t._v("最后,检查你的验证人看看投票股权是否恢复:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgc3RhdHVzCg=="}}),t._v(" "),v("p",[t._v("你可能会注意到你的投票权比之前要少。这是由于你的下线受到的削减处罚!")]),t._v(" "),v("h3",{attrs:{id:"问题-2-我的gaiad由于too-many-open-files而崩溃"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#问题-2-我的gaiad由于too-many-open-files而崩溃"}},[t._v("#")]),t._v(" 问题 #2 : 我的"),v("code",[t._v("gaiad")]),t._v("由于"),v("code",[t._v("too many open files")]),t._v("而崩溃")]),t._v(" "),v("p",[t._v("Linux可以打开的默认文件数(每个进程)是1024。已知"),v("code",[t._v("gaiad")]),t._v("可以打开超过1024个文件。这会导致进程崩溃。快速修复运行"),v("code",[t._v("ulimit -n 4096")]),t._v("(增加允许的打开文件数)来快速修复,然后使用"),v("code",[t._v("gaiad start")]),t._v("重新启动进程。如果你使用"),v("code",[t._v("systemd")]),t._v("或其他进程管理器来启动"),v("code",[t._v("gaiad")]),t._v(",则可能需要在该级别进行一些配置。解决此问题的示例"),v("code",[t._v("systemd")]),t._v("文件如下:")]),t._v(" "),v("tm-code-block",{staticClass:"codeblock",attrs:{language:"toml",base64:"IyAvZXRjL3N5c3RlbWQvc3lzdGVtL2dhaWFkLnNlcnZpY2UKW1VuaXRdCkRlc2NyaXB0aW9uPUNvc21vcyBHYWlhIE5vZGUKQWZ0ZXI9bmV0d29yay50YXJnZXQKCltTZXJ2aWNlXQpUeXBlPXNpbXBsZQpVc2VyPXVidW50dQpXb3JraW5nRGlyZWN0b3J5PS9ob21lL3VidW50dQpFeGVjU3RhcnQ9L2hvbWUvdWJ1bnR1L2dvL2Jpbi9nYWlhZCBzdGFydApSZXN0YXJ0PW9uLWZhaWx1cmUKUmVzdGFydFNlYz0zCkxpbWl0Tk9GSUxFPTQwOTYKCltJbnN0YWxsXQpXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldAo="}})],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/37.bcbad381.js b/main/assets/js/37.95af2589.js similarity index 98% rename from main/assets/js/37.bcbad381.js rename to main/assets/js/37.95af2589.js index 3c20e7e9388..6229ea1d0b4 100644 --- a/main/assets/js/37.bcbad381.js +++ b/main/assets/js/37.95af2589.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{639:function(l,C,e){"use strict";e.r(C);var t=e(1),d=Object(t.a)({},(function(){var l=this,C=l.$createElement,e=l._self._c||C;return e("svg",{attrs:{width:"100%",height:"100%",viewBox:"0 0 174 200",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M87 6.9282L6.39746 53.4641V146.536L87 193.072L167.603 146.536V53.4641L87 6.9282ZM173.603 50L87 0L0.397461 50V150L87 200L173.603 150V50Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M86.9655 64.135C80.7752 64.135 75.7396 59.0957 75.7396 52.9009C75.7396 46.7063 80.7752 41.6667 86.9655 41.6667C93.1557 41.6667 98.1919 46.7063 98.1919 52.9009C98.1919 59.0957 93.1557 64.135 86.9655 64.135ZM86.9655 47.7878C84.1479 47.7878 81.8562 50.0816 81.8562 52.9009C81.8562 55.7202 84.1479 58.0139 86.9655 58.0139C89.783 58.0139 92.0753 55.7202 92.0753 52.9009C92.0753 50.0816 89.783 47.7878 86.9655 47.7878Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M84.0729 65.9932C85.0373 66.2158 86.0415 66.3334 87.0726 66.3334C88.1039 66.3334 89.1082 66.2157 90.0729 65.9931V87.0071C89.1082 86.7845 88.1039 86.6668 87.0725 86.6668C86.0415 86.6668 85.0373 86.7844 84.0729 87.007V65.9932Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M77.3273 90.9094L59.122 80.3985C58.8325 81.3453 58.4322 82.2739 57.9165 83.167C57.401 84.06 56.7971 84.8708 56.1221 85.5947L74.3207 96.1017C74.9211 94.1416 75.9619 92.3722 77.3273 90.9094Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M74.3207 103.898L56.122 114.406C56.7971 115.13 57.4012 115.941 57.9169 116.834C58.4324 117.727 58.8326 118.655 59.1221 119.602L77.3272 109.091C75.9618 107.628 74.921 105.859 74.3207 103.898Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M84.0729 112.993V134.007C85.0375 133.784 86.0419 133.667 87.0732 133.667C88.1043 133.667 89.1085 133.784 90.0729 134.007V112.993C89.1082 113.216 88.1039 113.333 87.0725 113.333C86.0415 113.333 85.0373 113.216 84.0729 112.993Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M96.8183 109.091L115.024 119.602C115.313 118.655 115.714 117.726 116.229 116.833C116.745 115.94 117.349 115.129 118.024 114.405L99.825 103.898C99.2246 105.859 98.1838 107.628 96.8183 109.091Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M99.825 96.1018L118.024 85.5947C117.349 84.8706 116.745 84.0597 116.229 83.1665C115.713 82.2735 115.313 81.3451 115.024 80.3986L96.8183 90.9095C98.1837 92.3723 99.2246 94.1417 99.825 96.1018Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M55.9591 82.1606C52.864 87.5215 45.982 89.3628 40.6171 86.2654C35.2525 83.1682 33.4059 76.2874 36.501 70.9265C39.5962 65.5655 46.4787 63.7239 51.8433 66.8211C57.2081 69.9185 59.0542 76.7997 55.9591 82.1606ZM41.802 73.987C40.3933 76.4271 41.2338 79.5587 43.6754 80.9683C46.117 82.378 49.2493 81.5401 50.6581 79.1001C52.0668 76.66 51.2266 73.5279 48.785 72.1183C46.3434 70.7086 43.2108 71.547 41.802 73.987Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M56.0665 118.026C59.1617 123.387 57.3153 130.267 51.9504 133.365C46.5858 136.462 39.7036 134.621 36.6085 129.26C33.5133 123.899 35.3597 117.018 40.7243 113.92C46.0891 110.823 52.9714 112.665 56.0665 118.026ZM41.9095 126.199C43.3182 128.639 46.4506 129.477 48.8921 128.068C51.3337 126.658 52.1743 123.526 50.7655 121.086C49.3568 118.646 46.2242 117.808 43.7826 119.217C41.341 120.627 40.5007 123.759 41.9095 126.199Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M87.1803 135.865C93.3706 135.865 98.4062 140.905 98.4062 147.099C98.4062 153.294 93.3706 158.333 87.1803 158.333C80.9901 158.333 75.9539 153.294 75.9539 147.099C75.9539 140.905 80.9901 135.865 87.1803 135.865ZM87.1803 152.212C89.9979 152.212 92.2896 149.919 92.2896 147.099C92.2896 144.28 89.9979 141.986 87.1803 141.986C84.3628 141.986 82.0705 144.28 82.0705 147.099C82.0705 149.919 84.3628 152.212 87.1803 152.212Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M118.187 117.84C121.282 112.479 128.164 110.637 133.529 113.735C138.893 116.832 140.74 123.713 137.645 129.074C134.55 134.435 127.667 136.276 122.303 133.179C116.938 130.082 115.092 123.201 118.187 117.84ZM132.344 126.013C133.753 123.573 132.912 120.442 130.47 119.032C128.029 117.622 124.896 118.46 123.488 120.9C122.079 123.34 122.919 126.472 125.361 127.882C127.802 129.292 130.935 128.453 132.344 126.013Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M118.079 81.9745C114.984 76.6136 116.83 69.7329 122.195 66.6355C127.56 63.5383 134.442 65.3795 137.537 70.7404C140.632 76.1013 138.786 82.9826 133.422 86.0799C128.057 89.1773 121.174 87.3355 118.079 81.9745ZM132.236 73.8009C130.828 71.3609 127.695 70.523 125.254 71.9327C122.812 73.3423 121.972 76.4739 123.38 78.914C124.789 81.354 127.922 82.1924 130.363 80.7827C132.805 79.3731 133.645 76.241 132.236 73.8009Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M86.9654 94.7879C84.1479 94.7879 81.8561 97.0816 81.8561 99.9009C81.8561 102.72 84.1479 105.014 86.9654 105.014C89.783 105.014 92.0753 102.72 92.0753 99.9009C92.0753 97.0816 89.783 94.7879 86.9654 94.7879ZM86.9654 111.135C80.7752 111.135 75.7395 106.096 75.7395 99.9009C75.7395 93.7064 80.7752 88.6668 86.9654 88.6668C93.1557 88.6668 98.1919 93.7064 98.1919 99.9009C98.1919 106.096 93.1557 111.135 86.9654 111.135Z",fill:"#BA3FD9"}})])}),[],!1,null,null,null);C.default=d.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{626:function(l,C,e){"use strict";e.r(C);var t=e(1),d=Object(t.a)({},(function(){var l=this,C=l.$createElement,e=l._self._c||C;return e("svg",{attrs:{width:"100%",height:"100%",viewBox:"0 0 174 200",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M87 6.9282L6.39746 53.4641V146.536L87 193.072L167.603 146.536V53.4641L87 6.9282ZM173.603 50L87 0L0.397461 50V150L87 200L173.603 150V50Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M86.9655 64.135C80.7752 64.135 75.7396 59.0957 75.7396 52.9009C75.7396 46.7063 80.7752 41.6667 86.9655 41.6667C93.1557 41.6667 98.1919 46.7063 98.1919 52.9009C98.1919 59.0957 93.1557 64.135 86.9655 64.135ZM86.9655 47.7878C84.1479 47.7878 81.8562 50.0816 81.8562 52.9009C81.8562 55.7202 84.1479 58.0139 86.9655 58.0139C89.783 58.0139 92.0753 55.7202 92.0753 52.9009C92.0753 50.0816 89.783 47.7878 86.9655 47.7878Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M84.0729 65.9932C85.0373 66.2158 86.0415 66.3334 87.0726 66.3334C88.1039 66.3334 89.1082 66.2157 90.0729 65.9931V87.0071C89.1082 86.7845 88.1039 86.6668 87.0725 86.6668C86.0415 86.6668 85.0373 86.7844 84.0729 87.007V65.9932Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M77.3273 90.9094L59.122 80.3985C58.8325 81.3453 58.4322 82.2739 57.9165 83.167C57.401 84.06 56.7971 84.8708 56.1221 85.5947L74.3207 96.1017C74.9211 94.1416 75.9619 92.3722 77.3273 90.9094Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M74.3207 103.898L56.122 114.406C56.7971 115.13 57.4012 115.941 57.9169 116.834C58.4324 117.727 58.8326 118.655 59.1221 119.602L77.3272 109.091C75.9618 107.628 74.921 105.859 74.3207 103.898Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M84.0729 112.993V134.007C85.0375 133.784 86.0419 133.667 87.0732 133.667C88.1043 133.667 89.1085 133.784 90.0729 134.007V112.993C89.1082 113.216 88.1039 113.333 87.0725 113.333C86.0415 113.333 85.0373 113.216 84.0729 112.993Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M96.8183 109.091L115.024 119.602C115.313 118.655 115.714 117.726 116.229 116.833C116.745 115.94 117.349 115.129 118.024 114.405L99.825 103.898C99.2246 105.859 98.1838 107.628 96.8183 109.091Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{d:"M99.825 96.1018L118.024 85.5947C117.349 84.8706 116.745 84.0597 116.229 83.1665C115.713 82.2735 115.313 81.3451 115.024 80.3986L96.8183 90.9095C98.1837 92.3723 99.2246 94.1417 99.825 96.1018Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M55.9591 82.1606C52.864 87.5215 45.982 89.3628 40.6171 86.2654C35.2525 83.1682 33.4059 76.2874 36.501 70.9265C39.5962 65.5655 46.4787 63.7239 51.8433 66.8211C57.2081 69.9185 59.0542 76.7997 55.9591 82.1606ZM41.802 73.987C40.3933 76.4271 41.2338 79.5587 43.6754 80.9683C46.117 82.378 49.2493 81.5401 50.6581 79.1001C52.0668 76.66 51.2266 73.5279 48.785 72.1183C46.3434 70.7086 43.2108 71.547 41.802 73.987Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M56.0665 118.026C59.1617 123.387 57.3153 130.267 51.9504 133.365C46.5858 136.462 39.7036 134.621 36.6085 129.26C33.5133 123.899 35.3597 117.018 40.7243 113.92C46.0891 110.823 52.9714 112.665 56.0665 118.026ZM41.9095 126.199C43.3182 128.639 46.4506 129.477 48.8921 128.068C51.3337 126.658 52.1743 123.526 50.7655 121.086C49.3568 118.646 46.2242 117.808 43.7826 119.217C41.341 120.627 40.5007 123.759 41.9095 126.199Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M87.1803 135.865C93.3706 135.865 98.4062 140.905 98.4062 147.099C98.4062 153.294 93.3706 158.333 87.1803 158.333C80.9901 158.333 75.9539 153.294 75.9539 147.099C75.9539 140.905 80.9901 135.865 87.1803 135.865ZM87.1803 152.212C89.9979 152.212 92.2896 149.919 92.2896 147.099C92.2896 144.28 89.9979 141.986 87.1803 141.986C84.3628 141.986 82.0705 144.28 82.0705 147.099C82.0705 149.919 84.3628 152.212 87.1803 152.212Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M118.187 117.84C121.282 112.479 128.164 110.637 133.529 113.735C138.893 116.832 140.74 123.713 137.645 129.074C134.55 134.435 127.667 136.276 122.303 133.179C116.938 130.082 115.092 123.201 118.187 117.84ZM132.344 126.013C133.753 123.573 132.912 120.442 130.47 119.032C128.029 117.622 124.896 118.46 123.488 120.9C122.079 123.34 122.919 126.472 125.361 127.882C127.802 129.292 130.935 128.453 132.344 126.013Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M118.079 81.9745C114.984 76.6136 116.83 69.7329 122.195 66.6355C127.56 63.5383 134.442 65.3795 137.537 70.7404C140.632 76.1013 138.786 82.9826 133.422 86.0799C128.057 89.1773 121.174 87.3355 118.079 81.9745ZM132.236 73.8009C130.828 71.3609 127.695 70.523 125.254 71.9327C122.812 73.3423 121.972 76.4739 123.38 78.914C124.789 81.354 127.922 82.1924 130.363 80.7827C132.805 79.3731 133.645 76.241 132.236 73.8009Z",fill:"#BA3FD9"}}),l._v(" "),e("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M86.9654 94.7879C84.1479 94.7879 81.8561 97.0816 81.8561 99.9009C81.8561 102.72 84.1479 105.014 86.9654 105.014C89.783 105.014 92.0753 102.72 92.0753 99.9009C92.0753 97.0816 89.783 94.7879 86.9654 94.7879ZM86.9654 111.135C80.7752 111.135 75.7395 106.096 75.7395 99.9009C75.7395 93.7064 80.7752 88.6668 86.9654 88.6668C93.1557 88.6668 98.1919 93.7064 98.1919 99.9009C98.1919 106.096 93.1557 111.135 86.9654 111.135Z",fill:"#BA3FD9"}})])}),[],!1,null,null,null);C.default=d.exports}}]); \ No newline at end of file diff --git a/main/assets/js/38.18bcb933.js b/main/assets/js/38.e1fe6016.js similarity index 99% rename from main/assets/js/38.18bcb933.js rename to main/assets/js/38.e1fe6016.js index b730b16c085..2a9ad5f205c 100644 --- a/main/assets/js/38.18bcb933.js +++ b/main/assets/js/38.e1fe6016.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{626:function(C,l,e){"use strict";e.r(l);var t=e(1),d=Object(t.a)({},(function(){var C=this.$createElement,l=this._self._c||C;return l("svg",{attrs:{width:"144",height:"28",viewBox:"0 0 144 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16 20.0202L14.0251 18.0202C13.275 18.72 12.5167 19.2745 11.7497 19.6829C10.9834 20.091 10.0666 20.2951 9.00008 20.2951C8.16662 20.2951 7.3959 20.1329 6.68758 19.8077C5.97926 19.4826 5.36673 19.0371 4.84999 18.4701C4.33325 17.9035 3.93355 17.2411 3.64989 16.4829C3.36656 15.7247 3.22523 14.9118 3.22523 14.0457C3.22523 13.1789 3.36656 12.3705 3.64989 11.6204C3.93355 10.8706 4.33325 10.2166 4.84999 9.65808C5.36673 9.09989 5.97926 8.6584 6.68758 8.33326C7.3959 8.00846 8.16662 7.8459 9.00008 7.8459C9.99983 7.8459 10.8916 8.0459 11.6748 8.44591C12.4584 8.84558 13.2001 9.37072 13.8997 10.0207L15.8749 7.74606C15.4583 7.34605 15.0168 6.97944 14.55 6.64587C14.0835 6.31264 13.5752 6.02494 13.025 5.78345C12.4749 5.54163 11.8708 5.35444 11.2124 5.22122C10.554 5.08765 9.82477 5.02087 9.02504 5.02087C7.69171 5.02087 6.47508 5.25865 5.37516 5.73354C4.2749 6.20842 3.32507 6.85835 2.525 7.68333C1.72493 8.50831 1.10431 9.47056 0.66245 10.5707C0.220592 11.6706 0 12.8457 0 14.0956C0 15.3621 0.224977 16.5453 0.67493 17.6455C1.12488 18.745 1.74585 19.6991 2.53748 20.5076C3.32912 21.3157 4.26646 21.9531 5.34986 22.4199C6.43326 22.8867 7.61683 23.1198 8.89991 23.1198C9.71684 23.1198 10.4626 23.0489 11.1375 22.9073C11.8125 22.7656 12.4334 22.5575 13.0001 22.2827C13.5667 22.0074 14.096 21.6823 14.5877 21.3076C15.0792 20.9325 15.55 20.5032 16 20.0202",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M55.6691 9.97591C55.6691 9.39376 55.9177 8.8991 56.4152 8.49193C56.9123 8.08409 57.6087 7.88051 58.5037 7.88051C59.2995 7.88051 60.0868 8.03462 60.8657 8.34219C61.645 8.64975 62.4323 9.09461 63.2277 9.67642L64.8688 7.35691C63.9741 6.64184 63.0167 6.09737 61.9972 5.72352C60.9774 5.34933 59.8298 5.16223 58.5534 5.16223C57.6916 5.16223 56.8959 5.2827 56.1706 5.52397C55.4413 5.76491 54.82 6.10982 54.3018 6.55872C53.7838 7.00795 53.3776 7.544 53.0793 8.16754C52.7851 8.79108 52.6359 9.48529 52.6359 10.2502C52.6359 11.0648 52.7643 11.755 53.0213 12.3203C53.2783 12.8857 53.6553 13.3679 54.1444 13.767C54.6332 14.1661 55.2424 14.4985 55.9633 14.7647C56.6886 15.0309 57.5135 15.2715 58.4457 15.4878C59.2582 15.6874 59.9167 15.8785 60.4266 16.0612C60.9322 16.2443 61.33 16.4398 61.6242 16.6474C61.914 16.8554 62.1133 17.0839 62.221 17.3332C62.3287 17.5829 62.3824 17.8652 62.3824 18.1812C62.3824 18.8633 62.1049 19.4037 61.5497 19.8025C60.9942 20.2019 60.2441 20.4011 59.2995 20.4011C58.2055 20.4011 57.2273 20.2056 56.3655 19.8149C55.5034 19.4243 54.65 18.8633 53.8043 18.1314L51.9646 20.3264C53.0089 21.274 54.1444 21.9766 55.3709 22.4339C56.5977 22.8912 57.8821 23.1197 59.2247 23.1197C60.1364 23.1197 60.9738 23.0033 61.7363 22.7708C62.4944 22.5376 63.1492 22.1967 63.688 21.7478C64.2307 21.2989 64.6534 20.7504 64.96 20.102C65.2626 19.4535 65.4159 18.7136 65.4159 17.8821C65.4159 17.1505 65.2958 16.5145 65.0553 15.9741C64.8148 15.4337 64.4585 14.9602 63.9946 14.5524C63.5303 14.1452 62.9419 13.7999 62.2374 13.5173C61.5333 13.2349 60.7208 12.9772 59.809 12.7443C58.9761 12.5448 58.2924 12.3533 57.7496 12.1706C57.2109 11.9879 56.7882 11.7883 56.4772 11.5719C56.1706 11.3559 55.9596 11.1231 55.8432 10.8737C55.7275 10.624 55.6691 10.3249 55.6691 9.97591",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M89.7054 10.223V22.6955H92.7433V5.30359H89.4809L84.1768 13.5276L78.8726 5.30359H75.6106V22.6955H78.6485V10.2726L84.1019 18.4221H84.2017L89.7054 10.223Z",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M118.268 14.0956C118.268 14.9455 118.122 15.7496 117.831 16.5081C117.54 17.2663 117.137 17.9244 116.621 18.4825C116.105 19.0407 115.486 19.4826 114.762 19.8077C114.038 20.1328 113.244 20.2951 112.379 20.2951C111.514 20.2951 110.715 20.1284 109.983 19.7952C109.252 19.4617 108.623 19.0117 108.099 18.4454C107.576 17.8785 107.168 17.2161 106.877 16.4579C106.586 15.6997 106.44 14.8953 106.44 14.0457C106.44 13.1954 106.586 12.3913 106.877 11.6331C107.168 10.8746 107.571 10.2166 108.087 9.65806C108.603 9.09986 109.223 8.65837 109.946 8.33324C110.67 8.00844 111.464 7.84587 112.329 7.84587C113.194 7.84587 113.993 8.01249 114.725 8.34605C115.456 8.67928 116.085 9.12921 116.608 9.69583C117.133 10.2621 117.54 10.9249 117.831 11.6831C118.122 12.4413 118.268 13.2457 118.268 14.0956ZM121.487 14.0457C121.487 12.8123 121.262 11.6456 120.813 10.5455C120.364 9.44593 119.74 8.4874 118.942 7.67085C118.143 6.85397 117.187 6.20842 116.072 5.73354C114.957 5.25865 113.727 5.02087 112.379 5.02087C111.032 5.02087 109.801 5.2627 108.686 5.74602C107.571 6.22933 106.606 6.88331 105.791 7.70829C104.976 8.53327 104.344 9.49585 103.895 10.5957C103.446 11.6956 103.221 12.8622 103.221 14.0956C103.221 15.3287 103.446 16.495 103.895 17.5952C104.344 18.6954 104.968 19.6536 105.766 20.4701C106.565 21.2867 107.521 21.9326 108.636 22.4074C109.75 22.8823 110.981 23.1198 112.329 23.1198C113.676 23.1198 114.908 22.8779 116.022 22.395C117.137 21.9117 118.101 21.2577 118.917 20.4324C119.732 19.6077 120.364 18.6451 120.813 17.5453C121.262 16.4454 121.487 15.2788 121.487 14.0457V14.0457Z",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M134.253 9.97591C134.253 9.39376 134.502 8.8991 134.999 8.49193C135.496 8.08409 136.192 7.88051 137.088 7.88051C137.883 7.88051 138.671 8.03462 139.45 8.34219C140.229 8.64975 141.016 9.09461 141.812 9.67642L143.453 7.35691C142.558 6.64184 141.6 6.09737 140.581 5.72352C139.562 5.34933 138.414 5.16223 137.137 5.16223C136.276 5.16223 135.48 5.2827 134.755 5.52397C134.025 5.76491 133.404 6.10982 132.886 6.55872C132.368 7.00795 131.962 7.544 131.663 8.16754C131.369 8.79108 131.22 9.48529 131.22 10.2502C131.22 11.0648 131.348 11.755 131.605 12.3203C131.862 12.8857 132.239 13.3679 132.728 13.767C133.217 14.1661 133.826 14.4985 134.548 14.7647C135.273 15.0309 136.097 15.2715 137.03 15.4878C137.842 15.6874 138.501 15.8785 139.011 16.0612C139.516 16.2443 139.914 16.4398 140.208 16.6474C140.498 16.8554 140.697 17.0839 140.805 17.3332C140.913 17.5829 140.967 17.8652 140.967 18.1812C140.967 18.8633 140.689 19.4037 140.134 19.8025C139.578 20.2019 138.828 20.4011 137.883 20.4011C136.789 20.4011 135.811 20.2056 134.949 19.8149C134.088 19.4243 133.234 18.8633 132.388 18.1314L130.549 20.3264C131.593 21.274 132.728 21.9766 133.955 22.4339C135.181 22.8912 136.466 23.1197 137.809 23.1197C138.72 23.1197 139.557 23.0033 140.32 22.7708C141.078 22.5376 141.733 22.1967 142.272 21.7478C142.815 21.2989 143.237 20.7504 143.544 20.102C143.846 19.4535 144 18.7136 144 17.8821C144 17.1505 143.879 16.5145 143.639 15.9741C143.399 15.4337 143.043 14.9602 142.578 14.5524C142.114 14.1452 141.526 13.7999 140.821 13.5173C140.117 13.2349 139.304 12.9772 138.393 12.7443C137.56 12.5448 136.876 12.3533 136.334 12.1706C135.795 11.9879 135.372 11.7883 135.061 11.5719C134.755 11.3559 134.543 11.1231 134.427 10.8737C134.311 10.624 134.253 10.3249 134.253 9.97591",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M36.8401 8.78536L28.5159 17.0984C28.4086 16.8904 28.3117 16.6737 28.2249 16.4489C27.9342 15.6936 27.7888 14.8922 27.7888 14.0458C27.7888 13.1987 27.9342 12.3977 28.2249 11.6424C28.5159 10.8867 28.919 10.2312 29.4345 9.67476C29.9499 9.11868 30.5694 8.67885 31.2924 8.35495C32.0158 8.03138 32.8095 7.86942 33.6739 7.86942C34.5386 7.86942 35.3367 8.03541 36.0679 8.36771C36.3397 8.49103 36.5971 8.63013 36.8401 8.78536ZM36.1056 19.786C35.3822 20.1099 34.5884 20.2715 33.7241 20.2715C32.8593 20.2715 32.0613 20.1055 31.3298 19.7736C31.0582 19.6499 30.8008 19.5108 30.5583 19.3552L38.8821 11.0429C38.9894 11.2505 39.0863 11.4669 39.1731 11.692C39.4638 12.4474 39.6092 13.2487 39.6092 14.0955C39.6092 14.9422 39.4638 15.7432 39.1731 16.4989C38.8821 17.2542 38.479 17.9098 37.9635 18.4658C37.4481 19.0219 36.829 19.4621 36.1056 19.786ZM37.365 22.3635C38.479 21.882 39.4433 21.2305 40.2579 20.4083C41.0725 19.5868 41.704 18.6278 42.1529 17.5321C42.602 16.4364 42.8265 15.2742 42.8265 14.0458C42.8265 12.817 42.602 11.6548 42.1529 10.5588C41.8867 9.90893 41.559 9.30883 41.17 8.75813L46.5841 3.35152L44.4328 1.20312L39.0022 6.62619C38.5147 6.29422 37.9854 6.00728 37.4148 5.76502C36.3007 5.29193 35.0706 5.05505 33.7241 5.05505C32.3772 5.05505 31.1471 5.29596 30.033 5.77745C28.919 6.25894 27.9547 6.91045 27.1401 7.73231C26.3255 8.55417 25.6936 9.51312 25.2448 10.6088C24.7959 11.7045 24.5715 12.8668 24.5715 14.0955C24.5715 15.3239 24.7959 16.4858 25.2448 17.5819C25.5113 18.232 25.839 18.8321 26.2279 19.3832L20.8142 24.7891L22.9656 26.9375L28.3958 21.5148C28.8833 21.8467 29.4126 22.1337 29.9832 22.3759C31.0973 22.849 32.3274 23.0856 33.6739 23.0856C35.0208 23.0856 36.2509 22.8447 37.365 22.3635V22.3635Z",fill:"#2E3148"}})])}),[],!1,null,null,null);l.default=d.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{639:function(C,l,e){"use strict";e.r(l);var t=e(1),d=Object(t.a)({},(function(){var C=this.$createElement,l=this._self._c||C;return l("svg",{attrs:{width:"144",height:"28",viewBox:"0 0 144 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16 20.0202L14.0251 18.0202C13.275 18.72 12.5167 19.2745 11.7497 19.6829C10.9834 20.091 10.0666 20.2951 9.00008 20.2951C8.16662 20.2951 7.3959 20.1329 6.68758 19.8077C5.97926 19.4826 5.36673 19.0371 4.84999 18.4701C4.33325 17.9035 3.93355 17.2411 3.64989 16.4829C3.36656 15.7247 3.22523 14.9118 3.22523 14.0457C3.22523 13.1789 3.36656 12.3705 3.64989 11.6204C3.93355 10.8706 4.33325 10.2166 4.84999 9.65808C5.36673 9.09989 5.97926 8.6584 6.68758 8.33326C7.3959 8.00846 8.16662 7.8459 9.00008 7.8459C9.99983 7.8459 10.8916 8.0459 11.6748 8.44591C12.4584 8.84558 13.2001 9.37072 13.8997 10.0207L15.8749 7.74606C15.4583 7.34605 15.0168 6.97944 14.55 6.64587C14.0835 6.31264 13.5752 6.02494 13.025 5.78345C12.4749 5.54163 11.8708 5.35444 11.2124 5.22122C10.554 5.08765 9.82477 5.02087 9.02504 5.02087C7.69171 5.02087 6.47508 5.25865 5.37516 5.73354C4.2749 6.20842 3.32507 6.85835 2.525 7.68333C1.72493 8.50831 1.10431 9.47056 0.66245 10.5707C0.220592 11.6706 0 12.8457 0 14.0956C0 15.3621 0.224977 16.5453 0.67493 17.6455C1.12488 18.745 1.74585 19.6991 2.53748 20.5076C3.32912 21.3157 4.26646 21.9531 5.34986 22.4199C6.43326 22.8867 7.61683 23.1198 8.89991 23.1198C9.71684 23.1198 10.4626 23.0489 11.1375 22.9073C11.8125 22.7656 12.4334 22.5575 13.0001 22.2827C13.5667 22.0074 14.096 21.6823 14.5877 21.3076C15.0792 20.9325 15.55 20.5032 16 20.0202",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M55.6691 9.97591C55.6691 9.39376 55.9177 8.8991 56.4152 8.49193C56.9123 8.08409 57.6087 7.88051 58.5037 7.88051C59.2995 7.88051 60.0868 8.03462 60.8657 8.34219C61.645 8.64975 62.4323 9.09461 63.2277 9.67642L64.8688 7.35691C63.9741 6.64184 63.0167 6.09737 61.9972 5.72352C60.9774 5.34933 59.8298 5.16223 58.5534 5.16223C57.6916 5.16223 56.8959 5.2827 56.1706 5.52397C55.4413 5.76491 54.82 6.10982 54.3018 6.55872C53.7838 7.00795 53.3776 7.544 53.0793 8.16754C52.7851 8.79108 52.6359 9.48529 52.6359 10.2502C52.6359 11.0648 52.7643 11.755 53.0213 12.3203C53.2783 12.8857 53.6553 13.3679 54.1444 13.767C54.6332 14.1661 55.2424 14.4985 55.9633 14.7647C56.6886 15.0309 57.5135 15.2715 58.4457 15.4878C59.2582 15.6874 59.9167 15.8785 60.4266 16.0612C60.9322 16.2443 61.33 16.4398 61.6242 16.6474C61.914 16.8554 62.1133 17.0839 62.221 17.3332C62.3287 17.5829 62.3824 17.8652 62.3824 18.1812C62.3824 18.8633 62.1049 19.4037 61.5497 19.8025C60.9942 20.2019 60.2441 20.4011 59.2995 20.4011C58.2055 20.4011 57.2273 20.2056 56.3655 19.8149C55.5034 19.4243 54.65 18.8633 53.8043 18.1314L51.9646 20.3264C53.0089 21.274 54.1444 21.9766 55.3709 22.4339C56.5977 22.8912 57.8821 23.1197 59.2247 23.1197C60.1364 23.1197 60.9738 23.0033 61.7363 22.7708C62.4944 22.5376 63.1492 22.1967 63.688 21.7478C64.2307 21.2989 64.6534 20.7504 64.96 20.102C65.2626 19.4535 65.4159 18.7136 65.4159 17.8821C65.4159 17.1505 65.2958 16.5145 65.0553 15.9741C64.8148 15.4337 64.4585 14.9602 63.9946 14.5524C63.5303 14.1452 62.9419 13.7999 62.2374 13.5173C61.5333 13.2349 60.7208 12.9772 59.809 12.7443C58.9761 12.5448 58.2924 12.3533 57.7496 12.1706C57.2109 11.9879 56.7882 11.7883 56.4772 11.5719C56.1706 11.3559 55.9596 11.1231 55.8432 10.8737C55.7275 10.624 55.6691 10.3249 55.6691 9.97591",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M89.7054 10.223V22.6955H92.7433V5.30359H89.4809L84.1768 13.5276L78.8726 5.30359H75.6106V22.6955H78.6485V10.2726L84.1019 18.4221H84.2017L89.7054 10.223Z",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M118.268 14.0956C118.268 14.9455 118.122 15.7496 117.831 16.5081C117.54 17.2663 117.137 17.9244 116.621 18.4825C116.105 19.0407 115.486 19.4826 114.762 19.8077C114.038 20.1328 113.244 20.2951 112.379 20.2951C111.514 20.2951 110.715 20.1284 109.983 19.7952C109.252 19.4617 108.623 19.0117 108.099 18.4454C107.576 17.8785 107.168 17.2161 106.877 16.4579C106.586 15.6997 106.44 14.8953 106.44 14.0457C106.44 13.1954 106.586 12.3913 106.877 11.6331C107.168 10.8746 107.571 10.2166 108.087 9.65806C108.603 9.09986 109.223 8.65837 109.946 8.33324C110.67 8.00844 111.464 7.84587 112.329 7.84587C113.194 7.84587 113.993 8.01249 114.725 8.34605C115.456 8.67928 116.085 9.12921 116.608 9.69583C117.133 10.2621 117.54 10.9249 117.831 11.6831C118.122 12.4413 118.268 13.2457 118.268 14.0956ZM121.487 14.0457C121.487 12.8123 121.262 11.6456 120.813 10.5455C120.364 9.44593 119.74 8.4874 118.942 7.67085C118.143 6.85397 117.187 6.20842 116.072 5.73354C114.957 5.25865 113.727 5.02087 112.379 5.02087C111.032 5.02087 109.801 5.2627 108.686 5.74602C107.571 6.22933 106.606 6.88331 105.791 7.70829C104.976 8.53327 104.344 9.49585 103.895 10.5957C103.446 11.6956 103.221 12.8622 103.221 14.0956C103.221 15.3287 103.446 16.495 103.895 17.5952C104.344 18.6954 104.968 19.6536 105.766 20.4701C106.565 21.2867 107.521 21.9326 108.636 22.4074C109.75 22.8823 110.981 23.1198 112.329 23.1198C113.676 23.1198 114.908 22.8779 116.022 22.395C117.137 21.9117 118.101 21.2577 118.917 20.4324C119.732 19.6077 120.364 18.6451 120.813 17.5453C121.262 16.4454 121.487 15.2788 121.487 14.0457V14.0457Z",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M134.253 9.97591C134.253 9.39376 134.502 8.8991 134.999 8.49193C135.496 8.08409 136.192 7.88051 137.088 7.88051C137.883 7.88051 138.671 8.03462 139.45 8.34219C140.229 8.64975 141.016 9.09461 141.812 9.67642L143.453 7.35691C142.558 6.64184 141.6 6.09737 140.581 5.72352C139.562 5.34933 138.414 5.16223 137.137 5.16223C136.276 5.16223 135.48 5.2827 134.755 5.52397C134.025 5.76491 133.404 6.10982 132.886 6.55872C132.368 7.00795 131.962 7.544 131.663 8.16754C131.369 8.79108 131.22 9.48529 131.22 10.2502C131.22 11.0648 131.348 11.755 131.605 12.3203C131.862 12.8857 132.239 13.3679 132.728 13.767C133.217 14.1661 133.826 14.4985 134.548 14.7647C135.273 15.0309 136.097 15.2715 137.03 15.4878C137.842 15.6874 138.501 15.8785 139.011 16.0612C139.516 16.2443 139.914 16.4398 140.208 16.6474C140.498 16.8554 140.697 17.0839 140.805 17.3332C140.913 17.5829 140.967 17.8652 140.967 18.1812C140.967 18.8633 140.689 19.4037 140.134 19.8025C139.578 20.2019 138.828 20.4011 137.883 20.4011C136.789 20.4011 135.811 20.2056 134.949 19.8149C134.088 19.4243 133.234 18.8633 132.388 18.1314L130.549 20.3264C131.593 21.274 132.728 21.9766 133.955 22.4339C135.181 22.8912 136.466 23.1197 137.809 23.1197C138.72 23.1197 139.557 23.0033 140.32 22.7708C141.078 22.5376 141.733 22.1967 142.272 21.7478C142.815 21.2989 143.237 20.7504 143.544 20.102C143.846 19.4535 144 18.7136 144 17.8821C144 17.1505 143.879 16.5145 143.639 15.9741C143.399 15.4337 143.043 14.9602 142.578 14.5524C142.114 14.1452 141.526 13.7999 140.821 13.5173C140.117 13.2349 139.304 12.9772 138.393 12.7443C137.56 12.5448 136.876 12.3533 136.334 12.1706C135.795 11.9879 135.372 11.7883 135.061 11.5719C134.755 11.3559 134.543 11.1231 134.427 10.8737C134.311 10.624 134.253 10.3249 134.253 9.97591",fill:"#2E3148"}}),this._v(" "),l("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M36.8401 8.78536L28.5159 17.0984C28.4086 16.8904 28.3117 16.6737 28.2249 16.4489C27.9342 15.6936 27.7888 14.8922 27.7888 14.0458C27.7888 13.1987 27.9342 12.3977 28.2249 11.6424C28.5159 10.8867 28.919 10.2312 29.4345 9.67476C29.9499 9.11868 30.5694 8.67885 31.2924 8.35495C32.0158 8.03138 32.8095 7.86942 33.6739 7.86942C34.5386 7.86942 35.3367 8.03541 36.0679 8.36771C36.3397 8.49103 36.5971 8.63013 36.8401 8.78536ZM36.1056 19.786C35.3822 20.1099 34.5884 20.2715 33.7241 20.2715C32.8593 20.2715 32.0613 20.1055 31.3298 19.7736C31.0582 19.6499 30.8008 19.5108 30.5583 19.3552L38.8821 11.0429C38.9894 11.2505 39.0863 11.4669 39.1731 11.692C39.4638 12.4474 39.6092 13.2487 39.6092 14.0955C39.6092 14.9422 39.4638 15.7432 39.1731 16.4989C38.8821 17.2542 38.479 17.9098 37.9635 18.4658C37.4481 19.0219 36.829 19.4621 36.1056 19.786ZM37.365 22.3635C38.479 21.882 39.4433 21.2305 40.2579 20.4083C41.0725 19.5868 41.704 18.6278 42.1529 17.5321C42.602 16.4364 42.8265 15.2742 42.8265 14.0458C42.8265 12.817 42.602 11.6548 42.1529 10.5588C41.8867 9.90893 41.559 9.30883 41.17 8.75813L46.5841 3.35152L44.4328 1.20312L39.0022 6.62619C38.5147 6.29422 37.9854 6.00728 37.4148 5.76502C36.3007 5.29193 35.0706 5.05505 33.7241 5.05505C32.3772 5.05505 31.1471 5.29596 30.033 5.77745C28.919 6.25894 27.9547 6.91045 27.1401 7.73231C26.3255 8.55417 25.6936 9.51312 25.2448 10.6088C24.7959 11.7045 24.5715 12.8668 24.5715 14.0955C24.5715 15.3239 24.7959 16.4858 25.2448 17.5819C25.5113 18.232 25.839 18.8321 26.2279 19.3832L20.8142 24.7891L22.9656 26.9375L28.3958 21.5148C28.8833 21.8467 29.4126 22.1337 29.9832 22.3759C31.0973 22.849 32.3274 23.0856 33.6739 23.0856C35.0208 23.0856 36.2509 22.8447 37.365 22.3635V22.3635Z",fill:"#2E3148"}})])}),[],!1,null,null,null);l.default=d.exports}}]); \ No newline at end of file diff --git a/main/assets/js/60.033a4a8b.js b/main/assets/js/60.02dd3eb8.js similarity index 98% rename from main/assets/js/60.033a4a8b.js rename to main/assets/js/60.02dd3eb8.js index b806d0e0759..8dbc612ace3 100644 --- a/main/assets/js/60.033a4a8b.js +++ b/main/assets/js/60.02dd3eb8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{635:function(t,e,a){"use strict";a.r(e);var o=a(1),s=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"cosmos-hub-documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-documentation"}},[t._v("#")]),t._v(" Cosmos Hub Documentation")]),t._v(" "),a("p",[t._v("Welcome to the documentation of the "),a("strong",[t._v("Cosmos Hub application: "),a("code",[t._v("gaia")])]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"what-is-gaia"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-is-gaia"}},[t._v("#")]),t._v(" What is Gaia?")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/getting-started/what-is-gaia.html"}},[t._v("Intro to the "),a("code",[t._v("gaia")]),t._v(" software")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/hub-tutorials/gaiad.html"}},[t._v("Interacting with the "),a("code",[t._v("gaiad")]),t._v(" binary")])],1)]),t._v(" "),a("h2",{attrs:{id:"join-the-cosmos-hub-mainnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-the-cosmos-hub-mainnet"}},[t._v("#")]),t._v(" Join the Cosmos Hub Mainnet")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[t._v("Install the "),a("code",[t._v("gaia")]),t._v(" application")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("Set up a full node and join the mainnet")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/validators/validator-setup.html"}},[t._v("Upgrade to a validator node")])],1)]),t._v(" "),a("h2",{attrs:{id:"join-the-cosmos-hub-public-testnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-the-cosmos-hub-public-testnet"}},[t._v("#")]),t._v(" Join the Cosmos Hub Public Testnet")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/hub-tutorials/join-testnet.html"}},[t._v("Join the testnet")])],1)]),t._v(" "),a("h2",{attrs:{id:"setup-your-own-gaia-testnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setup-your-own-gaia-testnet"}},[t._v("#")]),t._v(" Setup Your Own "),a("code",[t._v("gaia")]),t._v(" Testnet")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local/previous-local-testnets/v7-theta",target:"_blank",rel:"noopener noreferrer"}},[t._v("Setup your own "),a("code",[t._v("gaia")]),t._v(" testnet"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"additional-resources"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#additional-resources"}},[t._v("#")]),t._v(" Additional Resources")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/validators/"}},[t._v("Validator Resources")]),t._v(": Contains documentation for "),a("code",[t._v("gaia")]),t._v(" validators.")],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/delegators/"}},[t._v("Delegator Resources")]),t._v(": Contains documentation for delegators.")],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/resources/"}},[t._v("Other Resources")]),t._v(": Contains documentation on "),a("code",[t._v("gaiad")]),t._v(", genesis file, service providers, ledger wallets, ...")],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/resources/archives.html"}},[t._v("Cosmos Hub Archives")]),t._v(": State archives of past iteration of the Cosmos Hub.")],1)]),t._v(" "),a("h1",{attrs:{id:"contribute"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contribute"}},[t._v("#")]),t._v(" Contribute")]),t._v(" "),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/DOCS_README.html"}},[t._v("this file")]),t._v(" for details of the build process and\nconsiderations when making changes.")],1)])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{638:function(t,e,a){"use strict";a.r(e);var o=a(1),s=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"cosmos-hub-documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cosmos-hub-documentation"}},[t._v("#")]),t._v(" Cosmos Hub Documentation")]),t._v(" "),a("p",[t._v("Welcome to the documentation of the "),a("strong",[t._v("Cosmos Hub application: "),a("code",[t._v("gaia")])]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"what-is-gaia"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-is-gaia"}},[t._v("#")]),t._v(" What is Gaia?")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/getting-started/what-is-gaia.html"}},[t._v("Intro to the "),a("code",[t._v("gaia")]),t._v(" software")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/hub-tutorials/gaiad.html"}},[t._v("Interacting with the "),a("code",[t._v("gaiad")]),t._v(" binary")])],1)]),t._v(" "),a("h2",{attrs:{id:"join-the-cosmos-hub-mainnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-the-cosmos-hub-mainnet"}},[t._v("#")]),t._v(" Join the Cosmos Hub Mainnet")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[t._v("Install the "),a("code",[t._v("gaia")]),t._v(" application")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("Set up a full node and join the mainnet")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/validators/validator-setup.html"}},[t._v("Upgrade to a validator node")])],1)]),t._v(" "),a("h2",{attrs:{id:"join-the-cosmos-hub-public-testnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-the-cosmos-hub-public-testnet"}},[t._v("#")]),t._v(" Join the Cosmos Hub Public Testnet")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/hub-tutorials/join-testnet.html"}},[t._v("Join the testnet")])],1)]),t._v(" "),a("h2",{attrs:{id:"setup-your-own-gaia-testnet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setup-your-own-gaia-testnet"}},[t._v("#")]),t._v(" Setup Your Own "),a("code",[t._v("gaia")]),t._v(" Testnet")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/cosmos/testnets/tree/master/local/previous-local-testnets/v7-theta",target:"_blank",rel:"noopener noreferrer"}},[t._v("Setup your own "),a("code",[t._v("gaia")]),t._v(" testnet"),a("OutboundLink")],1)])]),t._v(" "),a("h2",{attrs:{id:"additional-resources"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#additional-resources"}},[t._v("#")]),t._v(" Additional Resources")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/validators/"}},[t._v("Validator Resources")]),t._v(": Contains documentation for "),a("code",[t._v("gaia")]),t._v(" validators.")],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/delegators/"}},[t._v("Delegator Resources")]),t._v(": Contains documentation for delegators.")],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/resources/"}},[t._v("Other Resources")]),t._v(": Contains documentation on "),a("code",[t._v("gaiad")]),t._v(", genesis file, service providers, ledger wallets, ...")],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/resources/archives.html"}},[t._v("Cosmos Hub Archives")]),t._v(": State archives of past iteration of the Cosmos Hub.")],1)]),t._v(" "),a("h1",{attrs:{id:"contribute"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contribute"}},[t._v("#")]),t._v(" Contribute")]),t._v(" "),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/DOCS_README.html"}},[t._v("this file")]),t._v(" for details of the build process and\nconsiderations when making changes.")],1)])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/61.43e6a361.js b/main/assets/js/61.08b52077.js similarity index 98% rename from main/assets/js/61.43e6a361.js rename to main/assets/js/61.08b52077.js index 83fdb191b02..3805cd3f862 100644 --- a/main/assets/js/61.43e6a361.js +++ b/main/assets/js/61.08b52077.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{636:function(e,t,a){"use strict";a.r(t);var s=a(1),o=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"adr-creation-process"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-creation-process"}},[e._v("#")]),e._v(" ADR Creation Process")]),e._v(" "),a("ol",[a("li",[e._v("Copy the "),a("code",[e._v("adr-template.md")]),e._v(" file. Use the following filename pattern: "),a("code",[e._v("adr-next_number-title.md")])]),e._v(" "),a("li",[e._v("Create a draft Pull Request and solicit input from the stewarding team, if you want to get an early feedback.")]),e._v(" "),a("li",[e._v("Make sure that the problem, the context and a recommended solution is clear and well documented. Be sure to document alternate solution spaces and give reasons why they have been discarded.")]),e._v(" "),a("li",[e._v("Add an entry to a list in the README file "),a("RouterLink",{attrs:{to:"/architecture/#adr-table-of-contents"}},[e._v("Table of Contents")]),e._v(".")],1),e._v(" "),a("li",[e._v("Create a Pull Request to propose a new ADR.")])]),e._v(" "),a("h2",{attrs:{id:"adr-life-cycle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-life-cycle"}},[e._v("#")]),e._v(" ADR life cycle")]),e._v(" "),a("p",[e._v("ADR creation is an "),a("strong",[e._v("iterative")]),e._v(" process. Instead of trying to solve all decisions in a single ADR pull request, we MUST firstly understand the problem and collect feedback through a GitHub Issue.")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Every proposal SHOULD start with a new GitHub Issue or be a result of existing Issues. The Issue should contain just a brief proposal summary.")])]),e._v(" "),a("li",[a("p",[e._v("Once the motivation is validated, a GitHub Pull Request (PR) is created with a new document based on the "),a("code",[e._v("adr-template.md")]),e._v(".")])]),e._v(" "),a("li",[a("p",[e._v("An ADR doesn't have to arrive to "),a("code",[e._v("main")]),e._v(" with an "),a("em",[e._v("accepted")]),e._v(" status in a single PR. If the motivation is clear and the solution is sound, we SHOULD be able to merge it and keep a "),a("em",[e._v("proposed")]),e._v(" status. It's preferable to have an iterative approach rather than long, not merged Pull Requests.")])]),e._v(" "),a("li",[a("p",[e._v("If a "),a("em",[e._v("proposed")]),e._v(" ADR is merged, then it should clearly document outstanding issues either in ADR document notes or in a GitHub Issue.")])]),e._v(" "),a("li",[a("p",[e._v("The PR SHOULD always be merged. In the case of a faulty ADR, we still prefer to merge it with a "),a("em",[e._v("rejected")]),e._v(" status. The only time the ADR SHOULD NOT be merged is if the author abandons it.")])]),e._v(" "),a("li",[a("p",[e._v("Merged ADRs SHOULD NOT be deleted.")])])]),e._v(" "),a("h3",{attrs:{id:"adr-status"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-status"}},[e._v("#")]),e._v(" ADR status")]),e._v(" "),a("p",[e._v("Status has two components:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"text",base64:"e0NPTlNFTlNVUyBTVEFUVVN9IHtJTVBMRU1FTlRBVElPTiBTVEFUVVN9Cg=="}}),e._v(" "),a("p",[e._v("IMPLEMENTATION STATUS is either "),a("code",[e._v("Implemented")]),e._v(" or "),a("code",[e._v("Not Implemented")]),e._v(".")]),e._v(" "),a("h4",{attrs:{id:"consensus-status"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#consensus-status"}},[e._v("#")]),e._v(" Consensus Status")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"mermaid",base64:"Zmxvd2NoYXJ0IFRECiAgICBBW0RSQUZUXSAtLSZndDsgQltQUk9QT1NFRF0KICAgIEIgLS0mZ3Q7IENbTEFTVCBDQUxMIFlZWVktTU0tRERdCiAgICBCIC0tJmd0OyBEW0FCQU5ET05FRF0KICAgIEMgLS0mZ3Q7IEVbQUNDRVBURUQgb3IgUkVKRUNURURdCiAgICBFIC0tJmd0OyBGW1NVUEVSU0VERUQgYnkgQURSLXh4eF0K"}}),e._v(" "),a("ul",[a("li",[a("code",[e._v("DRAFT")]),e._v(": [optional] an ADR which is work in progress, not being ready for a general review. This is to present an early work and get an early feedback in a Draft Pull Request form.")]),e._v(" "),a("li",[a("code",[e._v("PROPOSED")]),e._v(": an ADR covering a full solution architecture and still in the review - project stakeholders haven't reached an agreement yet.")]),e._v(" "),a("li",[a("code",[e._v("LAST CALL ")]),e._v(": [optional] clear notify that we are close to accept updates. Changing a status to "),a("code",[e._v("LAST CALL")]),e._v(" means that social consensus (of Cosmos SDK maintainers) has been reached and we still want to give it a time to let the community react or analyze.")]),e._v(" "),a("li",[a("code",[e._v("ACCEPTED")]),e._v(": ADR which will represent a currently implemented or to be implemented architecture design.")]),e._v(" "),a("li",[a("code",[e._v("REJECTED")]),e._v(": ADR can go from PROPOSED or ACCEPTED to rejected if the consensus among project stakeholders will decide so.")]),e._v(" "),a("li",[a("code",[e._v("SUPERSEEDED by ADR-xxx")]),e._v(": ADR which has been superseded by a new ADR.")]),e._v(" "),a("li",[a("code",[e._v("ABANDONED")]),e._v(": the ADR is no longer pursued by the original authors.")])]),e._v(" "),a("h2",{attrs:{id:"language-used-in-adr"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#language-used-in-adr"}},[e._v("#")]),e._v(" Language used in ADR")]),e._v(" "),a("ul",[a("li",[e._v("The context/background should be written in the present tense.")]),e._v(" "),a("li",[e._v("Avoid using a first, personal form.")])])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{637:function(e,t,a){"use strict";a.r(t);var s=a(1),o=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"adr-creation-process"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-creation-process"}},[e._v("#")]),e._v(" ADR Creation Process")]),e._v(" "),a("ol",[a("li",[e._v("Copy the "),a("code",[e._v("adr-template.md")]),e._v(" file. Use the following filename pattern: "),a("code",[e._v("adr-next_number-title.md")])]),e._v(" "),a("li",[e._v("Create a draft Pull Request and solicit input from the stewarding team, if you want to get an early feedback.")]),e._v(" "),a("li",[e._v("Make sure that the problem, the context and a recommended solution is clear and well documented. Be sure to document alternate solution spaces and give reasons why they have been discarded.")]),e._v(" "),a("li",[e._v("Add an entry to a list in the README file "),a("RouterLink",{attrs:{to:"/architecture/#adr-table-of-contents"}},[e._v("Table of Contents")]),e._v(".")],1),e._v(" "),a("li",[e._v("Create a Pull Request to propose a new ADR.")])]),e._v(" "),a("h2",{attrs:{id:"adr-life-cycle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-life-cycle"}},[e._v("#")]),e._v(" ADR life cycle")]),e._v(" "),a("p",[e._v("ADR creation is an "),a("strong",[e._v("iterative")]),e._v(" process. Instead of trying to solve all decisions in a single ADR pull request, we MUST firstly understand the problem and collect feedback through a GitHub Issue.")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Every proposal SHOULD start with a new GitHub Issue or be a result of existing Issues. The Issue should contain just a brief proposal summary.")])]),e._v(" "),a("li",[a("p",[e._v("Once the motivation is validated, a GitHub Pull Request (PR) is created with a new document based on the "),a("code",[e._v("adr-template.md")]),e._v(".")])]),e._v(" "),a("li",[a("p",[e._v("An ADR doesn't have to arrive to "),a("code",[e._v("main")]),e._v(" with an "),a("em",[e._v("accepted")]),e._v(" status in a single PR. If the motivation is clear and the solution is sound, we SHOULD be able to merge it and keep a "),a("em",[e._v("proposed")]),e._v(" status. It's preferable to have an iterative approach rather than long, not merged Pull Requests.")])]),e._v(" "),a("li",[a("p",[e._v("If a "),a("em",[e._v("proposed")]),e._v(" ADR is merged, then it should clearly document outstanding issues either in ADR document notes or in a GitHub Issue.")])]),e._v(" "),a("li",[a("p",[e._v("The PR SHOULD always be merged. In the case of a faulty ADR, we still prefer to merge it with a "),a("em",[e._v("rejected")]),e._v(" status. The only time the ADR SHOULD NOT be merged is if the author abandons it.")])]),e._v(" "),a("li",[a("p",[e._v("Merged ADRs SHOULD NOT be deleted.")])])]),e._v(" "),a("h3",{attrs:{id:"adr-status"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-status"}},[e._v("#")]),e._v(" ADR status")]),e._v(" "),a("p",[e._v("Status has two components:")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"text",base64:"e0NPTlNFTlNVUyBTVEFUVVN9IHtJTVBMRU1FTlRBVElPTiBTVEFUVVN9Cg=="}}),e._v(" "),a("p",[e._v("IMPLEMENTATION STATUS is either "),a("code",[e._v("Implemented")]),e._v(" or "),a("code",[e._v("Not Implemented")]),e._v(".")]),e._v(" "),a("h4",{attrs:{id:"consensus-status"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#consensus-status"}},[e._v("#")]),e._v(" Consensus Status")]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"mermaid",base64:"Zmxvd2NoYXJ0IFRECiAgICBBW0RSQUZUXSAtLSZndDsgQltQUk9QT1NFRF0KICAgIEIgLS0mZ3Q7IENbTEFTVCBDQUxMIFlZWVktTU0tRERdCiAgICBCIC0tJmd0OyBEW0FCQU5ET05FRF0KICAgIEMgLS0mZ3Q7IEVbQUNDRVBURUQgb3IgUkVKRUNURURdCiAgICBFIC0tJmd0OyBGW1NVUEVSU0VERUQgYnkgQURSLXh4eF0K"}}),e._v(" "),a("ul",[a("li",[a("code",[e._v("DRAFT")]),e._v(": [optional] an ADR which is work in progress, not being ready for a general review. This is to present an early work and get an early feedback in a Draft Pull Request form.")]),e._v(" "),a("li",[a("code",[e._v("PROPOSED")]),e._v(": an ADR covering a full solution architecture and still in the review - project stakeholders haven't reached an agreement yet.")]),e._v(" "),a("li",[a("code",[e._v("LAST CALL ")]),e._v(": [optional] clear notify that we are close to accept updates. Changing a status to "),a("code",[e._v("LAST CALL")]),e._v(" means that social consensus (of Cosmos SDK maintainers) has been reached and we still want to give it a time to let the community react or analyze.")]),e._v(" "),a("li",[a("code",[e._v("ACCEPTED")]),e._v(": ADR which will represent a currently implemented or to be implemented architecture design.")]),e._v(" "),a("li",[a("code",[e._v("REJECTED")]),e._v(": ADR can go from PROPOSED or ACCEPTED to rejected if the consensus among project stakeholders will decide so.")]),e._v(" "),a("li",[a("code",[e._v("SUPERSEEDED by ADR-xxx")]),e._v(": ADR which has been superseded by a new ADR.")]),e._v(" "),a("li",[a("code",[e._v("ABANDONED")]),e._v(": the ADR is no longer pursued by the original authors.")])]),e._v(" "),a("h2",{attrs:{id:"language-used-in-adr"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#language-used-in-adr"}},[e._v("#")]),e._v(" Language used in ADR")]),e._v(" "),a("ul",[a("li",[e._v("The context/background should be written in the present tense.")]),e._v(" "),a("li",[e._v("Avoid using a first, personal form.")])])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/main/assets/js/62.5f97f74e.js b/main/assets/js/62.d794a5e9.js similarity index 98% rename from main/assets/js/62.5f97f74e.js rename to main/assets/js/62.d794a5e9.js index 42c768e6b87..2ce4ba7c239 100644 --- a/main/assets/js/62.5f97f74e.js +++ b/main/assets/js/62.d794a5e9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{638:function(e,t,r){"use strict";r.r(t);var a=r(1),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"architecture-decision-records-adr"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#architecture-decision-records-adr"}},[e._v("#")]),e._v(" Architecture Decision Records (ADR)")]),e._v(" "),r("p",[e._v("This is a location to record all high-level architecture decisions for new feature and module proposals in the Cosmos Hub.")]),e._v(" "),r("p",[e._v("An Architectural Decision ("),r("strong",[e._v("AD")]),e._v(") is a software design choice that addresses a functional or non-functional requirement that is architecturally significant.\nAn Architecturally Significant Requirement ("),r("strong",[e._v("ASR")]),e._v(") is a requirement that has a measurable effect on a software system’s architecture and quality.\nAn Architectural Decision Record ("),r("strong",[e._v("ADR")]),e._v(") captures a single AD, such as often done when writing personal notes or meeting minutes; the collection of ADRs created and maintained in a project constitute its decision log. All these are within the topic of Architectural Knowledge Management (AKM).")]),e._v(" "),r("p",[e._v("You can read more about the ADR concept "),r("a",{attrs:{href:"https://adr.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"rationale"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rationale"}},[e._v("#")]),e._v(" Rationale")]),e._v(" "),r("p",[e._v("ADRs are intended to be the primary mechanism for proposing new feature designs and new processes, for collecting community input on an issue, and for documenting the design decisions.\nAn ADR should provide:")]),e._v(" "),r("ul",[r("li",[e._v("Context on the relevant goals and the current state")]),e._v(" "),r("li",[e._v("Proposed changes to achieve the goals")]),e._v(" "),r("li",[e._v("Summary of pros and cons")]),e._v(" "),r("li",[e._v("Discarded solution spaces and why they were discarded")]),e._v(" "),r("li",[e._v("References")]),e._v(" "),r("li",[e._v("Changelog")])]),e._v(" "),r("p",[e._v("Note the distinction between an ADR and a spec. The ADR provides the context, intuition, reasoning, and\njustification for a change in architecture, or for the architecture of something\nnew. The spec is much more compressed and streamlined summary of everything as\nit stands today.")]),e._v(" "),r("p",[e._v("If recorded decisions turn out to be lacking, convene a discussion, record the new decisions here, and then modify the code to match.")]),e._v(" "),r("h2",{attrs:{id:"creating-new-adr"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#creating-new-adr"}},[e._v("#")]),e._v(" Creating new ADR")]),e._v(" "),r("p",[e._v("Read about the "),r("RouterLink",{attrs:{to:"/architecture/PROCESS.html"}},[e._v("PROCESS")]),e._v(".")],1),e._v(" "),r("h3",{attrs:{id:"use-rfc-2119-keywords"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#use-rfc-2119-keywords"}},[e._v("#")]),e._v(" Use RFC 2119 Keywords")]),e._v(" "),r("p",[e._v('When writing ADRs, follow the same best practices for writing RFCs.\nWhen writing RFCs, key words are used to signify the requirements in the specification.\nThese words are often capitalized: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL.\nThey are to be interpreted as described in '),r("a",{attrs:{href:"https://datatracker.ietf.org/doc/html/rfc2119",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC 2119"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"adr-table-of-contents"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#adr-table-of-contents"}},[e._v("#")]),e._v(" ADR Table of Contents")]),e._v(" "),r("h3",{attrs:{id:"accepted"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#accepted"}},[e._v("#")]),e._v(" Accepted")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/architecture/adr-002-globalfee.html"}},[e._v("ADR 002: Globalfee Module")])],1)]),e._v(" "),r("h3",{attrs:{id:"proposed"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#proposed"}},[e._v("#")]),e._v(" Proposed")]),e._v(" "),r("ul",[r("li",[e._v("n/a")])]),e._v(" "),r("h3",{attrs:{id:"draft"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#draft"}},[e._v("#")]),e._v(" Draft")]),e._v(" "),r("ul",[r("li",[e._v("n/a")])]),e._v(" "),r("h3",{attrs:{id:"rejected"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rejected"}},[e._v("#")]),e._v(" Rejected")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/architecture/adr-001-interchain-accounts.html"}},[e._v("ADR 001: Interchain Accounts")])],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{636:function(e,t,r){"use strict";r.r(t);var a=r(1),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"architecture-decision-records-adr"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#architecture-decision-records-adr"}},[e._v("#")]),e._v(" Architecture Decision Records (ADR)")]),e._v(" "),r("p",[e._v("This is a location to record all high-level architecture decisions for new feature and module proposals in the Cosmos Hub.")]),e._v(" "),r("p",[e._v("An Architectural Decision ("),r("strong",[e._v("AD")]),e._v(") is a software design choice that addresses a functional or non-functional requirement that is architecturally significant.\nAn Architecturally Significant Requirement ("),r("strong",[e._v("ASR")]),e._v(") is a requirement that has a measurable effect on a software system’s architecture and quality.\nAn Architectural Decision Record ("),r("strong",[e._v("ADR")]),e._v(") captures a single AD, such as often done when writing personal notes or meeting minutes; the collection of ADRs created and maintained in a project constitute its decision log. All these are within the topic of Architectural Knowledge Management (AKM).")]),e._v(" "),r("p",[e._v("You can read more about the ADR concept "),r("a",{attrs:{href:"https://adr.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"rationale"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rationale"}},[e._v("#")]),e._v(" Rationale")]),e._v(" "),r("p",[e._v("ADRs are intended to be the primary mechanism for proposing new feature designs and new processes, for collecting community input on an issue, and for documenting the design decisions.\nAn ADR should provide:")]),e._v(" "),r("ul",[r("li",[e._v("Context on the relevant goals and the current state")]),e._v(" "),r("li",[e._v("Proposed changes to achieve the goals")]),e._v(" "),r("li",[e._v("Summary of pros and cons")]),e._v(" "),r("li",[e._v("Discarded solution spaces and why they were discarded")]),e._v(" "),r("li",[e._v("References")]),e._v(" "),r("li",[e._v("Changelog")])]),e._v(" "),r("p",[e._v("Note the distinction between an ADR and a spec. The ADR provides the context, intuition, reasoning, and\njustification for a change in architecture, or for the architecture of something\nnew. The spec is much more compressed and streamlined summary of everything as\nit stands today.")]),e._v(" "),r("p",[e._v("If recorded decisions turn out to be lacking, convene a discussion, record the new decisions here, and then modify the code to match.")]),e._v(" "),r("h2",{attrs:{id:"creating-new-adr"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#creating-new-adr"}},[e._v("#")]),e._v(" Creating new ADR")]),e._v(" "),r("p",[e._v("Read about the "),r("RouterLink",{attrs:{to:"/architecture/PROCESS.html"}},[e._v("PROCESS")]),e._v(".")],1),e._v(" "),r("h3",{attrs:{id:"use-rfc-2119-keywords"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#use-rfc-2119-keywords"}},[e._v("#")]),e._v(" Use RFC 2119 Keywords")]),e._v(" "),r("p",[e._v('When writing ADRs, follow the same best practices for writing RFCs.\nWhen writing RFCs, key words are used to signify the requirements in the specification.\nThese words are often capitalized: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL.\nThey are to be interpreted as described in '),r("a",{attrs:{href:"https://datatracker.ietf.org/doc/html/rfc2119",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC 2119"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"adr-table-of-contents"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#adr-table-of-contents"}},[e._v("#")]),e._v(" ADR Table of Contents")]),e._v(" "),r("h3",{attrs:{id:"accepted"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#accepted"}},[e._v("#")]),e._v(" Accepted")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/architecture/adr-002-globalfee.html"}},[e._v("ADR 002: Globalfee Module")])],1)]),e._v(" "),r("h3",{attrs:{id:"proposed"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#proposed"}},[e._v("#")]),e._v(" Proposed")]),e._v(" "),r("ul",[r("li",[e._v("n/a")])]),e._v(" "),r("h3",{attrs:{id:"draft"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#draft"}},[e._v("#")]),e._v(" Draft")]),e._v(" "),r("ul",[r("li",[e._v("n/a")])]),e._v(" "),r("h3",{attrs:{id:"rejected"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rejected"}},[e._v("#")]),e._v(" Rejected")]),e._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/architecture/adr-001-interchain-accounts.html"}},[e._v("ADR 001: Interchain Accounts")])],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/main/assets/js/63.2a43d802.js b/main/assets/js/63.0531c89d.js similarity index 99% rename from main/assets/js/63.2a43d802.js rename to main/assets/js/63.0531c89d.js index d62b84c5752..548f7db2ab5 100644 --- a/main/assets/js/63.2a43d802.js +++ b/main/assets/js/63.0531c89d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{637:function(e,t,a){"use strict";a.r(t);var r=a(1),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"adr-001-interchain-accounts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-001-interchain-accounts"}},[e._v("#")]),e._v(" ADR 001: Interchain Accounts")]),e._v(" "),a("h2",{attrs:{id:"changelog"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changelog"}},[e._v("#")]),e._v(" Changelog")]),e._v(" "),a("ul",[a("li",[e._v("2022-02-04: added content")]),e._v(" "),a("li",[e._v("2022-01-19: init")]),e._v(" "),a("li",[e._v("2023-06-28: mark as rejected")])]),e._v(" "),a("h2",{attrs:{id:"status"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#status"}},[e._v("#")]),e._v(" Status")]),e._v(" "),a("p",[e._v("REJECTED Not Implemented")]),e._v(" "),a("p",[a("strong",[e._v("Reason:")]),e._v(" The IBC team decided to integrate this functionality directly into their codebase and maintain it, because multiple users require it.")]),e._v(" "),a("h2",{attrs:{id:"abstract"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#abstract"}},[e._v("#")]),e._v(" Abstract")]),e._v(" "),a("p",[e._v('This is the Core Interchain Accounts Module. It allows the Cosmos Hub to act as a host chain with interchain accounts that are controlled by external IBC connected "Controller" blockchains. Candidate chains include Umee, Quicksilver, Sommelier. It is also a necessary component for a Authentication Module that allows the Cosmos Hub to act as a Controller chain as well. This will be recorded in a separate ADR.')]),e._v(" "),a("h2",{attrs:{id:"rationale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rationale"}},[e._v("#")]),e._v(" Rationale")]),e._v(" "),a("p",[e._v("This allows the Hub to participate in advanced cross-chain defi operations, like Liquid Staking and various protocol controlled value applications.")]),e._v(" "),a("h2",{attrs:{id:"desired-outcome"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desired-outcome"}},[e._v("#")]),e._v(" Desired Outcome")]),e._v(" "),a("p",[e._v("The hub can be used trustlessly as a host chain in the configuration of Interchain Accounts.")]),e._v(" "),a("h2",{attrs:{id:"consequences"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#consequences"}},[e._v("#")]),e._v(" Consequences")]),e._v(" "),a("p",[e._v('There has been preliminary work done to understand if this increases any security feature of the Cosmos Hub. One thought was that this capability is similar to contract to contract interactions which are possible on virtual machine blockchains like EVM chains. Those interactions introduced a new attack vector, called a re-entrancy bug, which was the culprit of "The DAO hack on Ethereum". We believe there is no risk of these kinds of attacks with Interchain Accounts because they require the interactions to be atomic and Interchain Accounts are asynchronous.')]),e._v(" "),a("h4",{attrs:{id:"backwards-compatibility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backwards-compatibility"}},[e._v("#")]),e._v(" Backwards Compatibility")]),e._v(" "),a("p",[e._v("This is the first of its kind.")]),e._v(" "),a("h4",{attrs:{id:"forward-compatibility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#forward-compatibility"}},[e._v("#")]),e._v(" Forward Compatibility")]),e._v(" "),a("p",[e._v("There are future releases of Interchain Accounts which are expected to be backwards compatible.")]),e._v(" "),a("h2",{attrs:{id:"technical-specification"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#technical-specification"}},[e._v("#")]),e._v(" Technical Specification")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/cosmos/ibc/blob/master/spec/app/ics-027-interchain-accounts/README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("ICS-27 Spec"),a("OutboundLink")],1)]),e._v(" "),a("h2",{attrs:{id:"development"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#development"}},[e._v("#")]),e._v(" Development")]),e._v(" "),a("ul",[a("li",[e._v("Integration requirements\n"),a("ul",[a("li",[e._v("Development has occured in "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBC-go"),a("OutboundLink")],1),e._v(" and progress tracked on the project board there.")])])]),e._v(" "),a("li",[e._v("Testing (Simulations, Core Team Testing, Partner Testing)\n"),a("ul",[a("li",[e._v("Simulations and Core Team tested this module")])])]),e._v(" "),a("li",[e._v("Audits (Internal Dev review, Third-party review, Bug Bounty)\n"),a("ul",[a("li",[e._v("An internal audit, an audit from Informal Systems, and an audit from Trail of Bits all took place with fixes made to all findings.")])])]),e._v(" "),a("li",[e._v("Networks (Testnets, Productionnets, Mainnets)\n"),a("ul",[a("li",[e._v("Testnets")])])])]),e._v(" "),a("h2",{attrs:{id:"governance-optional"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#governance-optional"}},[e._v("#")]),e._v(" Governance [optional]")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("Needs Signaling Proposal")])]),e._v(" "),a("li",[e._v("Core Community Governance\n"),a("ul",[a("li",[e._v("N/A")])])]),e._v(" "),a("li",[e._v("Steering Community\n"),a("ul",[a("li",[e._v("N/A. Possibly Aditya Srinpal, Sean King, Bez?")])])]),e._v(" "),a("li",[e._v("Timelines & Roadmap\n"),a("ul",[a("li",[e._v("Expected to be released as part of IBC 3.0 in Feb 2022 (currently in "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.0.0-beta1",target:"_blank",rel:"noopener noreferrer"}},[e._v("beta release"),a("OutboundLink")],1),e._v(")")])])])]),e._v(" "),a("h2",{attrs:{id:"project-integrations-optional"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#project-integrations-optional"}},[e._v("#")]),e._v(" Project Integrations [optional]")]),e._v(" "),a("ul",[a("li",[e._v("Gaia Integrations\n"),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/cosmos/gaia/pull/1150",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR"),a("OutboundLink")],1)])])]),e._v(" "),a("li",[e._v("Integration Partner\n"),a("ul",[a("li",[e._v("IBC Team")])])])]),e._v(" "),a("h4",{attrs:{id:"downstream-user-impact-report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#downstream-user-impact-report"}},[e._v("#")]),e._v(" Downstream User Impact Report")]),e._v(" "),a("p",[e._v("(Needs to be created)")]),e._v(" "),a("h4",{attrs:{id:"upstream-partner-impact-report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upstream-partner-impact-report"}},[e._v("#")]),e._v(" Upstream Partner Impact Report")]),e._v(" "),a("p",[e._v("(Needs to be created)")]),e._v(" "),a("h4",{attrs:{id:"inter-module-dependence-report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inter-module-dependence-report"}},[e._v("#")]),e._v(" Inter-module Dependence Report")]),e._v(" "),a("p",[e._v("(Needs to be created)")]),e._v(" "),a("h2",{attrs:{id:"support"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#support"}},[e._v("#")]),e._v(" Support")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://ibc.cosmos.network/main/apps/interchain-accounts/overview.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Documentation"),a("OutboundLink")],1)]),e._v(" "),a("h2",{attrs:{id:"additional-research-references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#additional-research-references"}},[e._v("#")]),e._v(" Additional Research & References")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://medium.com/chainapsis/why-interchain-accounts-change-everything-for-cosmos-interoperability-59c19032bf11",target:"_blank",rel:"noopener noreferrer"}},[e._v("Why Interchain Accounts Change Everything for Cosmos Interoperability"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/cosmos/interchain-accounts",target:"_blank",rel:"noopener noreferrer"}},[e._v("Interchain Account Auth Module Demo Repo"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{635:function(e,t,a){"use strict";a.r(t);var r=a(1),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"adr-001-interchain-accounts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adr-001-interchain-accounts"}},[e._v("#")]),e._v(" ADR 001: Interchain Accounts")]),e._v(" "),a("h2",{attrs:{id:"changelog"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changelog"}},[e._v("#")]),e._v(" Changelog")]),e._v(" "),a("ul",[a("li",[e._v("2022-02-04: added content")]),e._v(" "),a("li",[e._v("2022-01-19: init")]),e._v(" "),a("li",[e._v("2023-06-28: mark as rejected")])]),e._v(" "),a("h2",{attrs:{id:"status"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#status"}},[e._v("#")]),e._v(" Status")]),e._v(" "),a("p",[e._v("REJECTED Not Implemented")]),e._v(" "),a("p",[a("strong",[e._v("Reason:")]),e._v(" The IBC team decided to integrate this functionality directly into their codebase and maintain it, because multiple users require it.")]),e._v(" "),a("h2",{attrs:{id:"abstract"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#abstract"}},[e._v("#")]),e._v(" Abstract")]),e._v(" "),a("p",[e._v('This is the Core Interchain Accounts Module. It allows the Cosmos Hub to act as a host chain with interchain accounts that are controlled by external IBC connected "Controller" blockchains. Candidate chains include Umee, Quicksilver, Sommelier. It is also a necessary component for a Authentication Module that allows the Cosmos Hub to act as a Controller chain as well. This will be recorded in a separate ADR.')]),e._v(" "),a("h2",{attrs:{id:"rationale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rationale"}},[e._v("#")]),e._v(" Rationale")]),e._v(" "),a("p",[e._v("This allows the Hub to participate in advanced cross-chain defi operations, like Liquid Staking and various protocol controlled value applications.")]),e._v(" "),a("h2",{attrs:{id:"desired-outcome"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#desired-outcome"}},[e._v("#")]),e._v(" Desired Outcome")]),e._v(" "),a("p",[e._v("The hub can be used trustlessly as a host chain in the configuration of Interchain Accounts.")]),e._v(" "),a("h2",{attrs:{id:"consequences"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#consequences"}},[e._v("#")]),e._v(" Consequences")]),e._v(" "),a("p",[e._v('There has been preliminary work done to understand if this increases any security feature of the Cosmos Hub. One thought was that this capability is similar to contract to contract interactions which are possible on virtual machine blockchains like EVM chains. Those interactions introduced a new attack vector, called a re-entrancy bug, which was the culprit of "The DAO hack on Ethereum". We believe there is no risk of these kinds of attacks with Interchain Accounts because they require the interactions to be atomic and Interchain Accounts are asynchronous.')]),e._v(" "),a("h4",{attrs:{id:"backwards-compatibility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backwards-compatibility"}},[e._v("#")]),e._v(" Backwards Compatibility")]),e._v(" "),a("p",[e._v("This is the first of its kind.")]),e._v(" "),a("h4",{attrs:{id:"forward-compatibility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#forward-compatibility"}},[e._v("#")]),e._v(" Forward Compatibility")]),e._v(" "),a("p",[e._v("There are future releases of Interchain Accounts which are expected to be backwards compatible.")]),e._v(" "),a("h2",{attrs:{id:"technical-specification"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#technical-specification"}},[e._v("#")]),e._v(" Technical Specification")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/cosmos/ibc/blob/master/spec/app/ics-027-interchain-accounts/README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("ICS-27 Spec"),a("OutboundLink")],1)]),e._v(" "),a("h2",{attrs:{id:"development"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#development"}},[e._v("#")]),e._v(" Development")]),e._v(" "),a("ul",[a("li",[e._v("Integration requirements\n"),a("ul",[a("li",[e._v("Development has occured in "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("IBC-go"),a("OutboundLink")],1),e._v(" and progress tracked on the project board there.")])])]),e._v(" "),a("li",[e._v("Testing (Simulations, Core Team Testing, Partner Testing)\n"),a("ul",[a("li",[e._v("Simulations and Core Team tested this module")])])]),e._v(" "),a("li",[e._v("Audits (Internal Dev review, Third-party review, Bug Bounty)\n"),a("ul",[a("li",[e._v("An internal audit, an audit from Informal Systems, and an audit from Trail of Bits all took place with fixes made to all findings.")])])]),e._v(" "),a("li",[e._v("Networks (Testnets, Productionnets, Mainnets)\n"),a("ul",[a("li",[e._v("Testnets")])])])]),e._v(" "),a("h2",{attrs:{id:"governance-optional"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#governance-optional"}},[e._v("#")]),e._v(" Governance [optional]")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("Needs Signaling Proposal")])]),e._v(" "),a("li",[e._v("Core Community Governance\n"),a("ul",[a("li",[e._v("N/A")])])]),e._v(" "),a("li",[e._v("Steering Community\n"),a("ul",[a("li",[e._v("N/A. Possibly Aditya Srinpal, Sean King, Bez?")])])]),e._v(" "),a("li",[e._v("Timelines & Roadmap\n"),a("ul",[a("li",[e._v("Expected to be released as part of IBC 3.0 in Feb 2022 (currently in "),a("a",{attrs:{href:"https://github.com/cosmos/ibc-go/releases/tag/v3.0.0-beta1",target:"_blank",rel:"noopener noreferrer"}},[e._v("beta release"),a("OutboundLink")],1),e._v(")")])])])]),e._v(" "),a("h2",{attrs:{id:"project-integrations-optional"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#project-integrations-optional"}},[e._v("#")]),e._v(" Project Integrations [optional]")]),e._v(" "),a("ul",[a("li",[e._v("Gaia Integrations\n"),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/cosmos/gaia/pull/1150",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR"),a("OutboundLink")],1)])])]),e._v(" "),a("li",[e._v("Integration Partner\n"),a("ul",[a("li",[e._v("IBC Team")])])])]),e._v(" "),a("h4",{attrs:{id:"downstream-user-impact-report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#downstream-user-impact-report"}},[e._v("#")]),e._v(" Downstream User Impact Report")]),e._v(" "),a("p",[e._v("(Needs to be created)")]),e._v(" "),a("h4",{attrs:{id:"upstream-partner-impact-report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upstream-partner-impact-report"}},[e._v("#")]),e._v(" Upstream Partner Impact Report")]),e._v(" "),a("p",[e._v("(Needs to be created)")]),e._v(" "),a("h4",{attrs:{id:"inter-module-dependence-report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inter-module-dependence-report"}},[e._v("#")]),e._v(" Inter-module Dependence Report")]),e._v(" "),a("p",[e._v("(Needs to be created)")]),e._v(" "),a("h2",{attrs:{id:"support"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#support"}},[e._v("#")]),e._v(" Support")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://ibc.cosmos.network/main/apps/interchain-accounts/overview.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Documentation"),a("OutboundLink")],1)]),e._v(" "),a("h2",{attrs:{id:"additional-research-references"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#additional-research-references"}},[e._v("#")]),e._v(" Additional Research & References")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://medium.com/chainapsis/why-interchain-accounts-change-everything-for-cosmos-interoperability-59c19032bf11",target:"_blank",rel:"noopener noreferrer"}},[e._v("Why Interchain Accounts Change Everything for Cosmos Interoperability"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/cosmos/interchain-accounts",target:"_blank",rel:"noopener noreferrer"}},[e._v("Interchain Account Auth Module Demo Repo"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/main/assets/js/76.93057efd.js b/main/assets/js/76.33ac8d34.js similarity index 91% rename from main/assets/js/76.93057efd.js rename to main/assets/js/76.33ac8d34.js index b5de189f4f5..32a42807cbc 100644 --- a/main/assets/js/76.93057efd.js +++ b/main/assets/js/76.33ac8d34.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{608:function(t,e,a){"use strict";a.r(e);var n=a(1),s=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"getting-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),a("p",[t._v("This folder contains tutorials related to the "),a("code",[t._v("gaia")]),t._v(" application.")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[t._v("Installing "),a("code",[t._v("gaiad")])])],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{607:function(t,e,a){"use strict";a.r(e);var n=a(1),s=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"getting-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),a("p",[t._v("This folder contains tutorials related to the "),a("code",[t._v("gaia")]),t._v(" application.")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[t._v("Installing "),a("code",[t._v("gaiad")])])],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/77.15ef29f1.js b/main/assets/js/77.d001b34e.js similarity index 99% rename from main/assets/js/77.15ef29f1.js rename to main/assets/js/77.d001b34e.js index 589b5fdf34a..581707ee1e9 100644 --- a/main/assets/js/77.15ef29f1.js +++ b/main/assets/js/77.d001b34e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{607:function(t,e,a){"use strict";a.r(e);var o=a(1),s=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),a("p",[t._v("This guide will explain how to install the "),a("code",[t._v("gaiad")]),t._v(" binary and run the cli. With this binary installed on a server, you can participate on the mainnet as either a "),a("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("Full Node")]),t._v(" or a "),a("RouterLink",{attrs:{to:"/validators/validator-setup.html"}},[t._v("Validator")]),t._v(".")],1),t._v(" "),a("h2",{attrs:{id:"build-requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-requirements"}},[t._v("#")]),t._v(" Build Requirements")]),t._v(" "),a("p",[t._v("At present, the SDK fully supports installation on linux distributions. For the purpose of this instruction set, we'll be using "),a("code",[t._v("Ubuntu 20.04.3 LTS")]),t._v(". It is also possible to install "),a("code",[t._v("gaiad")]),t._v(" on Unix, while Windows may require additional unsupported third party installation. All steps are listed below for a clean install.")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"#build-tools"}},[t._v("Update & install build tools")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#install-go"}},[t._v("Install Go")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#install-the-binaries"}},[t._v("Install "),a("code",[t._v("Gaiad")]),t._v(" binaries")])])]),t._v(" "),a("h2",{attrs:{id:"build-tools"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-tools"}},[t._v("#")]),t._v(" Build Tools")]),t._v(" "),a("p",[t._v("Install "),a("code",[t._v("make")]),t._v(" and "),a("code",[t._v("gcc")]),t._v(".")]),t._v(" "),a("p",[a("strong",[t._v("Ubuntu:")])]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"c3VkbyBhcHQtZ2V0IHVwZGF0ZQoKc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkgbWFrZSBnY2MK"}}),t._v(" "),a("h2",{attrs:{id:"install-go"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-go"}},[t._v("#")]),t._v(" Install Go")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",[a("strong",[t._v("Go 1.20+")]),t._v(" is required.")])]),t._v(" "),a("p",[t._v("We suggest the following two ways to install Go. Check out the "),a("a",{attrs:{href:"https://golang.org/doc/install",target:"_blank",rel:"noopener noreferrer"}},[t._v("official docs"),a("OutboundLink")],1),t._v(" and Go installer for the correct download for your operating system. Alternatively, you can install Go yourself from the command line. Detailed below are standard default installation locations, but feel free to customize.")]),t._v(" "),a("p",[a("strong",[a("a",{attrs:{href:"https://go.dev/dl/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Go Binary Downloads"),a("OutboundLink")],1)])]),t._v(" "),a("p",[a("strong",[t._v("Ubuntu:")])]),t._v(" "),a("p",[t._v("At the time of this writing, the latest release is "),a("code",[t._v("1.20.3")]),t._v(". We're going to download the tarball, extract it to "),a("code",[t._v("/usr/local")]),t._v(", and export "),a("code",[t._v("GOROOT")]),t._v(" to our "),a("code",[t._v("$PATH")])]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3VybCAtT0wgaHR0cHM6Ly9nby5kZXYvZGwvZ28xLjIwLjMubGludXgtYW1kNjQudGFyLmd6CgpzdWRvIHRhciAtQyAvdXNyL2xvY2FsIC14dmYgaHR0cHM6Ly9nby5kZXYvZGwvZ28xLjIwLjMubGludXgtYW1kNjQudGFyLmd6CgoKZXhwb3J0IFBBVEg9JFBBVEg6L3Vzci9sb2NhbC9nby9iaW4KCg=="}}),t._v(" "),a("p",[t._v("Remember to add "),a("code",[t._v("GOPATH")]),t._v(" to your "),a("code",[t._v("$PATH")]),t._v(" environment variable. If you're not sure where that is, run "),a("code",[t._v("go env GOPATH")]),t._v(". This will allow us to run the "),a("code",[t._v("gaiad")]),t._v(" binary in the next step. If you're not sure how to set your "),a("code",[t._v("$PATH")]),t._v(" take a look at "),a("a",{attrs:{href:"https://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use-them",target:"_blank",rel:"noopener noreferrer"}},[t._v("these instructions"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"ZXhwb3J0IFBBVEg9JFBBVEg6JChnbyBlbnYgR09QQVRIKS9iaW4K"}}),t._v(" "),a("h2",{attrs:{id:"install-the-binaries"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-the-binaries"}},[t._v("#")]),t._v(" Install the binaries")]),t._v(" "),a("p",[t._v("Next, let's install the latest version of Gaia. Make sure you "),a("code",[t._v("git checkout")]),t._v(" the\ncorrect "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("released version"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIC1iICZsdDtsYXRlc3QtcmVsZWFzZS10YWcmZ3Q7IGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQKY2QgZ2FpYSAmYW1wOyZhbXA7IG1ha2UgaW5zdGFsbAo="}}),t._v(" "),a("p",[t._v("If this command fails due to the following error message, you might have already set "),a("code",[t._v("LDFLAGS")]),t._v(" prior to running this step.")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"IyBnaXRodWIuY29tL2Nvc21vcy9nYWlhL2NtZC9nYWlhZApmbGFnIHByb3ZpZGVkIGJ1dCBub3QgZGVmaW5lZDogLUwKdXNhZ2U6IGxpbmsgW29wdGlvbnNdIG1haW4ubwouLi4KbWFrZTogKioqIFtpbnN0YWxsXSBFcnJvciAyCg=="}}),t._v(" "),a("p",[t._v("Unset this environment variable and try again.")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"TERGTEFHUz0mcXVvdDsmcXVvdDsgbWFrZSBpbnN0YWxsCg=="}}),t._v(" "),a("blockquote",[a("p",[a("em",[t._v("NOTE")]),t._v(": If you still have issues at this step, please check that you have the latest stable version of GO installed.")])]),t._v(" "),a("p",[t._v("That will install the "),a("code",[t._v("gaiad")]),t._v(" binary. Verify that everything installed successfully by running:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdmVyc2lvbiAtLWxvbmcK"}}),t._v(" "),a("p",[t._v("You should see something similar to the following:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bmFtZTogZ2FpYQpzZXJ2ZXJfbmFtZTogZ2FpYWQKdmVyc2lvbjogdjkuMC4wCmNvbW1pdDogNjgyNzcwZjI0MTBhYjBkMzNhYzdmMGM3MjAzNTE5ZDdhOTlmYTJiNgpidWlsZF90YWdzOiBuZXRnbyxsZWRnZXIKZ286IGdvIHZlcnNpb24gZ28xLjIwLjMgbGludXgvYW1kNjQK"}}),t._v(" "),a("h3",{attrs:{id:"build-tags"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-tags"}},[t._v("#")]),t._v(" Build Tags")]),t._v(" "),a("p",[t._v("Build tags indicate special features that have been enabled in the binary.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Build Tag")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("netgo")]),t._v(" "),a("td",[t._v("Name resolution will use pure Go code")])]),t._v(" "),a("tr",[a("td",[t._v("ledger")]),t._v(" "),a("td",[t._v("Ledger devices are supported (hardware wallets)")])])])]),t._v(" "),a("h2",{attrs:{id:"work-with-a-cosmos-sdk-clone"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#work-with-a-cosmos-sdk-clone"}},[t._v("#")]),t._v(" Work with a Cosmos SDK Clone")]),t._v(" "),a("p",[t._v("To work with your own modifications of the Cosmos SDK, make a fork of this repo, and add a "),a("code",[t._v("replace")]),t._v(" clause to the "),a("code",[t._v("go.mod")]),t._v(" file.\nThe "),a("code",[t._v("replace")]),t._v(" clause you add to "),a("code",[t._v("go.mod")]),t._v(" must provide the correct import path:")]),t._v(" "),a("ul",[a("li",[t._v("Make appropriate changes")]),t._v(" "),a("li",[t._v("Add "),a("code",[t._v("replace github.com/cosmos/cosmos-sdk => /path/to/clone/cosmos-sdk")]),t._v(" to "),a("code",[t._v("go.mod")])]),t._v(" "),a("li",[t._v("Run "),a("code",[t._v("make clean install")]),t._v(" or "),a("code",[t._v("make clean build")])]),t._v(" "),a("li",[t._v("Test changes")])]),t._v(" "),a("h2",{attrs:{id:"next"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#next"}},[t._v("#")]),t._v(" Next")]),t._v(" "),a("p",[t._v("Now you can "),a("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("join the mainnet")]),t._v(", "),a("RouterLink",{attrs:{to:"/hub-tutorials/join-testnet.html"}},[t._v("the public testnet")]),t._v(".")],1)],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{608:function(t,e,a){"use strict";a.r(e);var o=a(1),s=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),a("p",[t._v("This guide will explain how to install the "),a("code",[t._v("gaiad")]),t._v(" binary and run the cli. With this binary installed on a server, you can participate on the mainnet as either a "),a("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("Full Node")]),t._v(" or a "),a("RouterLink",{attrs:{to:"/validators/validator-setup.html"}},[t._v("Validator")]),t._v(".")],1),t._v(" "),a("h2",{attrs:{id:"build-requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-requirements"}},[t._v("#")]),t._v(" Build Requirements")]),t._v(" "),a("p",[t._v("At present, the SDK fully supports installation on linux distributions. For the purpose of this instruction set, we'll be using "),a("code",[t._v("Ubuntu 20.04.3 LTS")]),t._v(". It is also possible to install "),a("code",[t._v("gaiad")]),t._v(" on Unix, while Windows may require additional unsupported third party installation. All steps are listed below for a clean install.")]),t._v(" "),a("ol",[a("li",[a("a",{attrs:{href:"#build-tools"}},[t._v("Update & install build tools")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#install-go"}},[t._v("Install Go")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#install-the-binaries"}},[t._v("Install "),a("code",[t._v("Gaiad")]),t._v(" binaries")])])]),t._v(" "),a("h2",{attrs:{id:"build-tools"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-tools"}},[t._v("#")]),t._v(" Build Tools")]),t._v(" "),a("p",[t._v("Install "),a("code",[t._v("make")]),t._v(" and "),a("code",[t._v("gcc")]),t._v(".")]),t._v(" "),a("p",[a("strong",[t._v("Ubuntu:")])]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"c3VkbyBhcHQtZ2V0IHVwZGF0ZQoKc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkgbWFrZSBnY2MK"}}),t._v(" "),a("h2",{attrs:{id:"install-go"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-go"}},[t._v("#")]),t._v(" Install Go")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",[a("strong",[t._v("Go 1.20+")]),t._v(" is required.")])]),t._v(" "),a("p",[t._v("We suggest the following two ways to install Go. Check out the "),a("a",{attrs:{href:"https://golang.org/doc/install",target:"_blank",rel:"noopener noreferrer"}},[t._v("official docs"),a("OutboundLink")],1),t._v(" and Go installer for the correct download for your operating system. Alternatively, you can install Go yourself from the command line. Detailed below are standard default installation locations, but feel free to customize.")]),t._v(" "),a("p",[a("strong",[a("a",{attrs:{href:"https://go.dev/dl/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Go Binary Downloads"),a("OutboundLink")],1)])]),t._v(" "),a("p",[a("strong",[t._v("Ubuntu:")])]),t._v(" "),a("p",[t._v("At the time of this writing, the latest release is "),a("code",[t._v("1.20.3")]),t._v(". We're going to download the tarball, extract it to "),a("code",[t._v("/usr/local")]),t._v(", and export "),a("code",[t._v("GOROOT")]),t._v(" to our "),a("code",[t._v("$PATH")])]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Y3VybCAtT0wgaHR0cHM6Ly9nby5kZXYvZGwvZ28xLjIwLjMubGludXgtYW1kNjQudGFyLmd6CgpzdWRvIHRhciAtQyAvdXNyL2xvY2FsIC14dmYgaHR0cHM6Ly9nby5kZXYvZGwvZ28xLjIwLjMubGludXgtYW1kNjQudGFyLmd6CgoKZXhwb3J0IFBBVEg9JFBBVEg6L3Vzci9sb2NhbC9nby9iaW4KCg=="}}),t._v(" "),a("p",[t._v("Remember to add "),a("code",[t._v("GOPATH")]),t._v(" to your "),a("code",[t._v("$PATH")]),t._v(" environment variable. If you're not sure where that is, run "),a("code",[t._v("go env GOPATH")]),t._v(". This will allow us to run the "),a("code",[t._v("gaiad")]),t._v(" binary in the next step. If you're not sure how to set your "),a("code",[t._v("$PATH")]),t._v(" take a look at "),a("a",{attrs:{href:"https://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use-them",target:"_blank",rel:"noopener noreferrer"}},[t._v("these instructions"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"ZXhwb3J0IFBBVEg9JFBBVEg6JChnbyBlbnYgR09QQVRIKS9iaW4K"}}),t._v(" "),a("h2",{attrs:{id:"install-the-binaries"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install-the-binaries"}},[t._v("#")]),t._v(" Install the binaries")]),t._v(" "),a("p",[t._v("Next, let's install the latest version of Gaia. Make sure you "),a("code",[t._v("git checkout")]),t._v(" the\ncorrect "),a("a",{attrs:{href:"https://github.com/cosmos/gaia/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("released version"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2l0IGNsb25lIC1iICZsdDtsYXRlc3QtcmVsZWFzZS10YWcmZ3Q7IGh0dHBzOi8vZ2l0aHViLmNvbS9jb3Ntb3MvZ2FpYS5naXQKY2QgZ2FpYSAmYW1wOyZhbXA7IG1ha2UgaW5zdGFsbAo="}}),t._v(" "),a("p",[t._v("If this command fails due to the following error message, you might have already set "),a("code",[t._v("LDFLAGS")]),t._v(" prior to running this step.")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"IyBnaXRodWIuY29tL2Nvc21vcy9nYWlhL2NtZC9nYWlhZApmbGFnIHByb3ZpZGVkIGJ1dCBub3QgZGVmaW5lZDogLUwKdXNhZ2U6IGxpbmsgW29wdGlvbnNdIG1haW4ubwouLi4KbWFrZTogKioqIFtpbnN0YWxsXSBFcnJvciAyCg=="}}),t._v(" "),a("p",[t._v("Unset this environment variable and try again.")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"TERGTEFHUz0mcXVvdDsmcXVvdDsgbWFrZSBpbnN0YWxsCg=="}}),t._v(" "),a("blockquote",[a("p",[a("em",[t._v("NOTE")]),t._v(": If you still have issues at this step, please check that you have the latest stable version of GO installed.")])]),t._v(" "),a("p",[t._v("That will install the "),a("code",[t._v("gaiad")]),t._v(" binary. Verify that everything installed successfully by running:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"Z2FpYWQgdmVyc2lvbiAtLWxvbmcK"}}),t._v(" "),a("p",[t._v("You should see something similar to the following:")]),t._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"bash",base64:"bmFtZTogZ2FpYQpzZXJ2ZXJfbmFtZTogZ2FpYWQKdmVyc2lvbjogdjkuMC4wCmNvbW1pdDogNjgyNzcwZjI0MTBhYjBkMzNhYzdmMGM3MjAzNTE5ZDdhOTlmYTJiNgpidWlsZF90YWdzOiBuZXRnbyxsZWRnZXIKZ286IGdvIHZlcnNpb24gZ28xLjIwLjMgbGludXgvYW1kNjQK"}}),t._v(" "),a("h3",{attrs:{id:"build-tags"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#build-tags"}},[t._v("#")]),t._v(" Build Tags")]),t._v(" "),a("p",[t._v("Build tags indicate special features that have been enabled in the binary.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Build Tag")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("netgo")]),t._v(" "),a("td",[t._v("Name resolution will use pure Go code")])]),t._v(" "),a("tr",[a("td",[t._v("ledger")]),t._v(" "),a("td",[t._v("Ledger devices are supported (hardware wallets)")])])])]),t._v(" "),a("h2",{attrs:{id:"work-with-a-cosmos-sdk-clone"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#work-with-a-cosmos-sdk-clone"}},[t._v("#")]),t._v(" Work with a Cosmos SDK Clone")]),t._v(" "),a("p",[t._v("To work with your own modifications of the Cosmos SDK, make a fork of this repo, and add a "),a("code",[t._v("replace")]),t._v(" clause to the "),a("code",[t._v("go.mod")]),t._v(" file.\nThe "),a("code",[t._v("replace")]),t._v(" clause you add to "),a("code",[t._v("go.mod")]),t._v(" must provide the correct import path:")]),t._v(" "),a("ul",[a("li",[t._v("Make appropriate changes")]),t._v(" "),a("li",[t._v("Add "),a("code",[t._v("replace github.com/cosmos/cosmos-sdk => /path/to/clone/cosmos-sdk")]),t._v(" to "),a("code",[t._v("go.mod")])]),t._v(" "),a("li",[t._v("Run "),a("code",[t._v("make clean install")]),t._v(" or "),a("code",[t._v("make clean build")])]),t._v(" "),a("li",[t._v("Test changes")])]),t._v(" "),a("h2",{attrs:{id:"next"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#next"}},[t._v("#")]),t._v(" Next")]),t._v(" "),a("p",[t._v("Now you can "),a("RouterLink",{attrs:{to:"/hub-tutorials/join-mainnet.html"}},[t._v("join the mainnet")]),t._v(", "),a("RouterLink",{attrs:{to:"/hub-tutorials/join-testnet.html"}},[t._v("the public testnet")]),t._v(".")],1)],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/main/assets/js/90.5f4c7340.js b/main/assets/js/90.0632b3cd.js similarity index 99% rename from main/assets/js/90.5f4c7340.js rename to main/assets/js/90.0632b3cd.js index be7eb687728..a97024fa080 100644 --- a/main/assets/js/90.5f4c7340.js +++ b/main/assets/js/90.0632b3cd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{535:function(e,a,t){"use strict";t.r(a);var r=t(1),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"distribution-subspace"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#distribution-subspace"}},[e._v("#")]),e._v(" "),t("code",[e._v("distribution")]),e._v(" subspace")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("distribution")]),e._v(" module is responsible for distributing staking rewards between validators, delegators, and the Community Pool. It has the following parameters:")]),e._v(" "),t("table",[t("tr",[t("th",[e._v("Key")]),e._v(" "),t("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.distribution,(function(a,r){return t("tr",[t("td",[t("a",{attrs:{href:"#"+r}},[t("code",[e._v(e._s(r))])])]),e._v(" "),t("td",[t("code",[e._v(e._s(a))])])])}))],2),e._v(" "),t("p",[e._v("The "),t("code",[e._v("distribution")]),e._v(" module enables a simple distribution mechanism that passively distributes rewards between validators and delegators. Collected rewards are pooled globally and divided out passively to validators and delegators. Each validator has the opportunity to charge commission to the delegators on the rewards collected on behalf of the delegators. Fees are collected directly into a global reward pool and validator proposer-reward pool.")]),e._v(" "),t("p",[t("strong",[e._v("There is "),t("a",{attrs:{href:"#known-bug"}},[e._v("a known bug")]),e._v(" associated with this module.")])]),e._v(" "),t("h2",{attrs:{id:"governance-notes-on-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),t("h3",{attrs:{id:"communitytax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communitytax"}},[e._v("#")]),e._v(" "),t("code",[e._v("communitytax")])]),e._v(" "),t("p",[t("strong",[e._v("The proportion of staking rewards diverted to the community pool.")])]),e._v(" "),t("p",[e._v('Staking on the Cosmos Hub entitles participants to inflationary (aka "block") rewards and transaction fees. A portion of these staking rewards is diverted to the community pool, which can be spent with a successful community-spend governance proposal. '),t("code",[e._v("communitytax")]),e._v(" is the parameter that determines the proportion of staking rewards diverted to the community pool, which is currently "),t("code",[e._v("0.020000000000000000")]),e._v(" (2%) of all staking rewards.")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.communitytax))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.020000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.020000000000000000")])])]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-communitytax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-communitytax"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("communitytax")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("communitytax")]),e._v(" parameter will decrease the rate that the community pool is funded and will increase the staking rewards captured by staking participants. This will make it more likely for the community pool to be exhausted and could potentially increase the motivation for participants to stake.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-communitytax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-communitytax"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("communitytax")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("communitytax")]),e._v(" parameter will increase the rate that the community pool is funded and will decrease the staking rewards captured by staking participants. This will make it more less for the community pool to be exhausted and could potentially decrease the motivation for participants to stake.")]),e._v(" "),t("h3",{attrs:{id:"baseproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#baseproposerreward"}},[e._v("#")]),e._v(" "),t("code",[e._v("baseproposerreward")])]),e._v(" "),t("p",[t("strong",[e._v("The fixed base reward bonus for the validator proposing a block, as a proportion of transaction fees.")])]),e._v(" "),t("p",[e._v("All validators in the active set share the rewards for producing a block equally, except for the proposer of a valid block: that validator receives a bonus of "),t("code",[e._v("0.010000000000000000")]),e._v(" (1%) more in transaction fees. The proposer must include a minimum of 2/3 of precommit signatures from the other validators in the active set in order for the block to be valid and to receive the "),t("code",[e._v("baseproposerreward")]),e._v(" bonus. All in Bits has published more in-depth information "),t("a",{attrs:{href:"https://hub.cosmos.network/main/validators/validator-faq.html#how-are-fees-distributed",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.baseproposerreward))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.010000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.010000000000000000")])])]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-baseproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-baseproposerreward"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("baseproposerreward")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("baseproposerreward")]),e._v(" parameter will decrease the advantage that the proposer has over other validators. This may decrease an operator's motivation to ensure that its validator is reliably online and includes at least 2/3 precommit signatures of the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-baseproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-baseproposerreward"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("baseproposerreward")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("baseproposerreward")]),e._v(" parameter will increase the advantage that the proposer has over other validators. This may increase an operator's motivation to ensure that its validator is reliably online and includes at least 2/3 precommit signatures of the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"notes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("The Cosmos Hub transaction fee volume is proportionally very low in value compared to the inflationary block rewards, and until that changes, this parameter will likely have very little impact on validator behaviours. As fee volumes increase, the "),t("code",[e._v("baseproposerreward")]),e._v(" bonus may incentivize delegations to the validator(s) with the greatest stake-backing. There are some detailed discussions about the proposer bonus "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/3529",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"bonusproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bonusproposerreward"}},[e._v("#")]),e._v(" "),t("code",[e._v("bonusproposerreward")])]),e._v(" "),t("p",[t("strong",[e._v("The maximum additional reward bonus for the validator proposing a block, as a proportion of transaction fees.")])]),e._v(" "),t("p",[e._v("All validators in the active set share the rewards for producing a block equally, except for the proposer of a valid block. If that validator includes more than a minimum of 2/3 of precommit signatures from the other validators in the active set, they are eligible to receive the "),t("code",[e._v("bonusproposerreward")]),e._v(" of up to 4% ("),t("code",[e._v("0.040000000000000000")]),e._v("), beyond the 1% "),t("code",[e._v("baseproposerreward")]),e._v(". The bonus proposer reward amount that a validator receives depends upon how many precommit signatures are included in the proposed block (additional to the requisite 2/3). All in Bits has published more in-depth information "),t("a",{attrs:{href:"https://hub.cosmos.network/main/validators/validator-faq.html#how-are-fees-distributed",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.bonusproposerreward))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.040000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.040000000000000000")])])]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-bonusproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-bonusproposerreward"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("bonusproposerreward")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("bonusproposerreward")]),e._v(" parameter will decrease the advantage that the proposer has over other validators. This may decrease an operator's motivation to ensure that its validator is reliably online and includes more than 2/3 precommit signatures from the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-bonusproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-bonusproposerreward"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("bonusproposerreward")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("bonusproposerreward")]),e._v(" parameter will increase the advantage that the proposer has over other validators. This may increase an operator's motivation to ensure that its validator is reliably online and includes more than 2/3 precommit signatures from the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"notes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-2"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("The Cosmos Hub transaction fee volume is proportionally very low in value compared to the inflationary block rewards, and until that changes, this parameter will likely have very little impact on validator behaviours. As fee volumes increase, the "),t("code",[e._v("bonusproposerreward")]),e._v(" bonus may incentivize delegations to the validator(s) with the greatest stake-backing. There are some detailed discussions about the proposer bonus "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/3529",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("p",[t("strong",[e._v("Note")]),e._v(' that "reserve pool" refers to the community pool. In this example from the '),t("a",{attrs:{href:"https://hub.cosmos.network/main/validators/validator-faq.html#how-are-fees-distributed",target:"_blank",rel:"noopener noreferrer"}},[e._v("All in Bits website"),t("OutboundLink")],1),e._v(", there are 10 validators with equal stake. Each of them applies a 1% commission rate and has 20% of self-delegated Atoms. Now comes a successful block that collects a total of 1025.51020408 Atoms in fees.")]),e._v(" "),t("p",[e._v("First, a 2% tax is applied. The corresponding Atoms go to the reserve pool (aka community pool). Reserve pool's funds can be allocated through governance to fund bounties and upgrades.")]),e._v(" "),t("p",[e._v("2% * 1025.51020408 = 20.51020408 Atoms go to the reserve pool.\n1005 Atoms now remain. Let's assume that the proposer included 100% of the signatures in its block. It thus obtains the full bonus of 5%.")]),e._v(" "),t("p",[e._v("We have to solve this simple equation to find the reward R for each validator:")]),e._v(" "),t("p",[e._v("9"),t("em",[e._v("R + R + R")]),e._v("5% = 1005 ⇔ R = 1005/10.05 = 100")]),e._v(" "),t("p",[e._v("For the proposer validator:")]),e._v(" "),t("p",[e._v("The pool obtains R + R * 5%: 105 Atoms")]),e._v(" "),t("p",[e._v("Commission: 105 * 80% * 1% = 0.84 Atoms")]),e._v(" "),t("p",[e._v("Validator's reward: 105 * 20% + Commission = 21.84 Atoms")]),e._v(" "),t("p",[e._v("Delegators' rewards: 105 * 80% - Commission = 83.16 Atoms (each delegator will be able to claim its portion of these rewards in proportion to their stake)")]),e._v(" "),t("p",[e._v("For each non-proposer validator:")]),e._v(" "),t("p",[e._v("The pool obtains R: 100 Atoms")]),e._v(" "),t("p",[e._v("Commission: 100 * 80% * 1% = 0.8 Atoms")]),e._v(" "),t("p",[e._v("Validator's reward: 100 * 20% + Commission = 20.8 Atoms")]),e._v(" "),t("p",[e._v("Delegators' rewards: 100 * 80% - Commission = 79.2 Atoms (each delegator will be able to claim their portion of these rewards in proportion to their stake)")]),e._v(" "),t("h3",{attrs:{id:"withdrawaddrenabled"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withdrawaddrenabled"}},[e._v("#")]),e._v(" "),t("code",[e._v("withdrawaddrenabled")])]),e._v(" "),t("p",[t("strong",[e._v("Determines whether or not delegators may set a separate address for receiving staking rewards.")])]),e._v(" "),t("p",[e._v("Delegators can designate a separate withdrawal address (account) that receives staking rewards when "),t("code",[e._v("withdrawaddrenabled")]),e._v(" is set to "),t("code",[e._v("true")]),e._v(". When "),t("code",[e._v("withdrawaddrenabled")]),e._v(" is set to "),t("code",[e._v("false")]),e._v(", the delegator can no longer designate a separate address for withdrawals.")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.withdrawaddrenabled))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("true")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("true")])])]),e._v(" "),t("h4",{attrs:{id:"changing-the-withdrawaddrenabled-parameter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changing-the-withdrawaddrenabled-parameter"}},[e._v("#")]),e._v(" Changing the "),t("code",[e._v("withdrawaddrenabled")]),e._v(" parameter")]),e._v(" "),t("p",[e._v("Changing the "),t("code",[e._v("withdrawaddrenabled")]),e._v(" to false will prevent delegators from changing or setting a separate withdrawal address (account) that receives the staking rewards. This may disrupt the functionality of applications and the expectations of staking participants.")]),e._v(" "),t("h4",{attrs:{id:"notes-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-3"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("This parameter was set to "),t("code",[e._v("false")]),e._v(" before transfers were enabled in order to prevent stakers from diverting their rewards to other addresses ie. to avoid a loophole that would enable ATOM transfer via diverting staking rewards to a designated address. This parameter likely is only useful if "),t("RouterLink",{attrs:{to:"/governance/proposal-types/params-change/Bank.html#1-sendenabled"}},[t("code",[e._v("sendenabled")])]),e._v(" is set to "),t("code",[e._v("false")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"known-bug"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-bug"}},[e._v("#")]),e._v(" Known Bug")]),e._v(" "),t("p",[e._v("There is a known bug associated with this module that has reportedly caused a chain to halt. In "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/5808",target:"_blank",rel:"noopener noreferrer"}},[e._v("this reported case"),t("OutboundLink")],1),e._v(", the chain's parameter values were changed to be:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"Y29tbXVuaXR5X3RheDogJnF1b3Q7MC4wMjAwMDAwMDAwMDAwMDAwMDAmcXVvdDsKYmFzZV9wcm9wb3Nlcl9yZXdhcmQ6ICZxdW90OzAuOTk5MDAwMDAwMDAwMDAwMDAwJnF1b3Q7CmJvbnVzX3Byb3Bvc2VyX3Jld2FyZDogJnF1b3Q7MC4wNDAwMDAwMDAwMDAwMDAwMDAmcXVvdDsK"}}),e._v(" "),t("p",[e._v("Though the system will not allow eg. "),t("code",[e._v("baseproposerreward")]),e._v(" to be a value greater than 1.0, it will allow the "),t("a",{attrs:{href:"#communitytax"}},[t("code",[e._v("communitytax")])]),e._v(", "),t("a",{attrs:{href:"#baseproposerreward"}},[t("code",[e._v("baseproposerreward")])]),e._v(", and "),t("a",{attrs:{href:"#bonusproposerreward"}},[t("code",[e._v("bonusproposerreward")])]),e._v(" parameters values to total an amount greater than 1.00, which will apparently cause the chain to panic and halt. You can "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/5808",target:"_blank",rel:"noopener noreferrer"}},[e._v("read more about the reported issue here"),t("OutboundLink")],1),e._v(".")])],1)}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{534:function(e,a,t){"use strict";t.r(a);var r=t(1),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"distribution-subspace"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#distribution-subspace"}},[e._v("#")]),e._v(" "),t("code",[e._v("distribution")]),e._v(" subspace")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("distribution")]),e._v(" module is responsible for distributing staking rewards between validators, delegators, and the Community Pool. It has the following parameters:")]),e._v(" "),t("table",[t("tr",[t("th",[e._v("Key")]),e._v(" "),t("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.distribution,(function(a,r){return t("tr",[t("td",[t("a",{attrs:{href:"#"+r}},[t("code",[e._v(e._s(r))])])]),e._v(" "),t("td",[t("code",[e._v(e._s(a))])])])}))],2),e._v(" "),t("p",[e._v("The "),t("code",[e._v("distribution")]),e._v(" module enables a simple distribution mechanism that passively distributes rewards between validators and delegators. Collected rewards are pooled globally and divided out passively to validators and delegators. Each validator has the opportunity to charge commission to the delegators on the rewards collected on behalf of the delegators. Fees are collected directly into a global reward pool and validator proposer-reward pool.")]),e._v(" "),t("p",[t("strong",[e._v("There is "),t("a",{attrs:{href:"#known-bug"}},[e._v("a known bug")]),e._v(" associated with this module.")])]),e._v(" "),t("h2",{attrs:{id:"governance-notes-on-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),t("h3",{attrs:{id:"communitytax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#communitytax"}},[e._v("#")]),e._v(" "),t("code",[e._v("communitytax")])]),e._v(" "),t("p",[t("strong",[e._v("The proportion of staking rewards diverted to the community pool.")])]),e._v(" "),t("p",[e._v('Staking on the Cosmos Hub entitles participants to inflationary (aka "block") rewards and transaction fees. A portion of these staking rewards is diverted to the community pool, which can be spent with a successful community-spend governance proposal. '),t("code",[e._v("communitytax")]),e._v(" is the parameter that determines the proportion of staking rewards diverted to the community pool, which is currently "),t("code",[e._v("0.020000000000000000")]),e._v(" (2%) of all staking rewards.")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.communitytax))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.020000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.020000000000000000")])])]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-communitytax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-communitytax"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("communitytax")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("communitytax")]),e._v(" parameter will decrease the rate that the community pool is funded and will increase the staking rewards captured by staking participants. This will make it more likely for the community pool to be exhausted and could potentially increase the motivation for participants to stake.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-communitytax"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-communitytax"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("communitytax")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("communitytax")]),e._v(" parameter will increase the rate that the community pool is funded and will decrease the staking rewards captured by staking participants. This will make it more less for the community pool to be exhausted and could potentially decrease the motivation for participants to stake.")]),e._v(" "),t("h3",{attrs:{id:"baseproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#baseproposerreward"}},[e._v("#")]),e._v(" "),t("code",[e._v("baseproposerreward")])]),e._v(" "),t("p",[t("strong",[e._v("The fixed base reward bonus for the validator proposing a block, as a proportion of transaction fees.")])]),e._v(" "),t("p",[e._v("All validators in the active set share the rewards for producing a block equally, except for the proposer of a valid block: that validator receives a bonus of "),t("code",[e._v("0.010000000000000000")]),e._v(" (1%) more in transaction fees. The proposer must include a minimum of 2/3 of precommit signatures from the other validators in the active set in order for the block to be valid and to receive the "),t("code",[e._v("baseproposerreward")]),e._v(" bonus. All in Bits has published more in-depth information "),t("a",{attrs:{href:"https://hub.cosmos.network/main/validators/validator-faq.html#how-are-fees-distributed",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.baseproposerreward))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.010000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.010000000000000000")])])]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-baseproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-baseproposerreward"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("baseproposerreward")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("baseproposerreward")]),e._v(" parameter will decrease the advantage that the proposer has over other validators. This may decrease an operator's motivation to ensure that its validator is reliably online and includes at least 2/3 precommit signatures of the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-baseproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-baseproposerreward"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("baseproposerreward")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("baseproposerreward")]),e._v(" parameter will increase the advantage that the proposer has over other validators. This may increase an operator's motivation to ensure that its validator is reliably online and includes at least 2/3 precommit signatures of the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"notes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("The Cosmos Hub transaction fee volume is proportionally very low in value compared to the inflationary block rewards, and until that changes, this parameter will likely have very little impact on validator behaviours. As fee volumes increase, the "),t("code",[e._v("baseproposerreward")]),e._v(" bonus may incentivize delegations to the validator(s) with the greatest stake-backing. There are some detailed discussions about the proposer bonus "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/3529",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"bonusproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bonusproposerreward"}},[e._v("#")]),e._v(" "),t("code",[e._v("bonusproposerreward")])]),e._v(" "),t("p",[t("strong",[e._v("The maximum additional reward bonus for the validator proposing a block, as a proportion of transaction fees.")])]),e._v(" "),t("p",[e._v("All validators in the active set share the rewards for producing a block equally, except for the proposer of a valid block. If that validator includes more than a minimum of 2/3 of precommit signatures from the other validators in the active set, they are eligible to receive the "),t("code",[e._v("bonusproposerreward")]),e._v(" of up to 4% ("),t("code",[e._v("0.040000000000000000")]),e._v("), beyond the 1% "),t("code",[e._v("baseproposerreward")]),e._v(". The bonus proposer reward amount that a validator receives depends upon how many precommit signatures are included in the proposed block (additional to the requisite 2/3). All in Bits has published more in-depth information "),t("a",{attrs:{href:"https://hub.cosmos.network/main/validators/validator-faq.html#how-are-fees-distributed",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.bonusproposerreward))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.040000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.040000000000000000")])])]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-bonusproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-bonusproposerreward"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("bonusproposerreward")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("bonusproposerreward")]),e._v(" parameter will decrease the advantage that the proposer has over other validators. This may decrease an operator's motivation to ensure that its validator is reliably online and includes more than 2/3 precommit signatures from the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-bonusproposerreward"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-bonusproposerreward"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("bonusproposerreward")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("bonusproposerreward")]),e._v(" parameter will increase the advantage that the proposer has over other validators. This may increase an operator's motivation to ensure that its validator is reliably online and includes more than 2/3 precommit signatures from the other validators in its proposed block.")]),e._v(" "),t("h4",{attrs:{id:"notes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-2"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("The Cosmos Hub transaction fee volume is proportionally very low in value compared to the inflationary block rewards, and until that changes, this parameter will likely have very little impact on validator behaviours. As fee volumes increase, the "),t("code",[e._v("bonusproposerreward")]),e._v(" bonus may incentivize delegations to the validator(s) with the greatest stake-backing. There are some detailed discussions about the proposer bonus "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/3529",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("p",[t("strong",[e._v("Note")]),e._v(' that "reserve pool" refers to the community pool. In this example from the '),t("a",{attrs:{href:"https://hub.cosmos.network/main/validators/validator-faq.html#how-are-fees-distributed",target:"_blank",rel:"noopener noreferrer"}},[e._v("All in Bits website"),t("OutboundLink")],1),e._v(", there are 10 validators with equal stake. Each of them applies a 1% commission rate and has 20% of self-delegated Atoms. Now comes a successful block that collects a total of 1025.51020408 Atoms in fees.")]),e._v(" "),t("p",[e._v("First, a 2% tax is applied. The corresponding Atoms go to the reserve pool (aka community pool). Reserve pool's funds can be allocated through governance to fund bounties and upgrades.")]),e._v(" "),t("p",[e._v("2% * 1025.51020408 = 20.51020408 Atoms go to the reserve pool.\n1005 Atoms now remain. Let's assume that the proposer included 100% of the signatures in its block. It thus obtains the full bonus of 5%.")]),e._v(" "),t("p",[e._v("We have to solve this simple equation to find the reward R for each validator:")]),e._v(" "),t("p",[e._v("9"),t("em",[e._v("R + R + R")]),e._v("5% = 1005 ⇔ R = 1005/10.05 = 100")]),e._v(" "),t("p",[e._v("For the proposer validator:")]),e._v(" "),t("p",[e._v("The pool obtains R + R * 5%: 105 Atoms")]),e._v(" "),t("p",[e._v("Commission: 105 * 80% * 1% = 0.84 Atoms")]),e._v(" "),t("p",[e._v("Validator's reward: 105 * 20% + Commission = 21.84 Atoms")]),e._v(" "),t("p",[e._v("Delegators' rewards: 105 * 80% - Commission = 83.16 Atoms (each delegator will be able to claim its portion of these rewards in proportion to their stake)")]),e._v(" "),t("p",[e._v("For each non-proposer validator:")]),e._v(" "),t("p",[e._v("The pool obtains R: 100 Atoms")]),e._v(" "),t("p",[e._v("Commission: 100 * 80% * 1% = 0.8 Atoms")]),e._v(" "),t("p",[e._v("Validator's reward: 100 * 20% + Commission = 20.8 Atoms")]),e._v(" "),t("p",[e._v("Delegators' rewards: 100 * 80% - Commission = 79.2 Atoms (each delegator will be able to claim their portion of these rewards in proportion to their stake)")]),e._v(" "),t("h3",{attrs:{id:"withdrawaddrenabled"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withdrawaddrenabled"}},[e._v("#")]),e._v(" "),t("code",[e._v("withdrawaddrenabled")])]),e._v(" "),t("p",[t("strong",[e._v("Determines whether or not delegators may set a separate address for receiving staking rewards.")])]),e._v(" "),t("p",[e._v("Delegators can designate a separate withdrawal address (account) that receives staking rewards when "),t("code",[e._v("withdrawaddrenabled")]),e._v(" is set to "),t("code",[e._v("true")]),e._v(". When "),t("code",[e._v("withdrawaddrenabled")]),e._v(" is set to "),t("code",[e._v("false")]),e._v(", the delegator can no longer designate a separate address for withdrawals.")]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.distribution.withdrawaddrenabled))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("true")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("true")])])]),e._v(" "),t("h4",{attrs:{id:"changing-the-withdrawaddrenabled-parameter"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#changing-the-withdrawaddrenabled-parameter"}},[e._v("#")]),e._v(" Changing the "),t("code",[e._v("withdrawaddrenabled")]),e._v(" parameter")]),e._v(" "),t("p",[e._v("Changing the "),t("code",[e._v("withdrawaddrenabled")]),e._v(" to false will prevent delegators from changing or setting a separate withdrawal address (account) that receives the staking rewards. This may disrupt the functionality of applications and the expectations of staking participants.")]),e._v(" "),t("h4",{attrs:{id:"notes-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-3"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("This parameter was set to "),t("code",[e._v("false")]),e._v(" before transfers were enabled in order to prevent stakers from diverting their rewards to other addresses ie. to avoid a loophole that would enable ATOM transfer via diverting staking rewards to a designated address. This parameter likely is only useful if "),t("RouterLink",{attrs:{to:"/governance/proposal-types/params-change/Bank.html#1-sendenabled"}},[t("code",[e._v("sendenabled")])]),e._v(" is set to "),t("code",[e._v("false")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"known-bug"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#known-bug"}},[e._v("#")]),e._v(" Known Bug")]),e._v(" "),t("p",[e._v("There is a known bug associated with this module that has reportedly caused a chain to halt. In "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/5808",target:"_blank",rel:"noopener noreferrer"}},[e._v("this reported case"),t("OutboundLink")],1),e._v(", the chain's parameter values were changed to be:")]),e._v(" "),t("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"Y29tbXVuaXR5X3RheDogJnF1b3Q7MC4wMjAwMDAwMDAwMDAwMDAwMDAmcXVvdDsKYmFzZV9wcm9wb3Nlcl9yZXdhcmQ6ICZxdW90OzAuOTk5MDAwMDAwMDAwMDAwMDAwJnF1b3Q7CmJvbnVzX3Byb3Bvc2VyX3Jld2FyZDogJnF1b3Q7MC4wNDAwMDAwMDAwMDAwMDAwMDAmcXVvdDsK"}}),e._v(" "),t("p",[e._v("Though the system will not allow eg. "),t("code",[e._v("baseproposerreward")]),e._v(" to be a value greater than 1.0, it will allow the "),t("a",{attrs:{href:"#communitytax"}},[t("code",[e._v("communitytax")])]),e._v(", "),t("a",{attrs:{href:"#baseproposerreward"}},[t("code",[e._v("baseproposerreward")])]),e._v(", and "),t("a",{attrs:{href:"#bonusproposerreward"}},[t("code",[e._v("bonusproposerreward")])]),e._v(" parameters values to total an amount greater than 1.00, which will apparently cause the chain to panic and halt. You can "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/issues/5808",target:"_blank",rel:"noopener noreferrer"}},[e._v("read more about the reported issue here"),t("OutboundLink")],1),e._v(".")])],1)}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/main/assets/js/91.9d8a8165.js b/main/assets/js/91.3bb82a20.js similarity index 99% rename from main/assets/js/91.9d8a8165.js rename to main/assets/js/91.3bb82a20.js index 39e55bea6a5..c5cd02fa4c5 100644 --- a/main/assets/js/91.9d8a8165.js +++ b/main/assets/js/91.3bb82a20.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{534:function(e,o,t){"use strict";t.r(o);var a=t(1),r=Object(a.a)({},(function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gov-subspace"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gov-subspace"}},[e._v("#")]),e._v(" "),t("code",[e._v("gov")]),e._v(" subspace")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("gov")]),e._v(" module is responsible for on-chain governance proposals and voting functionality.")]),e._v(" "),t("table",[t("tr",[t("th",[e._v("Key")]),e._v(" "),t("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.gov,(function(o,a){return t("tr",[t("td",[t("a",{attrs:{href:"#"+a}},[t("code",[e._v(e._s(a))])])]),e._v(" "),t("td",[t("code",[e._v(e._s(o))])])])}))],2),e._v(" "),t("p",[e._v("The "),t("code",[e._v("gov")]),e._v(" module is responsible for the on-chain governance system. In this system, holders of the native staking token of the chain may vote on proposals on a 1-token per 1-vote basis. The module supports:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Proposal submission")]),e._v(": Users can submit proposals with a deposit. Once the minimum deposit is reached, proposal enters voting period")]),e._v(" "),t("li",[t("strong",[e._v("Vote")]),e._v(": Participants can vote on proposals that reached MinDeposit")]),e._v(" "),t("li",[t("strong",[e._v("Inheritance and penalties")]),e._v(": Delegators inherit their validator's vote if they don't vote themselves.")]),e._v(" "),t("li",[t("strong",[e._v("Claiming deposit")]),e._v(": Users that deposited on proposals can recover their deposits if the proposal was accepted OR if the proposal never entered voting period.")])]),e._v(" "),t("h2",{attrs:{id:"governance-notes-on-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),t("h3",{attrs:{id:"depositparams"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#depositparams"}},[e._v("#")]),e._v(" "),t("code",[e._v("depositparams")])]),e._v(" "),t("h4",{attrs:{id:"min-deposit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#min-deposit"}},[e._v("#")]),e._v(" "),t("code",[e._v("min_deposit")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum deposit required for a proposal to enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(", in micro-ATOMs.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.depositparams.min_deposit))])]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/47",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 47"),t("OutboundLink")],1),e._v(" change: "),t("code",[e._v("64000000")]),e._v(" "),t("code",[e._v("uatom")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("512000000")]),e._v(" "),t("code",[e._v("uatom")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("512000000")]),e._v(" "),t("code",[e._v("uatom")])])]),e._v(" "),t("p",[e._v("Prior to a governance proposal entering the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" (ie. for the proposal to be voted upon), there must be at least a minimum number of ATOMs deposited. Anyone may contribute to this deposit. Deposits of passed and failed proposals are returned to the contributors. Deposits are burned when proposals 1) "),t("a",{attrs:{href:"#max_deposit_period"}},[e._v("expire")]),e._v(", 2) fail to reach "),t("a",{attrs:{href:"#quorum"}},[e._v("quorum")]),e._v(", or 3) are "),t("a",{attrs:{href:"#veto_threshold"}},[e._v("vetoed")]),e._v(". This parameter subkey value represents the minimum deposit required for a proposal to enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" in micro-ATOMs, where "),t("code",[e._v("512000000uatom")]),e._v(" is equivalent to 512 ATOM.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-mindeposit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-mindeposit"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("mindeposit")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("mindeposit")]),e._v(" subkey will enable governance proposals to enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" with fewer ATOMs at risk. This will likely increase the volume of new governance proposals.")]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-mindeposit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-mindeposit"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("mindeposit")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("mindeposit")]),e._v(" subkey will require risking a greater number of ATOMs before governance proposals may enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This will likely decrease the volume of new governance proposals.")]),e._v(" "),t("h4",{attrs:{id:"max-deposit-period"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#max-deposit-period"}},[e._v("#")]),e._v(" "),t("code",[e._v("max_deposit_period")])]),e._v(" "),t("p",[t("strong",[e._v("The maximum amount of time that a proposal can accept deposit contributions before expiring, in nanoseconds.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.depositparams.max_deposit_period))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("1209600000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("1209600000000000")])])]),e._v(" "),t("p",[e._v("Prior to a governance proposal entering the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(", there must be at least a minimum number of ATOMs deposited. This parameter subkey value represents the maximum amount of time that the proposal has to reach the minimum deposit amount before expiring. The maximum amount of time that a proposal can accept deposit contributions before expiring is currently "),t("code",[e._v("1209600000000000")]),e._v(" nanoseconds or 14 days. If the proposal expires, any deposit amounts will be burned.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-maxdepositperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-maxdepositperiod"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("maxdepositperiod")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("maxdepositperiod")]),e._v(" subkey will decrease the time for deposit contributions to governance proposals. This will likely decrease the time that some proposals remain visible and potentially decrease the likelihood that they will enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This may increase the likelihood that proposals will expire and have their deposits burned.")]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-maxdepositperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-maxdepositperiod"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("maxdepositperiod")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("maxdepositperiod")]),e._v(" subkey will extend the time for deposit contributions to governance proposals. This will likely increase the time that some proposals remain visible and potentially increase the likelihood that they will enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This may decrease the likelihood that proposals will expire and have their deposits burned.")]),e._v(" "),t("h5",{attrs:{id:"notes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("Currently most network explorers (eg. Hubble, Big Dipper, Mintscan) give the same visibility to proposals in the deposit period as those in the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This means that a proposal with a small deposit (eg. 0.001 ATOM) will have the same visibility as those with a full 512 ATOM deposit in the voting period.")]),e._v(" "),t("h3",{attrs:{id:"votingparams"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#votingparams"}},[e._v("#")]),e._v(" "),t("code",[e._v("votingparams")])]),e._v(" "),t("h4",{attrs:{id:"votingperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#votingperiod"}},[e._v("#")]),e._v(" "),t("code",[e._v("votingperiod")])]),e._v(" "),t("p",[t("strong",[e._v("The maximum amount of time that a proposal can accept votes before the voting period concludes, in nanoseconds.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.votingparams.voting_period))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("1209600000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("1209600000000000")])])]),e._v(" "),t("p",[e._v("Once a governance proposal enters the voting period, there is a maximum period of time that may elapse before the voting period concludes. This parameter subkey value represents the maximum amount of time that the proposal has to accept votes, which is currently "),t("code",[e._v("1209600000000000")]),e._v(" nanoseconds or 14 days. If the proposal vote does not reach quorum ((ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal's outcome will not be considered to be valid. Voters may change their vote any number of times before the voting period ends. This voting period is currently the same for any kind of governance proposal.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-votingperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-votingperiod"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("votingperiod")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("votingperiod")]),e._v(" subkey will decrease the time for voting on governance proposals. This will likely:")]),e._v(" "),t("ol",[t("li",[e._v("decrease the proportion of the network that participates in voting, and")]),e._v(" "),t("li",[e._v("decrease the likelihood that quorum will be reached.")])]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-votingperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-votingperiod"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("votingperiod")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("votingperiod")]),e._v(" subkey will increase the time for voting on governance proposals. This may:")]),e._v(" "),t("ol",[t("li",[e._v("increase the proportion of the network that participates in voting, and")]),e._v(" "),t("li",[e._v("increase the likelihood that quorum will be reached.")])]),e._v(" "),t("h5",{attrs:{id:"notes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-2"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("Historically, off-chain discussions and engagement appears to be have been greater occurred during the voting period of a governance proposal than when the proposal is posted off-chain as a draft. A non-trivial amount of the voting power has voted in the second week of the voting period. Proposals 23, 19, and 13 each had approximately 80% network participation or more.")]),e._v(" "),t("h3",{attrs:{id:"tallyparams"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tallyparams"}},[e._v("#")]),e._v(" "),t("code",[e._v("tallyparams")])]),e._v(" "),t("h4",{attrs:{id:"quorum"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#quorum"}},[e._v("#")]),e._v(" "),t("code",[e._v("quorum")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum proportion of network voting power required for a governance proposal's outcome to be considered valid.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.tallyparams.quorum))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.400000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.400000000000000000")])])]),e._v(" "),t("p",[e._v("Quorum is required for the outcome of a governance proposal vote to be considered valid and for deposit contributors to recover their deposit amounts, and this parameter subkey value represents the minimum value for quorum. Voting power, whether backing a vote of 'yes', 'abstain', 'no', or 'no-with-veto', counts toward quorum. If the proposal vote does not reach quorum (ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal outcome will not be considered to be valid.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-quorum"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-quorum"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("quorum")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("quorum")]),e._v(" subkey will enable a smaller proportion of the network to legitimize the outcome of a proposal. This increases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while decreasing the risk that a proposal will be considered invalid. This will likely decrease the risk of a proposal's deposit being burned.")]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-quorum"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-quorum"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("quorum")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("quorum")]),e._v(" subkey will require a larger proportion of the network to legitimize the outcome of a proposal. This decreases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while increasing the risk that a proposal will be considered invalid. This will likely increase the risk of a proposal's deposit being burned.")]),e._v(" "),t("h4",{attrs:{id:"threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold"}},[e._v("#")]),e._v(" "),t("code",[e._v("threshold")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum proportion of participating voting power required for a governance proposal to pass.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.tallyparams.threshold))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.500000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.500000000000000000")])])]),e._v(" "),t("p",[e._v("A simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass. Though necessary, a simple majority 'yes' vote may not be sufficient to pass a proposal in two scenarios:")]),e._v(" "),t("ol",[t("li",[e._v("Failure to reach "),t("a",{attrs:{href:"#quorum"}},[e._v("quorum")]),e._v(" of 40% network power or")]),e._v(" "),t("li",[e._v("A 'no-with-veto' vote of 33.4% of participating voting power or greater.")])]),e._v(" "),t("p",[e._v("If a governance proposal passes, deposit amounts are returned to contributors. If a text-based proposal passes, nothing is enacted automatically, but there is a social expectation that participants will co-ordinate to enact the commitments signalled in the proposal. If a parameter change proposal passes, the protocol parameter will automatically change immediately after the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" ends, and without the need to run new software. If a community-spend proposal passes, the Community Pool balance will decrease by the number of ATOMs indicated in the proposal and the recipient's address will increase by this same number of ATOMs immediately after the voting period ends.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-threshold"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("threshold")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("threshold")]),e._v(" subkey will decrease the proportion of voting power required to pass a proposal. This may:")]),e._v(" "),t("ol",[t("li",[e._v("increase the likelihood that a proposal will pass, and")]),e._v(" "),t("li",[e._v("increase the likelihood that a minority group will effect changes to the network.")])]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-threshold"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("threshold")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("threshold")]),e._v(" subkey will increase the proportion of voting power required to pass a proposal. This may:")]),e._v(" "),t("ol",[t("li",[e._v("decrease the likelihood that a proposal will pass, and")]),e._v(" "),t("li",[e._v("decrease the likelihood that a minority group will effect changes to the network.")])]),e._v(" "),t("h4",{attrs:{id:"veto-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#veto-threshold"}},[e._v("#")]),e._v(" "),t("code",[e._v("veto_threshold")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum proportion of participating voting power to veto (ie. fail) a governance proposal.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.tallyparams.veto_threshold))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.334000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.334000000000000000")])])]),e._v(" "),t("p",[e._v("Though a simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass, a 'no-with-veto' vote of 33.4% of participating voting power or greater can override this outcome and cause the proposal to fail. This enables a minority group representing greater than 1/3 of voting power to fail a proposal that would otherwise pass.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-veto-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-veto-threshold"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("veto_threshold")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("veto_threshold")]),e._v(" subkey will decrease the proportion of participating voting power required to veto. This will likely:")]),e._v(" "),t("ol",[t("li",[e._v("enable a smaller minority group to prevent proposals from passing, and")]),e._v(" "),t("li",[e._v("decrease the likelihood that contentious proposals will pass.")])]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-veto-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-veto-threshold"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("veto_threshold")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("veto_threshold")]),e._v(" subkey will increase the proportion of participating voting power required to veto. This will require a larger minority group to prevent proposals from passing, and will likely increase the likelihood that contentious proposals will pass.")])])}),[],!1,null,null,null);o.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{535:function(e,o,t){"use strict";t.r(o);var a=t(1),r=Object(a.a)({},(function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"gov-subspace"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#gov-subspace"}},[e._v("#")]),e._v(" "),t("code",[e._v("gov")]),e._v(" subspace")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("gov")]),e._v(" module is responsible for on-chain governance proposals and voting functionality.")]),e._v(" "),t("table",[t("tr",[t("th",[e._v("Key")]),e._v(" "),t("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.gov,(function(o,a){return t("tr",[t("td",[t("a",{attrs:{href:"#"+a}},[t("code",[e._v(e._s(a))])])]),e._v(" "),t("td",[t("code",[e._v(e._s(o))])])])}))],2),e._v(" "),t("p",[e._v("The "),t("code",[e._v("gov")]),e._v(" module is responsible for the on-chain governance system. In this system, holders of the native staking token of the chain may vote on proposals on a 1-token per 1-vote basis. The module supports:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Proposal submission")]),e._v(": Users can submit proposals with a deposit. Once the minimum deposit is reached, proposal enters voting period")]),e._v(" "),t("li",[t("strong",[e._v("Vote")]),e._v(": Participants can vote on proposals that reached MinDeposit")]),e._v(" "),t("li",[t("strong",[e._v("Inheritance and penalties")]),e._v(": Delegators inherit their validator's vote if they don't vote themselves.")]),e._v(" "),t("li",[t("strong",[e._v("Claiming deposit")]),e._v(": Users that deposited on proposals can recover their deposits if the proposal was accepted OR if the proposal never entered voting period.")])]),e._v(" "),t("h2",{attrs:{id:"governance-notes-on-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),t("h3",{attrs:{id:"depositparams"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#depositparams"}},[e._v("#")]),e._v(" "),t("code",[e._v("depositparams")])]),e._v(" "),t("h4",{attrs:{id:"min-deposit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#min-deposit"}},[e._v("#")]),e._v(" "),t("code",[e._v("min_deposit")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum deposit required for a proposal to enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(", in micro-ATOMs.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.depositparams.min_deposit))])]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/47",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 47"),t("OutboundLink")],1),e._v(" change: "),t("code",[e._v("64000000")]),e._v(" "),t("code",[e._v("uatom")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("512000000")]),e._v(" "),t("code",[e._v("uatom")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("512000000")]),e._v(" "),t("code",[e._v("uatom")])])]),e._v(" "),t("p",[e._v("Prior to a governance proposal entering the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" (ie. for the proposal to be voted upon), there must be at least a minimum number of ATOMs deposited. Anyone may contribute to this deposit. Deposits of passed and failed proposals are returned to the contributors. Deposits are burned when proposals 1) "),t("a",{attrs:{href:"#max_deposit_period"}},[e._v("expire")]),e._v(", 2) fail to reach "),t("a",{attrs:{href:"#quorum"}},[e._v("quorum")]),e._v(", or 3) are "),t("a",{attrs:{href:"#veto_threshold"}},[e._v("vetoed")]),e._v(". This parameter subkey value represents the minimum deposit required for a proposal to enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" in micro-ATOMs, where "),t("code",[e._v("512000000uatom")]),e._v(" is equivalent to 512 ATOM.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-mindeposit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-mindeposit"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("mindeposit")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("mindeposit")]),e._v(" subkey will enable governance proposals to enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" with fewer ATOMs at risk. This will likely increase the volume of new governance proposals.")]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-mindeposit"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-mindeposit"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("mindeposit")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("mindeposit")]),e._v(" subkey will require risking a greater number of ATOMs before governance proposals may enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This will likely decrease the volume of new governance proposals.")]),e._v(" "),t("h4",{attrs:{id:"max-deposit-period"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#max-deposit-period"}},[e._v("#")]),e._v(" "),t("code",[e._v("max_deposit_period")])]),e._v(" "),t("p",[t("strong",[e._v("The maximum amount of time that a proposal can accept deposit contributions before expiring, in nanoseconds.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.depositparams.max_deposit_period))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("1209600000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("1209600000000000")])])]),e._v(" "),t("p",[e._v("Prior to a governance proposal entering the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(", there must be at least a minimum number of ATOMs deposited. This parameter subkey value represents the maximum amount of time that the proposal has to reach the minimum deposit amount before expiring. The maximum amount of time that a proposal can accept deposit contributions before expiring is currently "),t("code",[e._v("1209600000000000")]),e._v(" nanoseconds or 14 days. If the proposal expires, any deposit amounts will be burned.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-maxdepositperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-maxdepositperiod"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("maxdepositperiod")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("maxdepositperiod")]),e._v(" subkey will decrease the time for deposit contributions to governance proposals. This will likely decrease the time that some proposals remain visible and potentially decrease the likelihood that they will enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This may increase the likelihood that proposals will expire and have their deposits burned.")]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-maxdepositperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-maxdepositperiod"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("maxdepositperiod")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("maxdepositperiod")]),e._v(" subkey will extend the time for deposit contributions to governance proposals. This will likely increase the time that some proposals remain visible and potentially increase the likelihood that they will enter the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This may decrease the likelihood that proposals will expire and have their deposits burned.")]),e._v(" "),t("h5",{attrs:{id:"notes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("Currently most network explorers (eg. Hubble, Big Dipper, Mintscan) give the same visibility to proposals in the deposit period as those in the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(". This means that a proposal with a small deposit (eg. 0.001 ATOM) will have the same visibility as those with a full 512 ATOM deposit in the voting period.")]),e._v(" "),t("h3",{attrs:{id:"votingparams"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#votingparams"}},[e._v("#")]),e._v(" "),t("code",[e._v("votingparams")])]),e._v(" "),t("h4",{attrs:{id:"votingperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#votingperiod"}},[e._v("#")]),e._v(" "),t("code",[e._v("votingperiod")])]),e._v(" "),t("p",[t("strong",[e._v("The maximum amount of time that a proposal can accept votes before the voting period concludes, in nanoseconds.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.votingparams.voting_period))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("1209600000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("1209600000000000")])])]),e._v(" "),t("p",[e._v("Once a governance proposal enters the voting period, there is a maximum period of time that may elapse before the voting period concludes. This parameter subkey value represents the maximum amount of time that the proposal has to accept votes, which is currently "),t("code",[e._v("1209600000000000")]),e._v(" nanoseconds or 14 days. If the proposal vote does not reach quorum ((ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal's outcome will not be considered to be valid. Voters may change their vote any number of times before the voting period ends. This voting period is currently the same for any kind of governance proposal.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-votingperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-votingperiod"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("votingperiod")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("votingperiod")]),e._v(" subkey will decrease the time for voting on governance proposals. This will likely:")]),e._v(" "),t("ol",[t("li",[e._v("decrease the proportion of the network that participates in voting, and")]),e._v(" "),t("li",[e._v("decrease the likelihood that quorum will be reached.")])]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-votingperiod"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-votingperiod"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("votingperiod")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("votingperiod")]),e._v(" subkey will increase the time for voting on governance proposals. This may:")]),e._v(" "),t("ol",[t("li",[e._v("increase the proportion of the network that participates in voting, and")]),e._v(" "),t("li",[e._v("increase the likelihood that quorum will be reached.")])]),e._v(" "),t("h5",{attrs:{id:"notes-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#notes-2"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),t("p",[e._v("Historically, off-chain discussions and engagement appears to be have been greater occurred during the voting period of a governance proposal than when the proposal is posted off-chain as a draft. A non-trivial amount of the voting power has voted in the second week of the voting period. Proposals 23, 19, and 13 each had approximately 80% network participation or more.")]),e._v(" "),t("h3",{attrs:{id:"tallyparams"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tallyparams"}},[e._v("#")]),e._v(" "),t("code",[e._v("tallyparams")])]),e._v(" "),t("h4",{attrs:{id:"quorum"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#quorum"}},[e._v("#")]),e._v(" "),t("code",[e._v("quorum")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum proportion of network voting power required for a governance proposal's outcome to be considered valid.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.tallyparams.quorum))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.400000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.400000000000000000")])])]),e._v(" "),t("p",[e._v("Quorum is required for the outcome of a governance proposal vote to be considered valid and for deposit contributors to recover their deposit amounts, and this parameter subkey value represents the minimum value for quorum. Voting power, whether backing a vote of 'yes', 'abstain', 'no', or 'no-with-veto', counts toward quorum. If the proposal vote does not reach quorum (ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal outcome will not be considered to be valid.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-quorum"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-quorum"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("quorum")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("quorum")]),e._v(" subkey will enable a smaller proportion of the network to legitimize the outcome of a proposal. This increases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while decreasing the risk that a proposal will be considered invalid. This will likely decrease the risk of a proposal's deposit being burned.")]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-quorum"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-quorum"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("quorum")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("quorum")]),e._v(" subkey will require a larger proportion of the network to legitimize the outcome of a proposal. This decreases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while increasing the risk that a proposal will be considered invalid. This will likely increase the risk of a proposal's deposit being burned.")]),e._v(" "),t("h4",{attrs:{id:"threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#threshold"}},[e._v("#")]),e._v(" "),t("code",[e._v("threshold")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum proportion of participating voting power required for a governance proposal to pass.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.tallyparams.threshold))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.500000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.500000000000000000")])])]),e._v(" "),t("p",[e._v("A simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass. Though necessary, a simple majority 'yes' vote may not be sufficient to pass a proposal in two scenarios:")]),e._v(" "),t("ol",[t("li",[e._v("Failure to reach "),t("a",{attrs:{href:"#quorum"}},[e._v("quorum")]),e._v(" of 40% network power or")]),e._v(" "),t("li",[e._v("A 'no-with-veto' vote of 33.4% of participating voting power or greater.")])]),e._v(" "),t("p",[e._v("If a governance proposal passes, deposit amounts are returned to contributors. If a text-based proposal passes, nothing is enacted automatically, but there is a social expectation that participants will co-ordinate to enact the commitments signalled in the proposal. If a parameter change proposal passes, the protocol parameter will automatically change immediately after the "),t("a",{attrs:{href:"#votingperiod"}},[e._v("voting period")]),e._v(" ends, and without the need to run new software. If a community-spend proposal passes, the Community Pool balance will decrease by the number of ATOMs indicated in the proposal and the recipient's address will increase by this same number of ATOMs immediately after the voting period ends.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-threshold"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("threshold")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("threshold")]),e._v(" subkey will decrease the proportion of voting power required to pass a proposal. This may:")]),e._v(" "),t("ol",[t("li",[e._v("increase the likelihood that a proposal will pass, and")]),e._v(" "),t("li",[e._v("increase the likelihood that a minority group will effect changes to the network.")])]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-threshold"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("threshold")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("threshold")]),e._v(" subkey will increase the proportion of voting power required to pass a proposal. This may:")]),e._v(" "),t("ol",[t("li",[e._v("decrease the likelihood that a proposal will pass, and")]),e._v(" "),t("li",[e._v("decrease the likelihood that a minority group will effect changes to the network.")])]),e._v(" "),t("h4",{attrs:{id:"veto-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#veto-threshold"}},[e._v("#")]),e._v(" "),t("code",[e._v("veto_threshold")])]),e._v(" "),t("p",[t("strong",[e._v("The minimum proportion of participating voting power to veto (ie. fail) a governance proposal.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.gov.tallyparams.veto_threshold))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.334000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.334000000000000000")])])]),e._v(" "),t("p",[e._v("Though a simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass, a 'no-with-veto' vote of 33.4% of participating voting power or greater can override this outcome and cause the proposal to fail. This enables a minority group representing greater than 1/3 of voting power to fail a proposal that would otherwise pass.")]),e._v(" "),t("h5",{attrs:{id:"decreasing-the-value-of-veto-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-veto-threshold"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("veto_threshold")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("veto_threshold")]),e._v(" subkey will decrease the proportion of participating voting power required to veto. This will likely:")]),e._v(" "),t("ol",[t("li",[e._v("enable a smaller minority group to prevent proposals from passing, and")]),e._v(" "),t("li",[e._v("decrease the likelihood that contentious proposals will pass.")])]),e._v(" "),t("h5",{attrs:{id:"increasing-the-value-of-veto-threshold"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-veto-threshold"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("veto_threshold")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("veto_threshold")]),e._v(" subkey will increase the proportion of participating voting power required to veto. This will require a larger minority group to prevent proposals from passing, and will likely increase the likelihood that contentious proposals will pass.")])])}),[],!1,null,null,null);o.default=r.exports}}]); \ No newline at end of file diff --git a/main/assets/js/92.73035530.js b/main/assets/js/92.2aa93b58.js similarity index 99% rename from main/assets/js/92.73035530.js rename to main/assets/js/92.2aa93b58.js index bf362654aa7..7ab52476251 100644 --- a/main/assets/js/92.73035530.js +++ b/main/assets/js/92.2aa93b58.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{533:function(e,t,a){"use strict";a.r(t);var n=a(1),o=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"mint-subspace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mint-subspace"}},[e._v("#")]),e._v(" "),a("code",[e._v("mint")]),e._v(" subspace")]),e._v(" "),a("p",[e._v("The "),a("code",[e._v("mint")]),e._v(" module is responsible for enabling the Cosmos Hub to have a flexible inflation rate that depends upon a bonded stake ratio target. It has the following parameters")]),e._v(" "),a("table",[a("tr",[a("th",[e._v("Key")]),e._v(" "),a("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.mint,(function(t,n){return a("tr",[a("td",[a("a",{attrs:{href:"#"+n}},[a("code",[e._v(e._s(n))])])]),e._v(" "),a("td",[a("code",[e._v(e._s(t))])])])}))],2),e._v(" "),a("p",[e._v("The "),a("code",[e._v("mint")]),e._v(" module was designed to allow for a flexible inflation rate determined by market demand targeting a particular bonded-stake ratio, and effect a balance between market liquidity and staked supply.")]),e._v(" "),a("p",[e._v("In order to best determine the appropriate market rate for inflation rewards, a moving change rate is used. The moving change rate mechanism ensures that if the % bonded is either over or under the goal %-bonded, the inflation rate will adjust to further incentivize or disincentivize being bonded, respectively. Setting the goal %-bonded at less than 100% encourages the network to maintain some non-staked tokens in order to help provide some liquidity.")]),e._v(" "),a("p",[e._v("It can be broken down in the following way:")]),e._v(" "),a("ul",[a("li",[e._v("If the inflation rate is below the goal %-bonded the inflation rate will increase until a maximum value is reached")]),e._v(" "),a("li",[e._v("If the goal % bonded (67% in Cosmos-Hub) is maintained, then the inflation rate will stay constant")]),e._v(" "),a("li",[e._v("If the inflation rate is above the goal %-bonded the inflation rate will decrease until a minimum value is reached")])]),e._v(" "),a("h2",{attrs:{id:"governance-notes-on-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),a("h3",{attrs:{id:"mintdenom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mintdenom"}},[e._v("#")]),e._v(" "),a("code",[e._v("MintDenom")])]),e._v(" "),a("p",[a("strong",[e._v("Type of asset/coin that the Cosmos Hub mints.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.MintDenom))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("uatom")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("uatom")])])]),e._v(" "),a("p",[e._v("This is the type of asset (aka coin) that is being minted. The Cosmos Hub produces "),a("code",[e._v("uatom")]),e._v(", or micro-ATOM, where 1,000,000 uatom is equivalent to 1 ATOM.")]),e._v(" "),a("h4",{attrs:{id:"changing-the-mintdenom-parameter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changing-the-mintdenom-parameter"}},[e._v("#")]),e._v(" Changing the "),a("code",[e._v("MintDenom")]),e._v(" parameter")]),e._v(" "),a("p",[e._v("Changing the "),a("code",[e._v("MintDenom")]),e._v(" will change the asset that the Cosmos Hub mints from the ATOM. This is likely to disrupt the functionality of applications and the expectations of staking participants.")]),e._v(" "),a("h3",{attrs:{id:"inflationratechange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inflationratechange"}},[e._v("#")]),e._v(" "),a("code",[e._v("InflationRateChange")])]),e._v(" "),a("p",[a("strong",[e._v("A factor of and limit to the speed at which the Cosmos Hub's inflation rate changes.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationRateChange))])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/48",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 48"),a("OutboundLink")],1),e._v(" change to "),a("code",[e._v("1.000000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.130000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.130000000000000000")])])]),e._v(" "),a("p",[e._v("Cosmos Hub's inflation rate can change faster or slower, depending on staking participation, and is limited to a minimum of 7% and maximum of 20%. The inflation rate cannot increase or decrease faster than 13% per year ("),a("code",[e._v("InflationRateChange")]),e._v("). The speed that the inflation rate changes depends upon two things:")]),e._v(" "),a("ol",[a("li",[e._v("how far away the "),a("em",[e._v("current staking participation ratio")]),e._v(" is from "),a("a",{attrs:{href:"#goalbonded"}},[a("code",[e._v("GoalBonded")])]),e._v(" (67%)")]),e._v(" "),a("li",[e._v("the value of "),a("code",[e._v("InflationRateChange")]),e._v(", which is "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationRateChange))])])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"aW5mbGF0aW9uUmF0ZUNoYW5nZVBlclllYXIgPSAoMSAtIGJvbmRlZFJhdGlvL3BhcmFtcy5Hb2FsQm9uZGVkKSAqIHBhcmFtcy5JbmZsYXRpb25SYXRlQ2hhbmdlCg=="}}),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/tree/main/x/mint#begin-block",target:"_blank",rel:"noopener noreferrer"}},[e._v("The source for this information can be found here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("The inflation rate increases when under 67% of the token supply is staking, and it will take less time to reach the maximum of rate of 20% inflation if (for example) 30% of the token supply is staking than if 50% is staking.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-inflationratechange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-inflationratechange"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("InflationRateChange")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("InflationRateChange")]),e._v(" parameter will decrease both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take longer for inflation to reach "),a("a",{attrs:{href:"#inflationmin"}},[a("code",[e._v("InflationMin")])]),e._v(" or "),a("a",{attrs:{href:"#inflationmax"}},[a("code",[e._v("InflationMax")])]),e._v(". This may lessen the response of staking behaviour to the incentive mechanism "),a("a",{attrs:{href:"#notes"}},[e._v("described in the notes below")]),e._v(".")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-inflationratechange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-inflationratechange"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("InflationRateChange")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("InflationRateChange")]),e._v(" parameter will increase both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take less time for inflation to reach "),a("a",{attrs:{href:"#inflationmin"}},[a("code",[e._v("InflationMin")])]),e._v(" or "),a("a",{attrs:{href:"#inflationmax"}},[a("code",[e._v("InflationMax")])]),e._v(". This may quicken the response of staking behaviour to the incentive mechanism "),a("a",{attrs:{href:"#notes"}},[e._v("described in the notes below")]),e._v(".")]),e._v(" "),a("h4",{attrs:{id:"notes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[a("strong",[e._v("Example:")]),e._v(' if the current staking participation ratio (aka "bond ratio") is 73%, then this is the calculation for speed that the inflation rate will change:')]),e._v(" "),a("p",[e._v("(1 - 73%/67%) * 13% = -1.16% per year")]),e._v(" "),a("p",[e._v("This means that if the staking participation rate stays the same, the inflation rate will decrease by 1.16% over the course of one year, during which time the Hub's inflation rate will decrease by about 0.1% per month.")]),e._v(" "),a("p",[e._v("If "),a("code",[e._v("InflationRateChange")]),e._v(' is 26% and the current staking participation ratio (aka "bond ratio") is 73%, then the inflation will decrease by 2.33% over the course of one year, during which time inflation will decrease by about 0.19% per month.')]),e._v(" "),a("p",[e._v("The Cosmos Hub's inflation rate is tied to its staking participation ratio in order to make staking more or less desirable, since most of the Hub's inflation is used to fund staking rewards. If the speed of inflation responds more strongly to staking participation, it could be that staking behaviour will also respond more strongly.")]),e._v(" "),a("h3",{attrs:{id:"inflationmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inflationmax"}},[e._v("#")]),e._v(" "),a("code",[e._v("InflationMax")])]),e._v(" "),a("p",[a("strong",[e._v("The maximum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationMax))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.200000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.200000000000000000")])])]),e._v(" "),a("p",[e._v("The maximum rate that the Cosmos Hub can be set to mint new ATOMs is determined by "),a("code",[e._v("InflationMax")]),e._v(", which is 20% ("),a("code",[e._v("0.200000000000000000")]),e._v(") of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see "),a("a",{attrs:{href:"#blocksperyear"}},[a("code",[e._v("BlocksPerYear")])]),e._v("). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains below "),a("a",{attrs:{href:"#goalbonded"}},[a("code",[e._v("GoalBonded")])]),e._v("(67%) for long enough, its inflation setting will eventually reach this maximum.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-inflationmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-inflationmax"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("InflationMax")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("InflationMax")]),e._v(" parameter will lower the maximum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-inflationmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-inflationmax"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("InflationMax")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("InflationMax")]),e._v(" parameter will raise the maximum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"notes-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-2"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[e._v("The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.")]),e._v(" "),a("h3",{attrs:{id:"inflationmin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inflationmin"}},[e._v("#")]),e._v(" "),a("code",[e._v("InflationMin")])]),e._v(" "),a("p",[a("strong",[e._v("The minimum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationMin))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.070000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.070000000000000000")])])]),e._v(" "),a("p",[e._v("The minimum rate that the Cosmos Hub can be set to mint new ATOMs is determined by "),a("code",[e._v("InflationMin")]),e._v(", which is 7% ("),a("code",[e._v("0.070000000000000000")]),e._v(") of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see "),a("a",{attrs:{href:"#blocksperyear"}},[a("code",[e._v("BlocksPerYear")])]),e._v("). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains above "),a("a",{attrs:{href:"#goalbonded"}},[a("code",[e._v("GoalBonded")])]),e._v("(67%) for long enough, its inflation setting will eventually reach this minimum.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-inflationmin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-inflationmin"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("InflationMin")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("InflationMin")]),e._v(" parameter will lower the minimum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-inflationmin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-inflationmin"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("InflationMin")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("InflationMin")]),e._v(" parameter will raise the minimum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"notes-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-3"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[e._v("The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.")]),e._v(" "),a("h3",{attrs:{id:"goalbonded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#goalbonded"}},[e._v("#")]),e._v(" "),a("code",[e._v("GoalBonded")])]),e._v(" "),a("p",[a("strong",[e._v("The target proportion of staking participation, relative to the ATOM supply.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.GoalBonded))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.670000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.670000000000000000")])])]),e._v(" "),a("p",[a("code",[e._v("GoalBonded")]),e._v(" is the target proportion of staking participation, relative to the ATOM supply. Currently the goal of the system's design is to have 67% ("),a("code",[e._v("0.670000000000000000")]),e._v(") of the total ATOM supply bonded and participating in staking. When over 67% of the supply is staked, the inflation set rate begins decreasing at a maximum yearly rate of "),a("a",{attrs:{href:"#inflationratechange"}},[a("code",[e._v("InflationRateChange")])]),e._v(" until it reaches and remains at the "),a("a",{attrs:{href:"#inflationmin"}},[a("code",[e._v("InflationMin")])]),e._v(" of 7%. When under 67% of the supply is staked, the inflation set rate begins increasing at a maximum yearly rate of "),a("a",{attrs:{href:"#inflationratechange"}},[a("code",[e._v("InflationRateChange")])]),e._v(" until it reaches and remains at the "),a("a",{attrs:{href:"#inflationmax"}},[a("code",[e._v("InflationMax")])]),e._v(" of 20%.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-goalbonded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-goalbonded"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("GoalBonded")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("GoalBonded")]),e._v(" parameter will cause the Cosmos Hub's inflation setting to begin decreasing at a lower participation rate, and this may reduce the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-goalbonded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-goalbonded"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("GoalBonded")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("GoalBonded")]),e._v(" parameter will cause the Cosmos Hub's inflation setting to begin increasing at a lower participation rate, and this may increase the incentive for staking participation.")]),e._v(" "),a("h3",{attrs:{id:"blocksperyear"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#blocksperyear"}},[e._v("#")]),e._v(" "),a("code",[e._v("BlocksPerYear")])]),e._v(" "),a("p",[a("strong",[e._v("The system's assumed number of blocks that the Cosmos Hub will produce in one year.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.BlocksPerYear))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("4360000")])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/30",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 30"),a("OutboundLink")],1),e._v(" change to "),a("code",[e._v("4360000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("4855015")])])]),e._v(" "),a("p",[a("code",[e._v("BlocksPerYear")]),e._v(" is the setting for the system's assumed number of blocks that the Cosmos Hub will produce in one year. "),a("code",[e._v("BlocksPerYear")]),e._v(" is currently "),a("code",[e._v("{{ $themeConfig.currentParameters.mint.BlocksPerYear }")]),e._v(" and the network's inflationary behaviour will be aligned with its settings when the average block time is 7.24 seconds (see "),a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/30",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 30"),a("OutboundLink")],1),e._v(") seconds over one year. "),a("code",[e._v("BlocksPerYear")]),e._v(" is most notably used in by the system to determine the rate that new ATOMs are minted, which can vary if block times vary from 6.50 seconds per block, since effectively a different number of blocks will be produced in one year and ATOMs are minted each block.")]),e._v(" "),a("h4",{attrs:{id:"changing-the-blocksperyear-parameter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changing-the-blocksperyear-parameter"}},[e._v("#")]),e._v(" Changing the "),a("code",[e._v("BlocksPerYear")]),e._v(" parameter")]),e._v(" "),a("p",[e._v("Changing the "),a("code",[e._v("BlocksPerYear")]),e._v(" parameter will change the assumption that system makes about how many Cosmos Hub blocks will be produced per year. If block times are greater than 6.50 seconds, then this parameter should be decreased to make the Cosmos Hub's inflationary behaviour more aligned with its settings. If block times are less than 6.50 seconds, then this parameter should be increased to make the Cosmos Hub's behaviour more aligned with its settings.")]),e._v(" "),a("h4",{attrs:{id:"notes-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-4"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[e._v("The calculation for seconds in one year:")]),e._v(" "),a("p",[e._v("365.24 (days) * 24 (hours) * 60 (minutes) * 60 (seconds) = 31556736 seconds")]),e._v(" "),a("p",[a("strong",[e._v("Example:")]),e._v(" If block times are 7.12 seconds per block and 31556736 seconds per year:")]),e._v(" "),a("p",[e._v("31556736 / 7.12 = ~4432126 blocks per year")])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{532:function(e,t,a){"use strict";a.r(t);var n=a(1),o=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"mint-subspace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mint-subspace"}},[e._v("#")]),e._v(" "),a("code",[e._v("mint")]),e._v(" subspace")]),e._v(" "),a("p",[e._v("The "),a("code",[e._v("mint")]),e._v(" module is responsible for enabling the Cosmos Hub to have a flexible inflation rate that depends upon a bonded stake ratio target. It has the following parameters")]),e._v(" "),a("table",[a("tr",[a("th",[e._v("Key")]),e._v(" "),a("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.mint,(function(t,n){return a("tr",[a("td",[a("a",{attrs:{href:"#"+n}},[a("code",[e._v(e._s(n))])])]),e._v(" "),a("td",[a("code",[e._v(e._s(t))])])])}))],2),e._v(" "),a("p",[e._v("The "),a("code",[e._v("mint")]),e._v(" module was designed to allow for a flexible inflation rate determined by market demand targeting a particular bonded-stake ratio, and effect a balance between market liquidity and staked supply.")]),e._v(" "),a("p",[e._v("In order to best determine the appropriate market rate for inflation rewards, a moving change rate is used. The moving change rate mechanism ensures that if the % bonded is either over or under the goal %-bonded, the inflation rate will adjust to further incentivize or disincentivize being bonded, respectively. Setting the goal %-bonded at less than 100% encourages the network to maintain some non-staked tokens in order to help provide some liquidity.")]),e._v(" "),a("p",[e._v("It can be broken down in the following way:")]),e._v(" "),a("ul",[a("li",[e._v("If the inflation rate is below the goal %-bonded the inflation rate will increase until a maximum value is reached")]),e._v(" "),a("li",[e._v("If the goal % bonded (67% in Cosmos-Hub) is maintained, then the inflation rate will stay constant")]),e._v(" "),a("li",[e._v("If the inflation rate is above the goal %-bonded the inflation rate will decrease until a minimum value is reached")])]),e._v(" "),a("h2",{attrs:{id:"governance-notes-on-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),a("h3",{attrs:{id:"mintdenom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mintdenom"}},[e._v("#")]),e._v(" "),a("code",[e._v("MintDenom")])]),e._v(" "),a("p",[a("strong",[e._v("Type of asset/coin that the Cosmos Hub mints.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.MintDenom))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("uatom")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("uatom")])])]),e._v(" "),a("p",[e._v("This is the type of asset (aka coin) that is being minted. The Cosmos Hub produces "),a("code",[e._v("uatom")]),e._v(", or micro-ATOM, where 1,000,000 uatom is equivalent to 1 ATOM.")]),e._v(" "),a("h4",{attrs:{id:"changing-the-mintdenom-parameter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changing-the-mintdenom-parameter"}},[e._v("#")]),e._v(" Changing the "),a("code",[e._v("MintDenom")]),e._v(" parameter")]),e._v(" "),a("p",[e._v("Changing the "),a("code",[e._v("MintDenom")]),e._v(" will change the asset that the Cosmos Hub mints from the ATOM. This is likely to disrupt the functionality of applications and the expectations of staking participants.")]),e._v(" "),a("h3",{attrs:{id:"inflationratechange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inflationratechange"}},[e._v("#")]),e._v(" "),a("code",[e._v("InflationRateChange")])]),e._v(" "),a("p",[a("strong",[e._v("A factor of and limit to the speed at which the Cosmos Hub's inflation rate changes.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationRateChange))])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/48",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 48"),a("OutboundLink")],1),e._v(" change to "),a("code",[e._v("1.000000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.130000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.130000000000000000")])])]),e._v(" "),a("p",[e._v("Cosmos Hub's inflation rate can change faster or slower, depending on staking participation, and is limited to a minimum of 7% and maximum of 20%. The inflation rate cannot increase or decrease faster than 13% per year ("),a("code",[e._v("InflationRateChange")]),e._v("). The speed that the inflation rate changes depends upon two things:")]),e._v(" "),a("ol",[a("li",[e._v("how far away the "),a("em",[e._v("current staking participation ratio")]),e._v(" is from "),a("a",{attrs:{href:"#goalbonded"}},[a("code",[e._v("GoalBonded")])]),e._v(" (67%)")]),e._v(" "),a("li",[e._v("the value of "),a("code",[e._v("InflationRateChange")]),e._v(", which is "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationRateChange))])])]),e._v(" "),a("tm-code-block",{staticClass:"codeblock",attrs:{language:"",base64:"aW5mbGF0aW9uUmF0ZUNoYW5nZVBlclllYXIgPSAoMSAtIGJvbmRlZFJhdGlvL3BhcmFtcy5Hb2FsQm9uZGVkKSAqIHBhcmFtcy5JbmZsYXRpb25SYXRlQ2hhbmdlCg=="}}),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/tree/main/x/mint#begin-block",target:"_blank",rel:"noopener noreferrer"}},[e._v("The source for this information can be found here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("The inflation rate increases when under 67% of the token supply is staking, and it will take less time to reach the maximum of rate of 20% inflation if (for example) 30% of the token supply is staking than if 50% is staking.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-inflationratechange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-inflationratechange"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("InflationRateChange")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("InflationRateChange")]),e._v(" parameter will decrease both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take longer for inflation to reach "),a("a",{attrs:{href:"#inflationmin"}},[a("code",[e._v("InflationMin")])]),e._v(" or "),a("a",{attrs:{href:"#inflationmax"}},[a("code",[e._v("InflationMax")])]),e._v(". This may lessen the response of staking behaviour to the incentive mechanism "),a("a",{attrs:{href:"#notes"}},[e._v("described in the notes below")]),e._v(".")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-inflationratechange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-inflationratechange"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("InflationRateChange")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("InflationRateChange")]),e._v(" parameter will increase both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take less time for inflation to reach "),a("a",{attrs:{href:"#inflationmin"}},[a("code",[e._v("InflationMin")])]),e._v(" or "),a("a",{attrs:{href:"#inflationmax"}},[a("code",[e._v("InflationMax")])]),e._v(". This may quicken the response of staking behaviour to the incentive mechanism "),a("a",{attrs:{href:"#notes"}},[e._v("described in the notes below")]),e._v(".")]),e._v(" "),a("h4",{attrs:{id:"notes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[a("strong",[e._v("Example:")]),e._v(' if the current staking participation ratio (aka "bond ratio") is 73%, then this is the calculation for speed that the inflation rate will change:')]),e._v(" "),a("p",[e._v("(1 - 73%/67%) * 13% = -1.16% per year")]),e._v(" "),a("p",[e._v("This means that if the staking participation rate stays the same, the inflation rate will decrease by 1.16% over the course of one year, during which time the Hub's inflation rate will decrease by about 0.1% per month.")]),e._v(" "),a("p",[e._v("If "),a("code",[e._v("InflationRateChange")]),e._v(' is 26% and the current staking participation ratio (aka "bond ratio") is 73%, then the inflation will decrease by 2.33% over the course of one year, during which time inflation will decrease by about 0.19% per month.')]),e._v(" "),a("p",[e._v("The Cosmos Hub's inflation rate is tied to its staking participation ratio in order to make staking more or less desirable, since most of the Hub's inflation is used to fund staking rewards. If the speed of inflation responds more strongly to staking participation, it could be that staking behaviour will also respond more strongly.")]),e._v(" "),a("h3",{attrs:{id:"inflationmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inflationmax"}},[e._v("#")]),e._v(" "),a("code",[e._v("InflationMax")])]),e._v(" "),a("p",[a("strong",[e._v("The maximum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationMax))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.200000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.200000000000000000")])])]),e._v(" "),a("p",[e._v("The maximum rate that the Cosmos Hub can be set to mint new ATOMs is determined by "),a("code",[e._v("InflationMax")]),e._v(", which is 20% ("),a("code",[e._v("0.200000000000000000")]),e._v(") of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see "),a("a",{attrs:{href:"#blocksperyear"}},[a("code",[e._v("BlocksPerYear")])]),e._v("). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains below "),a("a",{attrs:{href:"#goalbonded"}},[a("code",[e._v("GoalBonded")])]),e._v("(67%) for long enough, its inflation setting will eventually reach this maximum.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-inflationmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-inflationmax"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("InflationMax")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("InflationMax")]),e._v(" parameter will lower the maximum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-inflationmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-inflationmax"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("InflationMax")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("InflationMax")]),e._v(" parameter will raise the maximum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"notes-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-2"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[e._v("The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.")]),e._v(" "),a("h3",{attrs:{id:"inflationmin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inflationmin"}},[e._v("#")]),e._v(" "),a("code",[e._v("InflationMin")])]),e._v(" "),a("p",[a("strong",[e._v("The minimum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.InflationMin))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.070000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.070000000000000000")])])]),e._v(" "),a("p",[e._v("The minimum rate that the Cosmos Hub can be set to mint new ATOMs is determined by "),a("code",[e._v("InflationMin")]),e._v(", which is 7% ("),a("code",[e._v("0.070000000000000000")]),e._v(") of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see "),a("a",{attrs:{href:"#blocksperyear"}},[a("code",[e._v("BlocksPerYear")])]),e._v("). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains above "),a("a",{attrs:{href:"#goalbonded"}},[a("code",[e._v("GoalBonded")])]),e._v("(67%) for long enough, its inflation setting will eventually reach this minimum.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-inflationmin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-inflationmin"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("InflationMin")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("InflationMin")]),e._v(" parameter will lower the minimum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-inflationmin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-inflationmin"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("InflationMin")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("InflationMin")]),e._v(" parameter will raise the minimum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"notes-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-3"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[e._v("The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.")]),e._v(" "),a("h3",{attrs:{id:"goalbonded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#goalbonded"}},[e._v("#")]),e._v(" "),a("code",[e._v("GoalBonded")])]),e._v(" "),a("p",[a("strong",[e._v("The target proportion of staking participation, relative to the ATOM supply.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.GoalBonded))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("0.670000000000000000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("0.670000000000000000")])])]),e._v(" "),a("p",[a("code",[e._v("GoalBonded")]),e._v(" is the target proportion of staking participation, relative to the ATOM supply. Currently the goal of the system's design is to have 67% ("),a("code",[e._v("0.670000000000000000")]),e._v(") of the total ATOM supply bonded and participating in staking. When over 67% of the supply is staked, the inflation set rate begins decreasing at a maximum yearly rate of "),a("a",{attrs:{href:"#inflationratechange"}},[a("code",[e._v("InflationRateChange")])]),e._v(" until it reaches and remains at the "),a("a",{attrs:{href:"#inflationmin"}},[a("code",[e._v("InflationMin")])]),e._v(" of 7%. When under 67% of the supply is staked, the inflation set rate begins increasing at a maximum yearly rate of "),a("a",{attrs:{href:"#inflationratechange"}},[a("code",[e._v("InflationRateChange")])]),e._v(" until it reaches and remains at the "),a("a",{attrs:{href:"#inflationmax"}},[a("code",[e._v("InflationMax")])]),e._v(" of 20%.")]),e._v(" "),a("h4",{attrs:{id:"decreasing-the-value-of-goalbonded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-goalbonded"}},[e._v("#")]),e._v(" Decreasing the value of "),a("code",[e._v("GoalBonded")])]),e._v(" "),a("p",[e._v("Decreasing the value of the "),a("code",[e._v("GoalBonded")]),e._v(" parameter will cause the Cosmos Hub's inflation setting to begin decreasing at a lower participation rate, and this may reduce the incentive for staking participation.")]),e._v(" "),a("h4",{attrs:{id:"increasing-the-value-of-goalbonded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-goalbonded"}},[e._v("#")]),e._v(" Increasing the value of "),a("code",[e._v("GoalBonded")])]),e._v(" "),a("p",[e._v("Increasing the value of the "),a("code",[e._v("GoalBonded")]),e._v(" parameter will cause the Cosmos Hub's inflation setting to begin increasing at a lower participation rate, and this may increase the incentive for staking participation.")]),e._v(" "),a("h3",{attrs:{id:"blocksperyear"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#blocksperyear"}},[e._v("#")]),e._v(" "),a("code",[e._v("BlocksPerYear")])]),e._v(" "),a("p",[a("strong",[e._v("The system's assumed number of blocks that the Cosmos Hub will produce in one year.")])]),e._v(" "),a("ul",[a("li",[e._v("on-chain value: "),a("code",[e._v(e._s(e.$themeConfig.currentParameters.mint.BlocksPerYear))])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-4")]),e._v(" default: "),a("code",[e._v("4360000")])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/30",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 30"),a("OutboundLink")],1),e._v(" change to "),a("code",[e._v("4360000")])]),e._v(" "),a("li",[a("code",[e._v("cosmoshub-3")]),e._v(" default: "),a("code",[e._v("4855015")])])]),e._v(" "),a("p",[a("code",[e._v("BlocksPerYear")]),e._v(" is the setting for the system's assumed number of blocks that the Cosmos Hub will produce in one year. "),a("code",[e._v("BlocksPerYear")]),e._v(" is currently "),a("code",[e._v("{{ $themeConfig.currentParameters.mint.BlocksPerYear }")]),e._v(" and the network's inflationary behaviour will be aligned with its settings when the average block time is 7.24 seconds (see "),a("a",{attrs:{href:"https://www.mintscan.io/cosmos/proposals/30",target:"_blank",rel:"noopener noreferrer"}},[e._v("Proposal 30"),a("OutboundLink")],1),e._v(") seconds over one year. "),a("code",[e._v("BlocksPerYear")]),e._v(" is most notably used in by the system to determine the rate that new ATOMs are minted, which can vary if block times vary from 6.50 seconds per block, since effectively a different number of blocks will be produced in one year and ATOMs are minted each block.")]),e._v(" "),a("h4",{attrs:{id:"changing-the-blocksperyear-parameter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changing-the-blocksperyear-parameter"}},[e._v("#")]),e._v(" Changing the "),a("code",[e._v("BlocksPerYear")]),e._v(" parameter")]),e._v(" "),a("p",[e._v("Changing the "),a("code",[e._v("BlocksPerYear")]),e._v(" parameter will change the assumption that system makes about how many Cosmos Hub blocks will be produced per year. If block times are greater than 6.50 seconds, then this parameter should be decreased to make the Cosmos Hub's inflationary behaviour more aligned with its settings. If block times are less than 6.50 seconds, then this parameter should be increased to make the Cosmos Hub's behaviour more aligned with its settings.")]),e._v(" "),a("h4",{attrs:{id:"notes-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-4"}},[e._v("#")]),e._v(" Notes")]),e._v(" "),a("p",[e._v("The calculation for seconds in one year:")]),e._v(" "),a("p",[e._v("365.24 (days) * 24 (hours) * 60 (minutes) * 60 (seconds) = 31556736 seconds")]),e._v(" "),a("p",[a("strong",[e._v("Example:")]),e._v(" If block times are 7.12 seconds per block and 31556736 seconds per year:")]),e._v(" "),a("p",[e._v("31556736 / 7.12 = ~4432126 blocks per year")])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/main/assets/js/93.5669612e.js b/main/assets/js/93.a29226ed.js similarity index 99% rename from main/assets/js/93.5669612e.js rename to main/assets/js/93.a29226ed.js index 5c8e910b3da..188da56e253 100644 --- a/main/assets/js/93.5669612e.js +++ b/main/assets/js/93.a29226ed.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{532:function(e,o,t){"use strict";t.r(o);var a=t(1),i=Object(a.a)({},(function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"slashing-subspace"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slashing-subspace"}},[e._v("#")]),e._v(" "),t("code",[e._v("slashing")]),e._v(" subspace")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("slashing")]),e._v(" module is responsible for enabling the Cosmos Hub to penalize any validator for an attributable violation of protocol rules by slashing (ie. partially destroying) the bonded ATOMs of their stake-backing. Penalties may include a) burning some amount of a staked bond and b) removing the ability to vote on future blocks and governance proposals for a period of time. Parameters include:")]),e._v(" "),t("table",[t("tr",[t("th",[e._v("Key")]),e._v(" "),t("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.slashing,(function(o,a){return t("tr",[t("td",[t("a",{attrs:{href:"#"+a}},[t("code",[e._v(e._s(a))])])]),e._v(" "),t("td",[t("code",[e._v(e._s(o))])])])}))],2),e._v(" "),t("h2",{attrs:{id:"governance-notes-on-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),t("h3",{attrs:{id:"signedblockswindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#signedblockswindow"}},[e._v("#")]),e._v(" "),t("code",[e._v("SignedBlocksWindow")])]),e._v(" "),t("p",[t("strong",[e._v("Window for being offline without being slashed, in blocks.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.SignedBlocksWindow))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.200000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.200000000000000000")])])]),e._v(" "),t("p",[e._v("If a validator in the active set is offline for too long, the validator will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least the "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(", which is 10 minutes.")]),e._v(" "),t("p",[e._v("How long is being offline for too long? There are two components: "),t("code",[e._v("SignedBlocksWindow")]),e._v(" and "),t("a",{attrs:{href:"#minsignedperwindow"}},[t("code",[e._v("MinSignedPerWindow")])]),e._v(". Since "),t("code",[e._v("MinSignedPerWindow")]),e._v(" is 5% and "),t("code",[e._v("SignedBlocksWindow")]),e._v(" is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The time window for being offline without breaking system rules is proportional to this parameter.")]),e._v(" "),t("p",[e._v("More about liveness "),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#signing-info-liveness",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-signedblockswindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-signedblockswindow"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("SignedBlocksWindow")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("SignedBlocksWindow")]),e._v(" parameter will decrease the window for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(". While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to cut "),t("code",[e._v("SignedBlocksWindow")]),e._v(" in half from 10,000 to 5,000 blocks, what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 5% of 5,000 blocks, which is 250 blocks. That means that a validator that misses 4,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~9.25 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-signedblockswindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-signedblockswindow"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("SignedBlocksWindow")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("SignedBlocksWindow")]),e._v(" parameter will increase the window for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(".")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to double "),t("code",[e._v("SignedBlocksWindow")]),e._v(" from 10,000 to 20,000 blocks, what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 5% of 20,000 blocks, which is 1000 blocks. That means that a validator that misses 19,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~37 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h3",{attrs:{id:"minsignedperwindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#minsignedperwindow"}},[e._v("#")]),e._v(" "),t("code",[e._v("MinSignedPerWindow")])]),e._v(" "),t("p",[t("strong",[e._v("Minimum proportion of blocks signed per window without being slashed.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.MinSignedPerWindow))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])])]),e._v(" "),t("p",[e._v("If a validator in the active set is offline for too long, the validator will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least the "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(", which is 10 minutes.")]),e._v(" "),t("p",[e._v("How long is being offline for too long? There are two components: "),t("a",{attrs:{href:"#signedblockswindow"}},[t("code",[e._v("SignedBlocksWindow")])]),e._v(" and "),t("code",[e._v("MinSignedPerWindow")]),e._v(". Since "),t("code",[e._v("MinSignedPerWindow")]),e._v(" is 5% and "),t("code",[e._v("SignedBlocksWindow")]),e._v(" is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The threshold-proportion of blocks is determined by this parameter, so the greater that "),t("code",[e._v("MinSignedPerWindow")]),e._v(" is, the lower the tolerance for missed blocks by the system.")]),e._v(" "),t("p",[e._v("More about liveness "),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#signing-info-liveness",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-minsignedperwindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-minsignedperwindow"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("MinSignedPerWindow")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("MinSignedPerWindow")]),e._v(" parameter will increase the threshold for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(". While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to cut "),t("code",[e._v("MinSignedPerWindow")]),e._v(" in half from "),t("code",[e._v("0.050000000000000000")]),e._v(" (5%) to "),t("code",[e._v("0.025000000000000000")]),e._v(" (2.5%), what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 2.5% of 10,000 blocks, which is 250 blocks. That means that a validator that misses 9,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~19 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-minsignedperwindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-minsignedperwindow"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("MinSignedPerWindow")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("MinSignedPerWindow")]),e._v(" parameter will decrease the threshold for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(". While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to double the "),t("code",[e._v("MinSignedPerWindow")]),e._v(" from "),t("code",[e._v("0.050000000000000000")]),e._v(" (5%) to "),t("code",[e._v("0.100000000000000000")]),e._v(" (10%), what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 10% of 10,000 blocks, which is 1000 blocks. That means that a validator that misses 9,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~17.5 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h3",{attrs:{id:"downtimejailduration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#downtimejailduration"}},[e._v("#")]),e._v(" "),t("code",[e._v("DowntimeJailDuration")])]),e._v(" "),t("p",[t("strong",[e._v("The suspension time (aka jail time) for a validator that is offline too long, in nanoseconds.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.DowntimeJailDuration))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("600000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("600000000000")])])]),e._v(" "),t("p",[e._v("A validator in the active set that's offline for too long, besides being slashed, will be temporarily removed from the active set (aka \""),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#unjail",target:"_blank",rel:"noopener noreferrer"}},[e._v("jailed"),t("OutboundLink")],1),e._v('") for at least '),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(", which is 10 minutes ("),t("code",[e._v("600000000000")]),e._v(" nanoseconds). During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards. After the "),t("code",[e._v("DowntimeJailDuration")]),e._v(' period has passed, the validator operator may send an "'),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#unjail",target:"_blank",rel:"noopener noreferrer"}},[e._v("unjail"),t("OutboundLink")],1),e._v('" transaction to resume validator operations.')]),e._v(" "),t("p",[e._v("More about liveness "),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#signing-info-liveness",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-downtimejailduration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-downtimejailduration"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("DowntimeJailDuration")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("DowntimeJailDuration")]),e._v(" parameter will require a validator to wait less time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-downtimejailduration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-downtimejailduration"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("DowntimeJailDuration")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("DowntimeJailDuration")]),e._v(" parameter will require a validator to wait more time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.")]),e._v(" "),t("h3",{attrs:{id:"slashfractiondoublesign"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slashfractiondoublesign"}},[e._v("#")]),e._v(" "),t("code",[e._v("SlashFractionDoubleSign")])]),e._v(" "),t("p",[t("strong",[e._v("Proportion of stake-backing that is bruned for equivocation (aka double-signing).")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.SlashFractionDoubleSign))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])])]),e._v(" "),t("p",[e._v('A validator proven to have signed two blocks at the same height is considered to have committed equivocation, and the system will then permanently burn ("slash") that validator\'s total delegations (aka stake-backing) by '),t("code",[e._v("0.050000000000000000")]),e._v(' (5%). All delegators to an offending validator will lose 5% of all ATOMs delegated to this validator. At this point the validator will be "'),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#staking-tombstone",target:"_blank",rel:"noopener noreferrer"}},[e._v("tombstoned"),t("OutboundLink")],1),e._v(",\" which means the validator will be permanently removed from the active set of validators, and the validator's stake-backing will only be slashed one time (regardless of how many equivocations).")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-slashfractiondoublesign"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-slashfractiondoublesign"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("SlashFractionDoubleSign")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("SlashFractionDoubleSign")]),e._v(" parameter will lessen the penalty for equivocation, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are secure.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-slashfractiondoublesign"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-slashfractiondoublesign"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("SlashFractionDoubleSign")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("SlashFractionDoubleSign")]),e._v(" parameter will heighten the penalty for equivocation, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are secure.")]),e._v(" "),t("h3",{attrs:{id:"slashfractiondowntime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slashfractiondowntime"}},[e._v("#")]),e._v(" "),t("code",[e._v("SlashFractionDowntime")])]),e._v(" "),t("p",[t("strong",[e._v("Proportion of stake that is slashed for being offline too long.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.SlashFractionDowntime))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.000100000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.000100000000000000")])])]),e._v(" "),t("p",[e._v('If a validator in the active set is offline for too long, the system will permanently burn ("slash") that validator\'s total delegations (aka stake-backing) by a '),t("code",[e._v("SlashFractionDowntime")]),e._v(" of "),t("code",[e._v("0.000100000000000000")]),e._v(' (0.01%). All delegators to an offending validator will lose 0.01% of all ATOMs delegated to this validator. At this point the validator will be "'),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#unjail",target:"_blank",rel:"noopener noreferrer"}},[e._v("jailed"),t("OutboundLink")],1),e._v(",\" which means the validator will be temporarily removed from the active set of validators so the validator's stake-backing will only be slashed one time.")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-slashfractiondowntime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-slashfractiondowntime"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("SlashFractionDowntime")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("SlashFractionDowntime")]),e._v(" parameter will lessen the penalty for liveness violations, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are online.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-slashfractiondowntime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-slashfractiondowntime"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("SlashFractionDowntime")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("SlashFractionDowntime")]),e._v(" parameter will heighten the penalty for liveness violations, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are online.")]),e._v(" "),t("h3",{attrs:{id:"maxevidenceage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#maxevidenceage"}},[e._v("#")]),e._v(" "),t("code",[e._v("MaxEvidenceAge")])]),e._v(" "),t("ul",[t("li",[e._v("deprecated in "),t("code",[e._v("cosmoshub-4")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("1814400000000000")])])]),e._v(" "),t("p",[e._v("This parameter was present in "),t("code",[e._v("cosmoshub-3")]),e._v(", but was "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/pull/5952",target:"_blank",rel:"noopener noreferrer"}},[e._v("deprecated"),t("OutboundLink")],1),e._v(" for "),t("code",[e._v("cosmoshub-4")]),e._v(" genesis.")])])}),[],!1,null,null,null);o.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{533:function(e,o,t){"use strict";t.r(o);var a=t(1),i=Object(a.a)({},(function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"slashing-subspace"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slashing-subspace"}},[e._v("#")]),e._v(" "),t("code",[e._v("slashing")]),e._v(" subspace")]),e._v(" "),t("p",[e._v("The "),t("code",[e._v("slashing")]),e._v(" module is responsible for enabling the Cosmos Hub to penalize any validator for an attributable violation of protocol rules by slashing (ie. partially destroying) the bonded ATOMs of their stake-backing. Penalties may include a) burning some amount of a staked bond and b) removing the ability to vote on future blocks and governance proposals for a period of time. Parameters include:")]),e._v(" "),t("table",[t("tr",[t("th",[e._v("Key")]),e._v(" "),t("th",[e._v("Value")])]),e._v(" "),e._l(e.$themeConfig.currentParameters.slashing,(function(o,a){return t("tr",[t("td",[t("a",{attrs:{href:"#"+a}},[t("code",[e._v(e._s(a))])])]),e._v(" "),t("td",[t("code",[e._v(e._s(o))])])])}))],2),e._v(" "),t("h2",{attrs:{id:"governance-notes-on-parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#governance-notes-on-parameters"}},[e._v("#")]),e._v(" Governance notes on parameters")]),e._v(" "),t("h3",{attrs:{id:"signedblockswindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#signedblockswindow"}},[e._v("#")]),e._v(" "),t("code",[e._v("SignedBlocksWindow")])]),e._v(" "),t("p",[t("strong",[e._v("Window for being offline without being slashed, in blocks.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.SignedBlocksWindow))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.200000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.200000000000000000")])])]),e._v(" "),t("p",[e._v("If a validator in the active set is offline for too long, the validator will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least the "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(", which is 10 minutes.")]),e._v(" "),t("p",[e._v("How long is being offline for too long? There are two components: "),t("code",[e._v("SignedBlocksWindow")]),e._v(" and "),t("a",{attrs:{href:"#minsignedperwindow"}},[t("code",[e._v("MinSignedPerWindow")])]),e._v(". Since "),t("code",[e._v("MinSignedPerWindow")]),e._v(" is 5% and "),t("code",[e._v("SignedBlocksWindow")]),e._v(" is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The time window for being offline without breaking system rules is proportional to this parameter.")]),e._v(" "),t("p",[e._v("More about liveness "),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#signing-info-liveness",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-signedblockswindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-signedblockswindow"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("SignedBlocksWindow")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("SignedBlocksWindow")]),e._v(" parameter will decrease the window for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(". While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to cut "),t("code",[e._v("SignedBlocksWindow")]),e._v(" in half from 10,000 to 5,000 blocks, what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 5% of 5,000 blocks, which is 250 blocks. That means that a validator that misses 4,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~9.25 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-signedblockswindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-signedblockswindow"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("SignedBlocksWindow")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("SignedBlocksWindow")]),e._v(" parameter will increase the window for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(".")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to double "),t("code",[e._v("SignedBlocksWindow")]),e._v(" from 10,000 to 20,000 blocks, what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 5% of 20,000 blocks, which is 1000 blocks. That means that a validator that misses 19,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~37 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h3",{attrs:{id:"minsignedperwindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#minsignedperwindow"}},[e._v("#")]),e._v(" "),t("code",[e._v("MinSignedPerWindow")])]),e._v(" "),t("p",[t("strong",[e._v("Minimum proportion of blocks signed per window without being slashed.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.MinSignedPerWindow))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])])]),e._v(" "),t("p",[e._v("If a validator in the active set is offline for too long, the validator will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least the "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(", which is 10 minutes.")]),e._v(" "),t("p",[e._v("How long is being offline for too long? There are two components: "),t("a",{attrs:{href:"#signedblockswindow"}},[t("code",[e._v("SignedBlocksWindow")])]),e._v(" and "),t("code",[e._v("MinSignedPerWindow")]),e._v(". Since "),t("code",[e._v("MinSignedPerWindow")]),e._v(" is 5% and "),t("code",[e._v("SignedBlocksWindow")]),e._v(" is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The threshold-proportion of blocks is determined by this parameter, so the greater that "),t("code",[e._v("MinSignedPerWindow")]),e._v(" is, the lower the tolerance for missed blocks by the system.")]),e._v(" "),t("p",[e._v("More about liveness "),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#signing-info-liveness",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-minsignedperwindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-minsignedperwindow"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("MinSignedPerWindow")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("MinSignedPerWindow")]),e._v(" parameter will increase the threshold for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(". While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to cut "),t("code",[e._v("MinSignedPerWindow")]),e._v(" in half from "),t("code",[e._v("0.050000000000000000")]),e._v(" (5%) to "),t("code",[e._v("0.025000000000000000")]),e._v(" (2.5%), what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 2.5% of 10,000 blocks, which is 250 blocks. That means that a validator that misses 9,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~19 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-minsignedperwindow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-minsignedperwindow"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("MinSignedPerWindow")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("MinSignedPerWindow")]),e._v(" parameter will decrease the threshold for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by "),t("a",{attrs:{href:"#slashfractiondowntime"}},[t("code",[e._v("SlashFractionDowntime")])]),e._v(" and temporarily removed from the active set for at least "),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(". While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.")]),e._v(" "),t("p",[t("strong",[e._v("Example:")])]),e._v(" "),t("p",[e._v("If we pass a proposal to double the "),t("code",[e._v("MinSignedPerWindow")]),e._v(" from "),t("code",[e._v("0.050000000000000000")]),e._v(" (5%) to "),t("code",[e._v("0.100000000000000000")]),e._v(" (10%), what happens?")]),e._v(" "),t("p",[e._v("Validators must now sign at least 10% of 10,000 blocks, which is 1000 blocks. That means that a validator that misses 9,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.")]),e._v(" "),t("p",[e._v("That's ~17.5 hours instead of ~18.5 hours, assuming 7s block times.")]),e._v(" "),t("h3",{attrs:{id:"downtimejailduration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#downtimejailduration"}},[e._v("#")]),e._v(" "),t("code",[e._v("DowntimeJailDuration")])]),e._v(" "),t("p",[t("strong",[e._v("The suspension time (aka jail time) for a validator that is offline too long, in nanoseconds.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.DowntimeJailDuration))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("600000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("600000000000")])])]),e._v(" "),t("p",[e._v("A validator in the active set that's offline for too long, besides being slashed, will be temporarily removed from the active set (aka \""),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#unjail",target:"_blank",rel:"noopener noreferrer"}},[e._v("jailed"),t("OutboundLink")],1),e._v('") for at least '),t("a",{attrs:{href:"#downtimejailduration"}},[t("code",[e._v("DowntimeJailDuration")])]),e._v(", which is 10 minutes ("),t("code",[e._v("600000000000")]),e._v(" nanoseconds). During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards. After the "),t("code",[e._v("DowntimeJailDuration")]),e._v(' period has passed, the validator operator may send an "'),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#unjail",target:"_blank",rel:"noopener noreferrer"}},[e._v("unjail"),t("OutboundLink")],1),e._v('" transaction to resume validator operations.')]),e._v(" "),t("p",[e._v("More about liveness "),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#signing-info-liveness",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-downtimejailduration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-downtimejailduration"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("DowntimeJailDuration")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("DowntimeJailDuration")]),e._v(" parameter will require a validator to wait less time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-downtimejailduration"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-downtimejailduration"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("DowntimeJailDuration")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("DowntimeJailDuration")]),e._v(" parameter will require a validator to wait more time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.")]),e._v(" "),t("h3",{attrs:{id:"slashfractiondoublesign"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slashfractiondoublesign"}},[e._v("#")]),e._v(" "),t("code",[e._v("SlashFractionDoubleSign")])]),e._v(" "),t("p",[t("strong",[e._v("Proportion of stake-backing that is bruned for equivocation (aka double-signing).")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.SlashFractionDoubleSign))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.050000000000000000")])])]),e._v(" "),t("p",[e._v('A validator proven to have signed two blocks at the same height is considered to have committed equivocation, and the system will then permanently burn ("slash") that validator\'s total delegations (aka stake-backing) by '),t("code",[e._v("0.050000000000000000")]),e._v(' (5%). All delegators to an offending validator will lose 5% of all ATOMs delegated to this validator. At this point the validator will be "'),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#staking-tombstone",target:"_blank",rel:"noopener noreferrer"}},[e._v("tombstoned"),t("OutboundLink")],1),e._v(",\" which means the validator will be permanently removed from the active set of validators, and the validator's stake-backing will only be slashed one time (regardless of how many equivocations).")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-slashfractiondoublesign"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-slashfractiondoublesign"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("SlashFractionDoubleSign")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("SlashFractionDoubleSign")]),e._v(" parameter will lessen the penalty for equivocation, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are secure.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-slashfractiondoublesign"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-slashfractiondoublesign"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("SlashFractionDoubleSign")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("SlashFractionDoubleSign")]),e._v(" parameter will heighten the penalty for equivocation, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are secure.")]),e._v(" "),t("h3",{attrs:{id:"slashfractiondowntime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#slashfractiondowntime"}},[e._v("#")]),e._v(" "),t("code",[e._v("SlashFractionDowntime")])]),e._v(" "),t("p",[t("strong",[e._v("Proportion of stake that is slashed for being offline too long.")])]),e._v(" "),t("ul",[t("li",[e._v("on-chain value: "),t("code",[e._v(e._s(e.$themeConfig.currentParameters.slashing.SlashFractionDowntime))])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-4")]),e._v(" default: "),t("code",[e._v("0.000100000000000000")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("0.000100000000000000")])])]),e._v(" "),t("p",[e._v('If a validator in the active set is offline for too long, the system will permanently burn ("slash") that validator\'s total delegations (aka stake-backing) by a '),t("code",[e._v("SlashFractionDowntime")]),e._v(" of "),t("code",[e._v("0.000100000000000000")]),e._v(' (0.01%). All delegators to an offending validator will lose 0.01% of all ATOMs delegated to this validator. At this point the validator will be "'),t("a",{attrs:{href:"https://docs.cosmos.network/main/modules/slashing#unjail",target:"_blank",rel:"noopener noreferrer"}},[e._v("jailed"),t("OutboundLink")],1),e._v(",\" which means the validator will be temporarily removed from the active set of validators so the validator's stake-backing will only be slashed one time.")]),e._v(" "),t("h4",{attrs:{id:"decreasing-the-value-of-slashfractiondowntime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#decreasing-the-value-of-slashfractiondowntime"}},[e._v("#")]),e._v(" Decreasing the value of "),t("code",[e._v("SlashFractionDowntime")])]),e._v(" "),t("p",[e._v("Decreasing the value of the "),t("code",[e._v("SlashFractionDowntime")]),e._v(" parameter will lessen the penalty for liveness violations, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are online.")]),e._v(" "),t("h4",{attrs:{id:"increasing-the-value-of-slashfractiondowntime"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#increasing-the-value-of-slashfractiondowntime"}},[e._v("#")]),e._v(" Increasing the value of "),t("code",[e._v("SlashFractionDowntime")])]),e._v(" "),t("p",[e._v("Increasing the value of the "),t("code",[e._v("SlashFractionDowntime")]),e._v(" parameter will heighten the penalty for liveness violations, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are online.")]),e._v(" "),t("h3",{attrs:{id:"maxevidenceage"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#maxevidenceage"}},[e._v("#")]),e._v(" "),t("code",[e._v("MaxEvidenceAge")])]),e._v(" "),t("ul",[t("li",[e._v("deprecated in "),t("code",[e._v("cosmoshub-4")])]),e._v(" "),t("li",[t("code",[e._v("cosmoshub-3")]),e._v(" default: "),t("code",[e._v("1814400000000000")])])]),e._v(" "),t("p",[e._v("This parameter was present in "),t("code",[e._v("cosmoshub-3")]),e._v(", but was "),t("a",{attrs:{href:"https://github.com/cosmos/cosmos-sdk/pull/5952",target:"_blank",rel:"noopener noreferrer"}},[e._v("deprecated"),t("OutboundLink")],1),e._v(" for "),t("code",[e._v("cosmoshub-4")]),e._v(" genesis.")])])}),[],!1,null,null,null);o.default=i.exports}}]); \ No newline at end of file diff --git a/main/assets/js/app.a8795e5a.js b/main/assets/js/app.24d8f645.js similarity index 93% rename from main/assets/js/app.a8795e5a.js rename to main/assets/js/app.24d8f645.js index 1347c0eef4e..a33fb80bd43 100644 --- a/main/assets/js/app.a8795e5a.js +++ b/main/assets/js/app.24d8f645.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var r,a,s=t[0],l=t[1],u=t[2],p=0,d=[];pe.data).catch(()=>console.log("Error in fetching data from "+this.topBannerUrl)),t=s.a.get(this.asideBannersUrl+"/index.json").then(e=>e.data).catch(()=>console.log("Error in fetching data from "+this.asideBannersUrl));Promise.all([e,t]).then(e=>{this.topBanner=e[0],this.asideBanners=e[1]})},mounted(){document.addEventListener("scroll",()=>{const e=this.$refs.asideBanners;e&&(this.heightBanners=e.offsetHeight);const t=document.querySelector("#content-scroll"),n=document.querySelector("#aside-scroll"),r=window.scrollY;n&&n.getBoundingClientRect().heightwindow.innerHeight&&(this.asideBottom=r+n.getBoundingClientRect().height>t.getBoundingClientRect().height-this.heightBanners)}),Object(o.a)("/",(e,t)=>{e.preventDefault(),this.searchPanel=!this.searchPanel}),Object(o.a)("escape",(e,t)=>{e.preventDefault(),this.searchPanel=!1});let e=.01*window.innerHeight;document.documentElement.style.setProperty("--vh",e+"px")},computed:{algoliaConfig(){const e=this.$themeConfig.algolia;return e||{}},editLink(){if(!1===this.$page.frontmatter.editLink)return;const{repo:e,editLinks:t,docsDir:n="",docsBranch:r="master",docsRepo:o=e}=this.$site.themeConfig;return o&&t&&this.$page.relativePath?this.createEditLink(e,o,n,r,this.$page.relativePath):void 0},layout(){return this.$page.path?this.$frontmatter.layout?this.$frontmatter.layout:"LayoutDefault":"NotFound"},hasLocales(){return this.$site.locales&&Object.entries(this.$site.locales).length>1},directoryTree(){const e=this.$site.pages,t=Object.keys(this.$site.locales||{}).map(e=>e.replace(/\//g,"")),n=(this.$localeConfig.path||"").replace(/\//g,""),o=n.length>0;let i={};e.forEach(e=>{let t=e.relativePath.split("/");if(1===t.length)return i[t[0]]=e;t.reduce((t,n,r,o)=>(r===o.length-1&&(t[n]=e),t.hasOwnProperty(n)||(t[n]={}),t[n]),i)}),i=o?i[n]:Object(r.omit)(i,t),i=Object(r.omitBy)(i,e=>"string"==typeof e.key);const a=e=>Object(r.map)(e,(e,t)=>({title:t,...e.key&&Object(r.isString)(e.key)?e:{children:this.sortedList(a(e))}}));return i=a(i),this.sortedList(i)},tree(){return[(this.$themeConfig.sidebar.auto,{title:"",children:this.directoryTree}),...this.$themeConfig.sidebar.nav||[]]}},methods:{searchSelect(e){if(e.id){const t=Object(r.find)(this.$site.pages,["key",e.id]);t&&t.regularPath&&this.$page.regularPath!=t.regularPath&&(this.$router.push(t.regularPath),this.searchPanel=!1)}else e.url&&window.location.assign(e.url)},createEditLink(e,t,n,r,o){if(/bitbucket.org/.test(e)){return(u.test(t)?t:e).replace(l,"")+"/src"+`/${r}/`+(n?n.replace(l,"")+"/":"")+o+`?mode=edit&spa=0&at=${r}&fileviewer=file-view-default`}const i="https://raw.githubusercontent.com/"+t+`/${r}/`+(n?n.replace(l,"")+"/":"")+o;s.a.get(i).then(e=>this.status=e.status).catch(()=>this.status=404);const a=u.test(t)?t:"https://github.com/"+t;return 200!==this.status?`https://github.com/${t}/issues`:a.replace(l,"")+"/edit"+`/${r}/`+(n?n.replace(l,"")+"/":"")+o},searchVisible(e){this.searchPanel=e},overlayClick(e){this.sidebarVisible=!1,this.rsidebarVisible=!1,this.searchPanel=!1},selectHeader(e){e.length>0&&(this.headerSelected=e[0].target.id)},indexFile:e=>!!e.children&&Object(r.find)(e.children,e=>{const t=e.relativePath;return!!t&&(t.toLowerCase().match(/index.md$/i)||t.toLowerCase().match(/readme.md$/i))}),sortedList(e){if(!Object(r.isArray)(e))return e;return Object(r.sortBy)(e,e=>{if(e.frontmatter)return e.frontmatter.order;if(e.children){const t=this.indexFile(e);return t&&t.frontmatter&&t.frontmatter.parent&&t.frontmatter.parent.order}})}},props:{aside:{type:Boolean,default:!0},search:{type:Boolean,default:!1}}},p=(n(390),n(1)),d=Object(p.a)(c,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("cookie-banner"),n("tm-top-banner",e._b({},"tm-top-banner",{topBanner:e.topBanner},!1)),n("div",{staticClass:"layout"},[n("div",{staticClass:"layout__sidebar"},[n("tm-sidebar-content",{attrs:{value:e.tree,tree:e.directoryTree}})],1),n("div",{staticClass:"layout__main"},[n("div",{staticClass:"layout__main__navbar"},[n("tm-top-bar",{on:{sidebar:function(t){e.sidebarVisible=t},search:function(t){e.searchPanel=t}}})],1),n("div",{staticClass:"layout__main__content",class:["aside__"+!(!1===e.$frontmatter.aside)]},[n("div",{staticClass:"layout__main__content__body",attrs:{id:"content-scroll"}},[!1!==e.$frontmatter.aside?n("div",{staticClass:"layout__main__content__body__breadcrumbs"},[n("tm-breadcrumbs",{on:{visible:function(t){e.rsidebarVisible=t}}})],1):e._e(),n("div",{staticClass:"layout__main__content__body__wrapper"},[n(e.layout,{key:e.$route.path,tag:"component",on:{search:function(t){e.searchPanel=t},prereq:function(t){e.prereq=t}}},[n("Content")],1)],1)]),!1!==e.$frontmatter.aside?n("div",{staticClass:"layout__main__content__aside__container",style:{"--height-banners":e.heightBanners+"px"}},[n("div",{staticClass:"layout__main__content__aside",class:["aside__bottom__"+!!e.asideBottom]},[n("client-only",[n("tm-aside",e._b({attrs:{id:"aside-scroll"},on:{search:function(t){e.searchPanel=t},bannerError:function(t){e.asideBanners=null}}},"tm-aside",{asideBanners:e.asideBanners,asideBannersUrl:e.asideBannersUrl,prereq:e.prereq},!1))],1)],1),e.editLink?n("div",{ref:"banners",staticClass:"layout__main__content__aside__banners"},[n("a",{attrs:{href:e.editLink,target:"_blank"}},[n("card-banner")],1)]):e._e()]):e._e()]),!1!==e.$frontmatter.aside?n("div",{staticClass:"layout__main__gutter"},[n("tm-footer-links",{attrs:{tree:e.tree}})],1):e._e(),n("div",{staticClass:"layout__main__footer"},[n("tm-footer",{attrs:{tree:e.directoryTree,full:e.$page.frontmatter.footer&&!1===e.$page.frontmatter.footer.newsletter}})],1)])]),n("tm-sidebar",{staticClass:"sheet__sidebar",attrs:{visible:e.sidebarVisible},on:{visible:function(t){e.sidebarVisible=t}}},[n("tm-sidebar-content",{attrs:{value:e.tree,tree:e.directoryTree,compact:!0}})],1),n("tm-sidebar",{staticClass:"sheet__sidebar",attrs:{visible:e.searchPanel,"max-width":"100vw",width:"480px",side:"right","box-shadow":"0 0 50px 10px rgba(0,0,0,.1)","background-color":"rgba(0,0,0,0)"},on:{visible:function(t){e.searchPanel=t}}},[n("section-search",{attrs:{base:e.$site.base,algoliaConfig:e.algoliaConfig,query:e.searchQuery,site:e.$site},on:{visible:function(t){e.searchPanel=t},cancel:function(t){e.searchPanel=!1},select:function(t){return e.searchSelect(t)},query:function(t){e.searchQuery=t}}})],1),n("tm-sidebar",{staticClass:"sheet__sidebar sheet__sidebar__toc",attrs:{visible:e.rsidebarVisible,side:"right"},on:{visible:function(t){e.rsidebarVisible=t}}},[n("tm-toc-menu",{on:{visible:function(t){e.rsidebarVisible=t}}})],1)],1)}),[],!1,null,"58560e81",null);t.default=d.exports},function(e,t,n){"use strict";function r(e,t,n,r,o,i,a,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):o&&(l=s?function(){o.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:o),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return r.call(e,t)}function i(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,c=n(102);var p=/[&<>"]/,d=/[&<>"]/g,h={"&":"&","<":"<",">":">",'"':"""};function f(e){return h[e]}var v=/[.?*+^$[\]\\(){}|-]/g;var g=n(52);t.lib={},t.lib.mdurl=n(103),t.lib.ucmicro=n(301),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=o,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return o(c,t)?c[t]:35===t.charCodeAt(0)&&u.test(t)&&i(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},t.isValidEntityCode=i,t.fromCodePoint=a,t.escapeHtml=function(e){return p.test(e)?e.replace(d,f):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(v,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},function(e,t){e.exports=function(e){return"function"==typeof e}},function(e,t,n){"use strict";var r=n(120),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;ne.data).catch(()=>console.log("Error in fetching data from "+this.topBannerUrl)),t=s.a.get(this.asideBannersUrl+"/index.json").then(e=>e.data).catch(()=>console.log("Error in fetching data from "+this.asideBannersUrl));Promise.all([e,t]).then(e=>{this.topBanner=e[0],this.asideBanners=e[1]})},mounted(){document.addEventListener("scroll",()=>{const e=this.$refs.asideBanners;e&&(this.heightBanners=e.offsetHeight);const t=document.querySelector("#content-scroll"),n=document.querySelector("#aside-scroll"),r=window.scrollY;n&&n.getBoundingClientRect().heightwindow.innerHeight&&(this.asideBottom=r+n.getBoundingClientRect().height>t.getBoundingClientRect().height-this.heightBanners)}),Object(o.a)("/",(e,t)=>{e.preventDefault(),this.searchPanel=!this.searchPanel}),Object(o.a)("escape",(e,t)=>{e.preventDefault(),this.searchPanel=!1});let e=.01*window.innerHeight;document.documentElement.style.setProperty("--vh",e+"px")},computed:{algoliaConfig(){const e=this.$themeConfig.algolia;return e||{}},editLink(){if(!1===this.$page.frontmatter.editLink)return;const{repo:e,editLinks:t,docsDir:n="",docsBranch:r="master",docsRepo:o=e}=this.$site.themeConfig;return o&&t&&this.$page.relativePath?this.createEditLink(e,o,n,r,this.$page.relativePath):void 0},layout(){return this.$page.path?this.$frontmatter.layout?this.$frontmatter.layout:"LayoutDefault":"NotFound"},hasLocales(){return this.$site.locales&&Object.entries(this.$site.locales).length>1},directoryTree(){const e=this.$site.pages,t=Object.keys(this.$site.locales||{}).map(e=>e.replace(/\//g,"")),n=(this.$localeConfig.path||"").replace(/\//g,""),o=n.length>0;let i={};e.forEach(e=>{let t=e.relativePath.split("/");if(1===t.length)return i[t[0]]=e;t.reduce((t,n,r,o)=>(r===o.length-1&&(t[n]=e),t.hasOwnProperty(n)||(t[n]={}),t[n]),i)}),i=o?i[n]:Object(r.omit)(i,t),i=Object(r.omitBy)(i,e=>"string"==typeof e.key);const a=e=>Object(r.map)(e,(e,t)=>({title:t,...e.key&&Object(r.isString)(e.key)?e:{children:this.sortedList(a(e))}}));return i=a(i),this.sortedList(i)},tree(){return[(this.$themeConfig.sidebar.auto,{title:"",children:this.directoryTree}),...this.$themeConfig.sidebar.nav||[]]}},methods:{searchSelect(e){if(e.id){const t=Object(r.find)(this.$site.pages,["key",e.id]);t&&t.regularPath&&this.$page.regularPath!=t.regularPath&&(this.$router.push(t.regularPath),this.searchPanel=!1)}else e.url&&window.location.assign(e.url)},createEditLink(e,t,n,r,o){if(/bitbucket.org/.test(e)){return(u.test(t)?t:e).replace(l,"")+"/src"+`/${r}/`+(n?n.replace(l,"")+"/":"")+o+`?mode=edit&spa=0&at=${r}&fileviewer=file-view-default`}const i="https://raw.githubusercontent.com/"+t+`/${r}/`+(n?n.replace(l,"")+"/":"")+o;s.a.get(i).then(e=>this.status=e.status).catch(()=>this.status=404);const a=u.test(t)?t:"https://github.com/"+t;return 200!==this.status?`https://github.com/${t}/issues`:a.replace(l,"")+"/edit"+`/${r}/`+(n?n.replace(l,"")+"/":"")+o},searchVisible(e){this.searchPanel=e},overlayClick(e){this.sidebarVisible=!1,this.rsidebarVisible=!1,this.searchPanel=!1},selectHeader(e){e.length>0&&(this.headerSelected=e[0].target.id)},indexFile:e=>!!e.children&&Object(r.find)(e.children,e=>{const t=e.relativePath;return!!t&&(t.toLowerCase().match(/index.md$/i)||t.toLowerCase().match(/readme.md$/i))}),sortedList(e){if(!Object(r.isArray)(e))return e;return Object(r.sortBy)(e,e=>{if(e.frontmatter)return e.frontmatter.order;if(e.children){const t=this.indexFile(e);return t&&t.frontmatter&&t.frontmatter.parent&&t.frontmatter.parent.order}})}},props:{aside:{type:Boolean,default:!0},search:{type:Boolean,default:!1}}},p=(n(390),n(1)),d=Object(p.a)(c,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("cookie-banner"),n("tm-top-banner",e._b({},"tm-top-banner",{topBanner:e.topBanner},!1)),n("div",{staticClass:"layout"},[n("div",{staticClass:"layout__sidebar"},[n("tm-sidebar-content",{attrs:{value:e.tree,tree:e.directoryTree}})],1),n("div",{staticClass:"layout__main"},[n("div",{staticClass:"layout__main__navbar"},[n("tm-top-bar",{on:{sidebar:function(t){e.sidebarVisible=t},search:function(t){e.searchPanel=t}}})],1),n("div",{staticClass:"layout__main__content",class:["aside__"+!(!1===e.$frontmatter.aside)]},[n("div",{staticClass:"layout__main__content__body",attrs:{id:"content-scroll"}},[!1!==e.$frontmatter.aside?n("div",{staticClass:"layout__main__content__body__breadcrumbs"},[n("tm-breadcrumbs",{on:{visible:function(t){e.rsidebarVisible=t}}})],1):e._e(),n("div",{staticClass:"layout__main__content__body__wrapper"},[n(e.layout,{key:e.$route.path,tag:"component",on:{search:function(t){e.searchPanel=t},prereq:function(t){e.prereq=t}}},[n("Content")],1)],1)]),!1!==e.$frontmatter.aside?n("div",{staticClass:"layout__main__content__aside__container",style:{"--height-banners":e.heightBanners+"px"}},[n("div",{staticClass:"layout__main__content__aside",class:["aside__bottom__"+!!e.asideBottom]},[n("client-only",[n("tm-aside",e._b({attrs:{id:"aside-scroll"},on:{search:function(t){e.searchPanel=t},bannerError:function(t){e.asideBanners=null}}},"tm-aside",{asideBanners:e.asideBanners,asideBannersUrl:e.asideBannersUrl,prereq:e.prereq},!1))],1)],1),e.editLink?n("div",{ref:"banners",staticClass:"layout__main__content__aside__banners"},[n("a",{attrs:{href:e.editLink,target:"_blank"}},[n("card-banner")],1)]):e._e()]):e._e()]),!1!==e.$frontmatter.aside?n("div",{staticClass:"layout__main__gutter"},[n("tm-footer-links",{attrs:{tree:e.tree}})],1):e._e(),n("div",{staticClass:"layout__main__footer"},[n("tm-footer",{attrs:{tree:e.directoryTree,full:e.$page.frontmatter.footer&&!1===e.$page.frontmatter.footer.newsletter}})],1)])]),n("tm-sidebar",{staticClass:"sheet__sidebar",attrs:{visible:e.sidebarVisible},on:{visible:function(t){e.sidebarVisible=t}}},[n("tm-sidebar-content",{attrs:{value:e.tree,tree:e.directoryTree,compact:!0}})],1),n("tm-sidebar",{staticClass:"sheet__sidebar",attrs:{visible:e.searchPanel,"max-width":"100vw",width:"480px",side:"right","box-shadow":"0 0 50px 10px rgba(0,0,0,.1)","background-color":"rgba(0,0,0,0)"},on:{visible:function(t){e.searchPanel=t}}},[n("section-search",{attrs:{base:e.$site.base,algoliaConfig:e.algoliaConfig,query:e.searchQuery,site:e.$site},on:{visible:function(t){e.searchPanel=t},cancel:function(t){e.searchPanel=!1},select:function(t){return e.searchSelect(t)},query:function(t){e.searchQuery=t}}})],1),n("tm-sidebar",{staticClass:"sheet__sidebar sheet__sidebar__toc",attrs:{visible:e.rsidebarVisible,side:"right"},on:{visible:function(t){e.rsidebarVisible=t}}},[n("tm-toc-menu",{on:{visible:function(t){e.rsidebarVisible=t}}})],1)],1)}),[],!1,null,"58560e81",null);t.default=d.exports},function(e,t,n){"use strict";function r(e,t,n,r,o,i,a,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):o&&(l=s?function(){o.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:o),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return r.call(e,t)}function i(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,c=n(102);var p=/[&<>"]/,d=/[&<>"]/g,h={"&":"&","<":"<",">":">",'"':"""};function f(e){return h[e]}var v=/[.?*+^$[\]\\(){}|-]/g;var g=n(52);t.lib={},t.lib.mdurl=n(103),t.lib.ucmicro=n(301),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=o,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return o(c,t)?c[t]:35===t.charCodeAt(0)&&u.test(t)&&i(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},t.isValidEntityCode=i,t.fromCodePoint=a,t.escapeHtml=function(e){return p.test(e)?e.replace(d,f):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(v,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},function(e,t){e.exports=function(e){return"function"==typeof e}},function(e,t,n){"use strict";var r=n(120),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n @@ -54,4 +54,4 @@ var r=Object.freeze({});function o(e){return null==e}function i(e){return null!= * vue-router v3.6.5 * (c) 2022 Evan You * @license MIT - */function Do(e,t){for(var n in t)e[n]=t[n];return e}var Mo=/[!'()*]/g,Io=function(e){return"%"+e.charCodeAt(0).toString(16)},Ro=/%2C/g,Fo=function(e){return encodeURIComponent(e).replace(Mo,Io).replace(Ro,",")};function qo(e){try{return decodeURIComponent(e)}catch(e){0}return e}var $o=function(e){return null==e||"object"==typeof e?e:String(e)};function zo(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),r=qo(n.shift()),o=n.length>0?qo(n.join("=")):null;void 0===t[r]?t[r]=o:Array.isArray(t[r])?t[r].push(o):t[r]=[t[r],o]})),t):t}function Bo(e){var t=e?Object.keys(e).map((function(t){var n=e[t];if(void 0===n)return"";if(null===n)return Fo(t);if(Array.isArray(n)){var r=[];return n.forEach((function(e){void 0!==e&&(null===e?r.push(Fo(t)):r.push(Fo(t)+"="+Fo(e)))})),r.join("&")}return Fo(t)+"="+Fo(n)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var No=/\/?$/;function Uo(e,t,n,r){var o=r&&r.options.stringifyQuery,i=t.query||{};try{i=Ho(i)}catch(e){}var a={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:i,params:t.params||{},fullPath:Zo(t,o),matched:e?Go(e):[]};return n&&(a.redirectedFrom=Zo(n,o)),Object.freeze(a)}function Ho(e){if(Array.isArray(e))return e.map(Ho);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=Ho(e[n]);return t}return e}var Vo=Uo(null,{path:"/"});function Go(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function Zo(e,t){var n=e.path,r=e.query;void 0===r&&(r={});var o=e.hash;return void 0===o&&(o=""),(n||"/")+(t||Bo)(r)+o}function Wo(e,t,n){return t===Vo?e===t:!!t&&(e.path&&t.path?e.path.replace(No,"")===t.path.replace(No,"")&&(n||e.hash===t.hash&&Ko(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(n||e.hash===t.hash&&Ko(e.query,t.query)&&Ko(e.params,t.params))))}function Ko(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e).sort(),r=Object.keys(t).sort();return n.length===r.length&&n.every((function(n,o){var i=e[n];if(r[o]!==n)return!1;var a=t[n];return null==i||null==a?i===a:"object"==typeof i&&"object"==typeof a?Ko(i,a):String(i)===String(a)}))}function Jo(e){for(var t=0;t=0&&(t=e.slice(r),e=e.slice(0,r));var o=e.indexOf("?");return o>=0&&(n=e.slice(o+1),e=e.slice(0,o)),{path:e,query:n,hash:t}}(o.path||""),u=t&&t.path||"/",c=l.path?Qo(l.path,u,n||o.append):u,p=function(e,t,n){void 0===t&&(t={});var r,o=n||zo;try{r=o(e||"")}catch(e){r={}}for(var i in t){var a=t[i];r[i]=Array.isArray(a)?a.map($o):$o(a)}return r}(l.query,o.query,r&&r.options.parseQuery),d=o.hash||l.hash;return d&&"#"!==d.charAt(0)&&(d="#"+d),{_normalized:!0,path:c,query:p,hash:d}}var _i,ki=function(){},wi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,p=null==u?"router-link-active":u,d=null==c?"router-link-exact-active":c,h=null==this.activeClass?p:this.activeClass,f=null==this.exactActiveClass?d:this.exactActiveClass,v=a.redirectedFrom?Uo(null,yi(a.redirectedFrom),null,n):a;l[f]=Wo(r,v,this.exactPath),l[h]=this.exact||this.exactPath?l[f]:function(e,t){return 0===e.path.replace(No,"/").indexOf(t.path.replace(No,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(r,v);var g=l[f]?this.ariaCurrentValue:null,m=function(e){xi(e)&&(t.replace?n.replace(i,ki):n.push(i,ki))},b={click:xi};Array.isArray(this.event)?this.event.forEach((function(e){b[e]=m})):b[this.event]=m;var y={class:l},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:l[h],isExactActive:l[f]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?e():e("span",{},_)}if("a"===this.tag)y.on=b,y.attrs={href:s,"aria-current":g};else{var k=function e(t){var n;if(t)for(var r=0;r-1&&(s.params[d]=n.params[d]);return s.path=bi(c.path,s.params),l(c,s,a)}if(s.path){s.params={};for(var h=0;h-1}function ea(e,t){return Qi(e)&&e._isRouter&&(null==t||e.type===t)}function ta(e,t,n){var r=function(o){o>=e.length?n():e[o]?t(e[o],(function(){r(o+1)})):r(o+1)};r(0)}function na(e){return function(t,n,r){var o=!1,i=0,a=null;ra(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){o=!0,i++;var l,u=aa((function(t){var o;((o=t).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:_i.extend(t),n.components[s]=t,--i<=0&&r()})),c=aa((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=Qi(e)?e:new Error(t),r(a))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var p=l.component;p&&"function"==typeof p.then&&p.then(u,c)}}})),o||r()}}function ra(e,t){return oa(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function oa(e){return Array.prototype.concat.apply([],e)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(e){var t=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!t)return t=!0,e.apply(this,n)}}var sa=function(e,t){this.router=e,this.base=function(e){if(!e)if(Ci){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=Vo,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function la(e,t,n,r){var o=ra(e,(function(e,r,o,i){var a=function(e,t){"function"!=typeof e&&(e=_i.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return n(e,r,o,i)})):n(a,r,o,i)}));return oa(r?o.reverse():o)}function ua(e,t){if(t)return function(){return e.apply(t,arguments)}}sa.prototype.listen=function(e){this.cb=e},sa.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},sa.prototype.onError=function(e){this.errorCbs.push(e)},sa.prototype.transitionTo=function(e,t,n){var r,o=this;try{r=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),t&&t(r),o.ensureURL(),o.router.afterHooks.forEach((function(e){e&&e(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(e){e(r)})))}),(function(e){n&&n(e),e&&!o.ready&&(ea(e,Wi.redirected)&&i===Vo||(o.ready=!0,o.readyErrorCbs.forEach((function(t){t(e)}))))}))},sa.prototype.confirmTransition=function(e,t,n){var r=this,o=this.current;this.pending=e;var i,a,s=function(e){!ea(e)&&Qi(e)&&(r.errorCbs.length?r.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,u=o.matched.length-1;if(Wo(e,o)&&l===u&&e.matched[l]===o.matched[u])return this.ensureURL(),e.hash&&Ri(this.router,o,e,!1),s(((a=Xi(i=o,e,Wi.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var c=function(e,t){var n,r=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,r=Vi&&n;r&&this.listeners.push(Ii());var o=function(){var n=e.current,o=pa(e.base);e.current===Vo&&o===e._startLocation||e.transitionTo(o,(function(e){r&&Ri(t,e,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){Gi(ei(r.base+e.fullPath)),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){Zi(ei(r.base+e.fullPath)),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(pa(this.base)!==this.current.fullPath){var t=ei(this.base+this.current.fullPath);e?Gi(t):Zi(t)}},t.prototype.getCurrentLocation=function(){return pa(this.base)},t}(sa);function pa(e){var t=window.location.pathname,n=t.toLowerCase(),r=e.toLowerCase();return!e||n!==r&&0!==n.indexOf(ei(r+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var da=function(e){function t(t,n,r){e.call(this,t,n),r&&function(e){var t=pa(e);if(!/^\/#/.test(t))return window.location.replace(ei(e+"/#"+t)),!0}(this.base)||ha()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=Vi&&t;n&&this.listeners.push(Ii());var r=function(){var t=e.current;ha()&&e.transitionTo(fa(),(function(r){n&&Ri(e.router,r,t,!0),Vi||ba(r.fullPath)}))},o=Vi?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},t.prototype.push=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){ma(e.fullPath),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){ba(e.fullPath),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;fa()!==t&&(e?ma(t):ba(t))},t.prototype.getCurrentLocation=function(){return fa()},t}(sa);function ha(){var e=fa();return"/"===e.charAt(0)||(ba("/"+e),!1)}function fa(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function va(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function ma(e){Vi?Gi(va(e)):window.location.hash=e}function ba(e){Vi?Zi(va(e)):window.location.replace(va(e))}var ya=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index+1).concat(e),r.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var e=t.current;t.index=n,t.updateRoute(r),t.router.afterHooks.forEach((function(t){t&&t(r,e)}))}),(function(e){ea(e,Wi.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(sa),_a=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ei(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!Vi&&!1!==e.fallback,this.fallback&&(t="hash"),Ci||(t="abstract"),this.mode=t,t){case"history":this.history=new ca(this,e.base);break;case"hash":this.history=new da(this,e.base,this.fallback);break;case"abstract":this.history=new ya(this,e.base);break;default:0}},ka={currentRoute:{configurable:!0}};_a.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},ka.currentRoute.get=function(){return this.history&&this.history.current},_a.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof ca||n instanceof da){var r=function(e){n.setupListeners(),function(e){var r=n.current,o=t.options.scrollBehavior;Vi&&o&&"fullPath"in e&&Ri(t,e,r,!1)}(e)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},_a.prototype.beforeEach=function(e){return xa(this.beforeHooks,e)},_a.prototype.beforeResolve=function(e){return xa(this.resolveHooks,e)},_a.prototype.afterEach=function(e){return xa(this.afterHooks,e)},_a.prototype.onReady=function(e,t){this.history.onReady(e,t)},_a.prototype.onError=function(e){this.history.onError(e)},_a.prototype.push=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){r.history.push(e,t,n)}));this.history.push(e,t,n)},_a.prototype.replace=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){r.history.replace(e,t,n)}));this.history.replace(e,t,n)},_a.prototype.go=function(e){this.history.go(e)},_a.prototype.back=function(){this.go(-1)},_a.prototype.forward=function(){this.go(1)},_a.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},_a.prototype.resolve=function(e,t,n){var r=yi(e,t=t||this.history.current,n,this),o=this.match(r,t),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(e,t,n){var r="hash"===n?"#"+t:t;return e?ei(e+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},_a.prototype.getRoutes=function(){return this.matcher.getRoutes()},_a.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==Vo&&this.history.transitionTo(this.history.getCurrentLocation())},_a.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==Vo&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(_a.prototype,ka);var wa=_a;function xa(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}_a.install=function e(t){if(!e.installed||_i!==t){e.installed=!0,_i=t;var n=function(e){return void 0!==e},r=function(e,t){var r=e.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",Xo),t.component("RouterLink",wi);var o=t.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},_a.version="3.6.5",_a.isNavigationFailure=ea,_a.NavigationFailureType=Wi,_a.START_LOCATION=Vo,Ci&&window.Vue&&window.Vue.use(_a);n(57);n(186);var Ca={GlobalLayout:()=>Promise.resolve().then(n.bind(null,0)),NotFound:()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,628)),Layout:()=>n.e(28).then(n.bind(null,631))},Sa={"v-27502720":()=>n.e(59).then(n.bind(null,634)),"v-7ccd641c":()=>n.e(63).then(n.bind(null,637)),"v-09de3eeb":()=>n.e(62).then(n.bind(null,638)),"v-5cedbb66":()=>n.e(61).then(n.bind(null,636)),"v-127d50ca":()=>n.e(60).then(n.bind(null,635)),"v-f8267540":()=>n.e(65).then(n.bind(null,633)),"v-81da516a":()=>n.e(66).then(n.bind(null,632)),"v-4f6c3d8b":()=>n.e(70).then(n.bind(null,630)),"v-6a5d66b0":()=>n.e(71).then(n.bind(null,629)),"v-19b6f5cc":()=>n.e(73).then(n.bind(null,610)),"v-0589512b":()=>n.e(74).then(n.bind(null,609)),"v-06e3b56e":()=>n.e(76).then(n.bind(null,608)),"v-50a2c1ac":()=>n.e(77).then(n.bind(null,607)),"v-1c8e49b4":()=>n.e(78).then(n.bind(null,606)),"v-606149c6":()=>n.e(79).then(n.bind(null,605)),"v-66b4080b":()=>n.e(80).then(n.bind(null,604)),"v-9ff0f970":()=>n.e(83).then(n.bind(null,603)),"v-e4b2f83a":()=>n.e(84).then(n.bind(null,602)),"v-bf1b043c":()=>n.e(85).then(n.bind(null,601)),"v-39316e24":()=>n.e(86).then(n.bind(null,600)),"v-43a7e1f8":()=>n.e(87).then(n.bind(null,599)),"v-4ac77b64":()=>n.e(89).then(n.bind(null,598)),"v-ff7fa248":()=>n.e(88).then(n.bind(null,597)),"v-2758d5a0":()=>n.e(95).then(n.bind(null,596)),"v-6a4f1c80":()=>n.e(96).then(n.bind(null,595)),"v-7431790b":()=>n.e(97).then(n.bind(null,594)),"v-4b23576b":()=>n.e(98).then(n.bind(null,593)),"v-64792cc2":()=>n.e(100).then(n.bind(null,592)),"v-725866d9":()=>n.e(103).then(n.bind(null,591)),"v-2dfd010b":()=>n.e(108).then(n.bind(null,590)),"v-230a9c4b":()=>n.e(105).then(n.bind(null,589)),"v-b8864dea":()=>n.e(110).then(n.bind(null,588)),"v-37169a5a":()=>n.e(109).then(n.bind(null,587)),"v-68a68850":()=>n.e(112).then(n.bind(null,586)),"v-768a4c68":()=>n.e(115).then(n.bind(null,585)),"v-780264ab":()=>n.e(117).then(n.bind(null,584)),"v-ac3ab000":()=>n.e(26).then(n.bind(null,583)),"v-273748bf":()=>n.e(118).then(n.bind(null,582)),"v-51aac6a0":()=>n.e(122).then(n.bind(null,581)),"v-20bfb9fc":()=>n.e(123).then(n.bind(null,580)),"v-3169ddcb":()=>n.e(125).then(n.bind(null,579)),"v-414999cb":()=>n.e(124).then(n.bind(null,578)),"v-15244044":()=>n.e(127).then(n.bind(null,577)),"v-77046140":()=>n.e(130).then(n.bind(null,576)),"v-59c05d68":()=>n.e(129).then(n.bind(null,575)),"v-1916440a":()=>n.e(131).then(n.bind(null,574)),"v-25a92840":()=>n.e(132).then(n.bind(null,573)),"v-79b59060":()=>n.e(134).then(n.bind(null,572)),"v-5c94f8c0":()=>n.e(139).then(n.bind(null,571)),"v-aee924c0":()=>n.e(137).then(n.bind(null,570)),"v-3254b154":()=>n.e(140).then(n.bind(null,569)),"v-bfd7ad74":()=>n.e(141).then(n.bind(null,568)),"v-45ad53dd":()=>n.e(147).then(n.bind(null,567)),"v-7b5c086b":()=>n.e(144).then(n.bind(null,566)),"v-48a7c4e6":()=>n.e(146).then(n.bind(null,565)),"v-a3068aaa":()=>n.e(161).then(n.bind(null,564)),"v-071e366f":()=>n.e(163).then(n.bind(null,563)),"v-b9e98ed4":()=>n.e(164).then(n.bind(null,562)),"v-7df08ab4":()=>n.e(166).then(n.bind(null,561)),"v-0110ec16":()=>n.e(170).then(n.bind(null,560)),"v-0d07c820":()=>n.e(167).then(n.bind(null,559)),"v-79617eab":()=>n.e(171).then(n.bind(null,558)),"v-6d897402":()=>n.e(172).then(n.bind(null,557)),"v-37d38700":()=>n.e(173).then(n.bind(null,556)),"v-4da7b8c0":()=>n.e(174).then(n.bind(null,555)),"v-3bacdca0":()=>n.e(175).then(n.bind(null,554)),"v-c519eab8":()=>n.e(177).then(n.bind(null,553)),"v-1813a4ea":()=>n.e(178).then(n.bind(null,552)),"v-4cbea1b0":()=>n.e(180).then(n.bind(null,551)),"v-ec326d3c":()=>n.e(181).then(n.bind(null,550)),"v-dd4a8258":()=>n.e(182).then(n.bind(null,549)),"v-07cf9e68":()=>n.e(183).then(n.bind(null,548)),"v-5c30b8f6":()=>n.e(184).then(n.bind(null,547)),"v-a4aa1cc0":()=>n.e(186).then(n.bind(null,546)),"v-621d6140":()=>n.e(189).then(n.bind(null,545)),"v-f2b0d680":()=>n.e(190).then(n.bind(null,544)),"v-feb36d80":()=>n.e(193).then(n.bind(null,614)),"v-1731e69c":()=>n.e(191).then(n.bind(null,542)),"v-8fd705a0":()=>n.e(64).then(n.bind(null,541)),"v-f385361c":()=>n.e(67).then(n.bind(null,540)),"v-39ba7ec0":()=>n.e(69).then(n.bind(null,539)),"v-b0f4e33c":()=>n.e(72).then(n.bind(null,538)),"v-27ea8460":()=>n.e(81).then(n.bind(null,537)),"v-fd3648c0":()=>n.e(82).then(n.bind(null,536)),"v-7cd69f68":()=>n.e(90).then(n.bind(null,535)),"v-6c706790":()=>n.e(91).then(n.bind(null,534)),"v-80c733e0":()=>n.e(92).then(n.bind(null,533)),"v-16a2b68a":()=>n.e(93).then(n.bind(null,532)),"v-405c4ac0":()=>n.e(94).then(n.bind(null,531)),"v-5d13e021":()=>n.e(99).then(n.bind(null,530)),"v-23577189":()=>n.e(101).then(n.bind(null,529)),"v-183e9cb3":()=>n.e(102).then(n.bind(null,528)),"v-b74fdc6a":()=>n.e(104).then(n.bind(null,527)),"v-2e2517eb":()=>n.e(107).then(n.bind(null,526)),"v-bd8534ea":()=>n.e(106).then(n.bind(null,525)),"v-69e7af00":()=>n.e(114).then(n.bind(null,524)),"v-4aec61d8":()=>n.e(121).then(n.bind(null,523)),"v-524c67f6":()=>n.e(128).then(n.bind(null,522)),"v-5d40e180":()=>n.e(133).then(n.bind(null,521)),"v-4251c2a0":()=>n.e(138).then(n.bind(null,520)),"v-63a66800":()=>n.e(143).then(n.bind(null,519)),"v-e9d91d38":()=>n.e(145).then(n.bind(null,518)),"v-78add710":()=>n.e(150).then(n.bind(null,517)),"v-d8722040":()=>n.e(148).then(n.bind(null,516)),"v-3a6c3c60":()=>n.e(151).then(n.bind(null,515)),"v-76ff3f40":()=>n.e(152).then(n.bind(null,514)),"v-69a7e640":()=>n.e(153).then(n.bind(null,513)),"v-1ed61780":()=>n.e(154).then(n.bind(null,512)),"v-15fddba0":()=>n.e(155).then(n.bind(null,511)),"v-08131412":()=>n.e(157).then(n.bind(null,510)),"v-fc555fcc":()=>n.e(158).then(n.bind(null,509)),"v-3b66c300":()=>n.e(156).then(n.bind(null,508)),"v-c184b540":()=>n.e(159).then(n.bind(null,507)),"v-77c0d338":()=>n.e(160).then(n.bind(null,506)),"v-f8a9ba00":()=>n.e(162).then(n.bind(null,505)),"v-611af834":()=>n.e(4).then(n.bind(null,504)),"v-55d7a0e0":()=>n.e(168).then(n.bind(null,503)),"v-75000dc1":()=>n.e(169).then(n.bind(null,502)),"v-dd937a80":()=>n.e(185).then(n.bind(null,501)),"v-29e61a5c":()=>n.e(188).then(n.bind(null,500)),"v-2acc3e00":()=>n.e(75).then(n.bind(null,499)),"v-a8848234":()=>n.e(136).then(n.bind(null,498)),"v-68a36ea0":()=>n.e(149).then(n.bind(null,497)),"v-91b151c0":()=>n.e(165).then(n.bind(null,496)),"v-3cb8cfc8":()=>n.e(179).then(n.bind(null,495)),"v-26ead5fe":()=>n.e(187).then(n.bind(null,494)),"v-1d21baa0":()=>n.e(192).then(n.bind(null,493)),"v-b5fc8180":()=>n.e(68).then(n.bind(null,492)),"v-56618330":()=>n.e(113).then(n.bind(null,491)),"v-f4d75640":()=>n.e(119).then(n.bind(null,490)),"v-398eb7e6":()=>n.e(120).then(n.bind(null,489)),"v-7e931cdc":()=>n.e(135).then(n.bind(null,488)),"v-143a889c":()=>n.e(176).then(n.bind(null,487)),"v-17b4aa2d":()=>n.e(111).then(n.bind(null,486)),"v-0ee0b71e":()=>n.e(116).then(n.bind(null,485)),"v-9a504180":()=>n.e(126).then(n.bind(null,484)),"v-7cf7c3e0":()=>n.e(142).then(n.bind(null,483))};function Aa(e){const t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}const Ea=/-(\w)/g,Pa=Aa(e=>e.replace(Ea,(e,t)=>t?t.toUpperCase():"")),La=/\B([A-Z])/g,Oa=Aa(e=>e.replace(La,"-$1").toLowerCase()),Ta=Aa(e=>e.charAt(0).toUpperCase()+e.slice(1));function ja(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(Ta(Pa(t))):e(Ta(t))||e(Oa(t))}const Da=Object.assign({},Ca,Sa),Ma=e=>Da[e],Ia=e=>Sa[e],Ra=e=>Ca[e],Fa=e=>jo.component(e);function qa(e){return ja(Ia,e)}function $a(e){return ja(Ra,e)}function za(e){return ja(Ma,e)}function Ba(e){return ja(Fa,e)}function Na(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!Ba(e)&&za(e)){const t=await za(e)();jo.component(e,t.default)}}))}var Ua=n(144),Ha=n.n(Ua),Va=n(145),Ga=n.n(Va);function Za(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function Wa(e=""){return e?``:""}function Ka(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(n=>{t.setAttribute(n,e[n])}),document.head.appendChild(t),t})}function Ja(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var Xa=[{created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${n}="${Ga()(e[n])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=Wa(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=Ka(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return Ha()([{name:"description",content:this.$description}],e,this.siteMeta,Ja)},updateCanonicalLink(){Za(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",Wa(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){Ka(null,this.currentMetaTags),Za()}}],Ya=n(0);!function(e,t,n){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],n);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...n);break;default:throw new Error("Unknown option name.")}}(Ya.default,"mixins",Xa);const Qa=[{name:"v-27502720",path:"/DOCS_README.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-27502720").then(n)}},{name:"v-7ccd641c",path:"/architecture/adr-001-interchain-accounts.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7ccd641c").then(n)}},{name:"v-09de3eeb",path:"/architecture/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-09de3eeb").then(n)}},{path:"/architecture/index.html",redirect:"/architecture/"},{name:"v-5cedbb66",path:"/architecture/PROCESS.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5cedbb66").then(n)}},{name:"v-127d50ca",path:"/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("home","v-127d50ca").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-f8267540",path:"/architecture/adr-template.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f8267540").then(n)}},{name:"v-81da516a",path:"/delegators/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-81da516a").then(n)}},{path:"/delegators/index.html",redirect:"/delegators/"},{name:"v-4f6c3d8b",path:"/es/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4f6c3d8b").then(n)}},{path:"/es/index.html",redirect:"/es/"},{name:"v-6a5d66b0",path:"/es/gaia-tutorials/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6a5d66b0").then(n)}},{name:"v-19b6f5cc",path:"/es/gaia-tutorials/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-19b6f5cc").then(n)}},{name:"v-0589512b",path:"/es/governance/community-pool-spend/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0589512b").then(n)}},{path:"/es/governance/community-pool-spend/index.html",redirect:"/es/governance/community-pool-spend/"},{name:"v-06e3b56e",path:"/getting-started/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-06e3b56e").then(n)}},{path:"/getting-started/index.html",redirect:"/getting-started/"},{name:"v-50a2c1ac",path:"/getting-started/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-50a2c1ac").then(n)}},{name:"v-1c8e49b4",path:"/getting-started/quickstart.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1c8e49b4").then(n)}},{name:"v-606149c6",path:"/getting-started/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-606149c6").then(n)}},{name:"v-66b4080b",path:"/governance/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-66b4080b").then(n)}},{path:"/governance/index.html",redirect:"/governance/"},{name:"v-9ff0f970",path:"/governance/process.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-9ff0f970").then(n)}},{name:"v-e4b2f83a",path:"/governance/proposal-types/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-e4b2f83a").then(n)}},{path:"/governance/proposal-types/index.html",redirect:"/governance/proposal-types/"},{name:"v-bf1b043c",path:"/governance/proposal-types/community-pool-spend.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-bf1b043c").then(n)}},{name:"v-39316e24",path:"/governance/proposal-types/param-change.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-39316e24").then(n)}},{name:"v-43a7e1f8",path:"/governance/proposal-types/params-change/Auth.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-43a7e1f8").then(n)}},{name:"v-4ac77b64",path:"/governance/proposal-types/params-change/Crisis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4ac77b64").then(n)}},{name:"v-ff7fa248",path:"/governance/proposal-types/params-change/Bank.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-ff7fa248").then(n)}},{name:"v-2758d5a0",path:"/governance/proposal-types/params-change/param-index.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2758d5a0").then(n)}},{name:"v-6a4f1c80",path:"/governance/proposal-types/text-prop.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6a4f1c80").then(n)}},{name:"v-7431790b",path:"/governance/proposals/2020-10-blocks-per-year/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7431790b").then(n)}},{path:"/governance/proposals/2020-10-blocks-per-year/index.html",redirect:"/governance/proposals/2020-10-blocks-per-year/"},{name:"v-4b23576b",path:"/governance/proposals/2020-11-inflation-rate-change/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4b23576b").then(n)}},{path:"/governance/proposals/2020-11-inflation-rate-change/index.html",redirect:"/governance/proposals/2020-11-inflation-rate-change/"},{name:"v-64792cc2",path:"/governance/proposals/2021-01-delay-stargate-upgrade/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-64792cc2").then(n)}},{path:"/governance/proposals/2021-01-delay-stargate-upgrade/index.html",redirect:"/governance/proposals/2021-01-delay-stargate-upgrade/"},{name:"v-725866d9",path:"/governance/proposals/2021-03-enable-ibc-transfers/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-725866d9").then(n)}},{path:"/governance/proposals/2021-03-enable-ibc-transfers/index.html",redirect:"/governance/proposals/2021-03-enable-ibc-transfers/"},{name:"v-2dfd010b",path:"/governance/proposals/2021-07-atom-liquidity-incentives/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2dfd010b").then(n)}},{path:"/governance/proposals/2021-07-atom-liquidity-incentives/index.html",redirect:"/governance/proposals/2021-07-atom-liquidity-incentives/"},{name:"v-230a9c4b",path:"/governance/proposals/2021-04-lower-deposit-requirement/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-230a9c4b").then(n)}},{path:"/governance/proposals/2021-04-lower-deposit-requirement/index.html",redirect:"/governance/proposals/2021-04-lower-deposit-requirement/"},{name:"v-b8864dea",path:"/governance/proposals/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b8864dea").then(n)}},{path:"/governance/proposals/index.html",redirect:"/governance/proposals/"},{name:"v-37169a5a",path:"/governance/proposals/2021-09-hub-ibc-router/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-37169a5a").then(n)}},{path:"/governance/proposals/2021-09-hub-ibc-router/index.html",redirect:"/governance/proposals/2021-09-hub-ibc-router/"},{name:"v-68a68850",path:"/governance/proposals/proposal-template.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-68a68850").then(n)}},{name:"v-768a4c68",path:"/gtm-interchain.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-768a4c68").then(n)}},{name:"v-780264ab",path:"/hub-overview/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-780264ab").then(n)}},{path:"/hub-overview/index.html",redirect:"/hub-overview/"},{name:"v-ac3ab000",path:"/hub-overview/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-ac3ab000").then(n)}},{name:"v-273748bf",path:"/hub-tutorials/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-273748bf").then(n)}},{path:"/hub-tutorials/index.html",redirect:"/hub-tutorials/"},{name:"v-51aac6a0",path:"/hub-tutorials/live-upgrade-tutorial.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-51aac6a0").then(n)}},{name:"v-20bfb9fc",path:"/hub-tutorials/upgrade-node.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-20bfb9fc").then(n)}},{name:"v-3169ddcb",path:"/ko/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3169ddcb").then(n)}},{path:"/ko/index.html",redirect:"/ko/"},{name:"v-414999cb",path:"/images/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-414999cb").then(n)}},{path:"/images/index.html",redirect:"/images/"},{name:"v-15244044",path:"/ko/gaia-tutorials/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-15244044").then(n)}},{name:"v-77046140",path:"/ko/gaia-tutorials/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-77046140").then(n)}},{name:"v-59c05d68",path:"/ko/gaia-tutorials/join-testnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-59c05d68").then(n)}},{name:"v-1916440a",path:"/ko/genesis-state.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1916440a").then(n)}},{name:"v-25a92840",path:"/ko/keys.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-25a92840").then(n)}},{name:"v-79b59060",path:"/ko/launch/blog-2-kr.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-79b59060").then(n)}},{name:"v-5c94f8c0",path:"/ko/upgrade-node.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5c94f8c0").then(n)}},{name:"v-aee924c0",path:"/ko/resources/hd-wallets.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-aee924c0").then(n)}},{name:"v-3254b154",path:"/ko/validators/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3254b154").then(n)}},{name:"v-bfd7ad74",path:"/ko/validators/security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-bfd7ad74").then(n)}},{name:"v-45ad53dd",path:"/migration/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-45ad53dd").then(n)}},{path:"/migration/index.html",redirect:"/migration/"},{name:"v-7b5c086b",path:"/launch/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7b5c086b").then(n)}},{path:"/launch/index.html",redirect:"/launch/"},{name:"v-48a7c4e6",path:"/launch/blog-2-en.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-48a7c4e6").then(n)}},{name:"v-a3068aaa",path:"/modules/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-a3068aaa").then(n)}},{path:"/modules/index.html",redirect:"/modules/"},{name:"v-071e366f",path:"/resources/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-071e366f").then(n)}},{path:"/resources/index.html",redirect:"/resources/"},{name:"v-b9e98ed4",path:"/resources/archives.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b9e98ed4").then(n)}},{name:"v-7df08ab4",path:"/resources/hd-wallets.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7df08ab4").then(n)}},{name:"v-0110ec16",path:"/roadmap/cosmos-hub-roadmap-2.0.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0110ec16").then(n)}},{name:"v-0d07c820",path:"/resources/reproducible-builds.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0d07c820").then(n)}},{name:"v-79617eab",path:"/validators/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-79617eab").then(n)}},{path:"/validators/index.html",redirect:"/validators/"},{name:"v-6d897402",path:"/validators/kms/kms.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6d897402").then(n)}},{name:"v-37d38700",path:"/validators/kms/kms_ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-37d38700").then(n)}},{name:"v-4da7b8c0",path:"/validators/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4da7b8c0").then(n)}},{name:"v-3bacdca0",path:"/validators/security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3bacdca0").then(n)}},{name:"v-c519eab8",path:"/validators/validator-setup.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-c519eab8").then(n)}},{name:"v-1813a4ea",path:"/zh/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1813a4ea").then(n)}},{path:"/zh/index.html",redirect:"/zh/"},{name:"v-4cbea1b0",path:"/zh/gaia-tutorials/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4cbea1b0").then(n)}},{name:"v-ec326d3c",path:"/zh/gaia-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-ec326d3c").then(n)}},{name:"v-dd4a8258",path:"/zh/gaia-tutorials/join-testnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-dd4a8258").then(n)}},{name:"v-07cf9e68",path:"/zh/gaia-tutorials/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-07cf9e68").then(n)}},{name:"v-5c30b8f6",path:"/zh/genesis-state.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5c30b8f6").then(n)}},{name:"v-a4aa1cc0",path:"/zh/launch/blog-2-cn.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-a4aa1cc0").then(n)}},{name:"v-621d6140",path:"/zh/resources/ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-621d6140").then(n)}},{name:"v-f2b0d680",path:"/zh/validators/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f2b0d680").then(n)}},{name:"v-feb36d80",path:"/zh/validators/validator-setup.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-feb36d80").then(n)}},{name:"v-1731e69c",path:"/zh/validators/security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1731e69c").then(n)}},{name:"v-8fd705a0",path:"/architecture/adr-002-globalfee.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-8fd705a0").then(n)}},{name:"v-f385361c",path:"/delegators/delegator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f385361c").then(n)}},{name:"v-39ba7ec0",path:"/delegators/delegator-security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-39ba7ec0").then(n)}},{name:"v-b0f4e33c",path:"/es/gaia-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b0f4e33c").then(n)}},{name:"v-27ea8460",path:"/governance/best-practices.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-27ea8460").then(n)}},{name:"v-fd3648c0",path:"/governance/formatting.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-fd3648c0").then(n)}},{name:"v-7cd69f68",path:"/governance/proposal-types/params-change/Distribution.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7cd69f68").then(n)}},{name:"v-6c706790",path:"/governance/proposal-types/params-change/Governance.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6c706790").then(n)}},{name:"v-80c733e0",path:"/governance/proposal-types/params-change/Mint.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-80c733e0").then(n)}},{name:"v-16a2b68a",path:"/governance/proposal-types/params-change/Slashing.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-16a2b68a").then(n)}},{name:"v-405c4ac0",path:"/governance/proposal-types/params-change/Staking.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-405c4ac0").then(n)}},{name:"v-5d13e021",path:"/governance/proposals/2021-01-atom2021_marketing/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5d13e021").then(n)}},{path:"/governance/proposals/2021-01-atom2021_marketing/index.html",redirect:"/governance/proposals/2021-01-atom2021_marketing/"},{name:"v-23577189",path:"/governance/proposals/2021-01-stargate-upgrade-b/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-23577189").then(n)}},{path:"/governance/proposals/2021-01-stargate-upgrade-b/index.html",redirect:"/governance/proposals/2021-01-stargate-upgrade-b/"},{name:"v-183e9cb3",path:"/governance/proposals/2021-01-stargate-upgrade/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-183e9cb3").then(n)}},{path:"/governance/proposals/2021-01-stargate-upgrade/index.html",redirect:"/governance/proposals/2021-01-stargate-upgrade/"},{name:"v-b74fdc6a",path:"/governance/proposals/2021-04-advancing-ethermint/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b74fdc6a").then(n)}},{path:"/governance/proposals/2021-04-advancing-ethermint/index.html",redirect:"/governance/proposals/2021-04-advancing-ethermint/"},{name:"v-2e2517eb",path:"/governance/proposals/2021-05-gravity-bridge-deployment/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2e2517eb").then(n)}},{path:"/governance/proposals/2021-05-gravity-bridge-deployment/index.html",redirect:"/governance/proposals/2021-05-gravity-bridge-deployment/"},{name:"v-bd8534ea",path:"/governance/proposals/2021-04-prop34-continuation/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-bd8534ea").then(n)}},{path:"/governance/proposals/2021-04-prop34-continuation/index.html",redirect:"/governance/proposals/2021-04-prop34-continuation/"},{name:"v-69e7af00",path:"/governance/submitting.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-69e7af00").then(n)}},{name:"v-4aec61d8",path:"/hub-tutorials/join-testnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4aec61d8").then(n)}},{name:"v-524c67f6",path:"/ko/gaia-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-524c67f6").then(n)}},{name:"v-5d40e180",path:"/ko/launch/blog-1-kr.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5d40e180").then(n)}},{name:"v-4251c2a0",path:"/ko/resources/ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4251c2a0").then(n)}},{name:"v-63a66800",path:"/ko/validators/validator-setup.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-63a66800").then(n)}},{name:"v-e9d91d38",path:"/launch/blog-1-en.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-e9d91d38").then(n)}},{name:"v-78add710",path:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-78add710").then(n)}},{path:"/migration/cosmoshub-3/cosmoshub-3[ES_es].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html"},{path:"/migration/cosmoshub-3/cosmoshub-3[ES_es].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html"},{name:"v-d8722040",path:"/migration/cosmoshub-2/cosmoshub-2.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-d8722040").then(n)}},{name:"v-3a6c3c60",path:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3a6c3c60").then(n)}},{path:"/migration/cosmoshub-3/cosmoshub-3[KR_kr].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html"},{path:"/migration/cosmoshub-3/cosmoshub-3[KR_kr].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html"},{name:"v-76ff3f40",path:"/migration/cosmoshub-4-delta-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-76ff3f40").then(n)}},{name:"v-69a7e640",path:"/migration/cosmoshub-4-v10-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-69a7e640").then(n)}},{name:"v-1ed61780",path:"/migration/cosmoshub-4-v11-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1ed61780").then(n)}},{name:"v-15fddba0",path:"/migration/cosmoshub-4-v12-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-15fddba0").then(n)}},{name:"v-08131412",path:"/migration/cosmoshub-4-v7-Theta-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-08131412").then(n)}},{name:"v-fc555fcc",path:"/migration/cosmoshub-4-v8-Rho-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-fc555fcc").then(n)}},{name:"v-3b66c300",path:"/migration/cosmoshub-4-v13-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3b66c300").then(n)}},{name:"v-c184b540",path:"/migration/cosmoshub-4-v9-Lambda-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-c184b540").then(n)}},{name:"v-77c0d338",path:"/migration/cosmoshub-4-vega-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-77c0d338").then(n)}},{name:"v-f8a9ba00",path:"/modules/globalfee.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f8a9ba00").then(n)}},{name:"v-611af834",path:"/resources/ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-611af834").then(n)}},{name:"v-55d7a0e0",path:"/resources/service-providers.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-55d7a0e0").then(n)}},{name:"v-75000dc1",path:"/roadmap/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-75000dc1").then(n)}},{path:"/roadmap/index.html",redirect:"/roadmap/"},{name:"v-dd937a80",path:"/zh/launch/blog-1-cn.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-dd937a80").then(n)}},{name:"v-29e61a5c",path:"/zh/resources/genesis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-29e61a5c").then(n)}},{name:"v-2acc3e00",path:"/es/governance/params-change/Governance.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2acc3e00").then(n)}},{name:"v-a8848234",path:"/ko/resources/genesis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-a8848234").then(n)}},{name:"v-68a36ea0",path:"/migration/cosmoshub-3/cosmoshub-3.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-68a36ea0").then(n)}},{name:"v-91b151c0",path:"/resources/genesis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-91b151c0").then(n)}},{name:"v-3cb8cfc8",path:"/zh/delegator/delegator-guide-cli.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3cb8cfc8").then(n)}},{name:"v-26ead5fe",path:"/zh/resources/gaiad.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-26ead5fe").then(n)}},{name:"v-1d21baa0",path:"/zh/validators/validator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1d21baa0").then(n)}},{name:"v-b5fc8180",path:"/delegators/delegator-guide-cli.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b5fc8180").then(n)}},{name:"v-56618330",path:"/governance/state-of-cosmos-governance-2021.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-56618330").then(n)}},{name:"v-f4d75640",path:"/hub-tutorials/gaiad.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f4d75640").then(n)}},{name:"v-398eb7e6",path:"/hub-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-398eb7e6").then(n)}},{name:"v-7e931cdc",path:"/ko/resources/gaiad.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7e931cdc").then(n)}},{name:"v-143a889c",path:"/validators/validator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-143a889c").then(n)}},{name:"v-17b4aa2d",path:"/governance/proposals/previous-proposals/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-17b4aa2d").then(n)}},{path:"/governance/proposals/previous-proposals/index.html",redirect:"/governance/proposals/previous-proposals/"},{name:"v-0ee0b71e",path:"/guidelines/code-guidelines.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0ee0b71e").then(n)}},{name:"v-9a504180",path:"/ko/delegators/delegator-guide-cli.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-9a504180").then(n)}},{name:"v-7cf7c3e0",path:"/ko/validators/validator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7cf7c3e0").then(n)}},{path:"*",component:Ya.default}],es={title:"Cosmos Hub",description:"",base:"/main/",headTags:[],pages:[{title:"Updating the docs",frontmatter:{description:"",parent:{order:!1}},regularPath:"/DOCS_README.html",relativePath:"DOCS_README.md",key:"v-27502720",path:"/DOCS_README.html",headers:[{level:2,title:"Internationalization",slug:"internationalization"},{level:2,title:"Docs Build Workflow",slug:"docs-build-workflow"},{level:3,title:"How It Works",slug:"how-it-works"},{level:2,title:"README",slug:"readme"},{level:2,title:"Links",slug:"links"},{level:3,title:"Relative",slug:"relative"},{level:3,title:"Absolute",slug:"absolute"},{level:3,title:"Full",slug:"full"},{level:2,title:"Building Locally",slug:"building-locally"},{level:2,title:"Search",slug:"search"},{level:3,title:"Update and Build the RPC docs",slug:"update-and-build-the-rpc-docs"}]},{title:"ADR 001: Interchain Accounts",frontmatter:{description:"",order:2},regularPath:"/architecture/adr-001-interchain-accounts.html",relativePath:"architecture/adr-001-interchain-accounts.md",key:"v-7ccd641c",path:"/architecture/adr-001-interchain-accounts.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Status",slug:"status"},{level:2,title:"Abstract",slug:"abstract"},{level:2,title:"Rationale",slug:"rationale"},{level:2,title:"Desired Outcome",slug:"desired-outcome"},{level:2,title:"Consequences",slug:"consequences"},{level:2,title:"Technical Specification",slug:"technical-specification"},{level:2,title:"Development",slug:"development"},{level:2,title:"Governance [optional]",slug:"governance-optional"},{level:2,title:"Project Integrations [optional]",slug:"project-integrations-optional"},{level:2,title:"Support",slug:"support"},{level:2,title:"Additional Research & References",slug:"additional-research-references"}]},{title:"Architecture Decision Records (ADR)",frontmatter:{description:"",order:1,parent:{title:"Architecture Decision Records (ADR)",order:10}},regularPath:"/architecture/",relativePath:"architecture/README.md",key:"v-09de3eeb",path:"/architecture/",headers:[{level:2,title:"Rationale",slug:"rationale"},{level:2,title:"Creating new ADR",slug:"creating-new-adr"},{level:3,title:"Use RFC 2119 Keywords",slug:"use-rfc-2119-keywords"},{level:2,title:"ADR Table of Contents",slug:"adr-table-of-contents"},{level:3,title:"Accepted",slug:"accepted"},{level:3,title:"Proposed",slug:"proposed"},{level:3,title:"Draft",slug:"draft"},{level:3,title:"Rejected",slug:"rejected"}]},{title:"ADR Creation Process",frontmatter:{description:""},regularPath:"/architecture/PROCESS.html",relativePath:"architecture/PROCESS.md",key:"v-5cedbb66",path:"/architecture/PROCESS.html",headers:[{level:2,title:"ADR life cycle",slug:"adr-life-cycle"},{level:3,title:"ADR status",slug:"adr-status"},{level:2,title:"Language used in ADR",slug:"language-used-in-adr"}]},{title:"Contribute",frontmatter:{description:"",parent:{order:!1},layout:"home"},regularPath:"/",relativePath:"README.md",key:"v-127d50ca",path:"/",headers:[{level:2,title:"What is Gaia?",slug:"what-is-gaia"},{level:2,title:"Join the Cosmos Hub Mainnet",slug:"join-the-cosmos-hub-mainnet"},{level:2,title:"Join the Cosmos Hub Public Testnet",slug:"join-the-cosmos-hub-public-testnet"},{level:2,title:"Setup Your Own gaia Testnet",slug:"setup-your-own-gaia-testnet"},{level:2,title:"Additional Resources",slug:"additional-resources"}]},{title:"ADR {ADR-NUMBER}: {TITLE}",frontmatter:{description:"",order:!1},regularPath:"/architecture/adr-template.html",relativePath:"architecture/adr-template.md",key:"v-f8267540",path:"/architecture/adr-template.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Status",slug:"status"},{level:2,title:"Abstract",slug:"abstract"},{level:2,title:"Context",slug:"context"},{level:2,title:"Decision",slug:"decision"},{level:2,title:"Consequences",slug:"consequences"},{level:3,title:"Positive",slug:"positive"},{level:3,title:"Negative",slug:"negative"},{level:3,title:"Neutral",slug:"neutral"},{level:2,title:"References",slug:"references"}]},{title:"Delegators",frontmatter:{description:"",order:!1,parent:{title:"Delegators",order:4}},regularPath:"/delegators/",relativePath:"delegators/README.md",key:"v-81da516a",path:"/delegators/"},{title:"Versión",frontmatter:{description:""},regularPath:"/es/",relativePath:"es/README.md",key:"v-4f6c3d8b",path:"/es/",headers:[{level:2,title:"¿Qué es Gaia?",slug:"¿que-es-gaia"},{level:2,title:"Únase a la red principal del Hub de Cosmos",slug:"unase-a-la-red-principal-del-hub-de-cosmos"},{level:2,title:"Únase a la testnet pública del hub de Cosmos",slug:"unase-a-la-testnet-publica-del-hub-de-cosmos"},{level:2,title:"Prepare su propia Testnet de gaia",slug:"prepare-su-propia-testnet-de-gaia"},{level:2,title:"Recursos adicionales",slug:"recursos-adicionales"}]},{title:"Instalación de Gaia",frontmatter:{description:"",order:2},regularPath:"/es/gaia-tutorials/installation.html",relativePath:"es/gaia-tutorials/installation.md",key:"v-6a5d66b0",path:"/es/gaia-tutorials/installation.html",headers:[{level:2,title:"Instalación de Go",slug:"instalacion-de-go"},{level:2,title:"Instalación de los binarios",slug:"instalacion-de-los-binarios"},{level:3,title:"Tags para la construcción",slug:"tags-para-la-construccion"},{level:3,title:"Instalación de los binarios via snap (Linux solamente)",slug:"instalacion-de-los-binarios-via-snap-linux-solamente"},{level:2,title:"Workflow para el desarrollador",slug:"workflow-para-el-desarrollador"},{level:2,title:"Siguiente",slug:"siguiente"}]},{title:"¿Qué es Gaia?",frontmatter:{description:""},regularPath:"/es/gaia-tutorials/what-is-gaia.html",relativePath:"es/gaia-tutorials/what-is-gaia.md",key:"v-19b6f5cc",path:"/es/gaia-tutorials/what-is-gaia.html"},{title:"Cosmos Hub 3 y la Community Pool",frontmatter:{description:""},regularPath:"/es/governance/community-pool-spend/",relativePath:"es/governance/community-pool-spend/README.md",key:"v-0589512b",path:"/es/governance/community-pool-spend/",headers:[{level:2,title:"¿Por qué crear una propuesta para utilizar fondos de la Community Pool?",slug:"¿por-que-crear-una-propuesta-para-utilizar-fondos-de-la-community-pool"},{level:2,title:"Creación de una propuesta de gastos a la comunidad",slug:"creacion-de-una-propuesta-de-gastos-a-la-comunidad"},{level:2,title:"Sobre la Community Pool",slug:"sobre-la-community-pool"},{level:3,title:"¿Cómo está financiada la Community Pool?",slug:"¿como-esta-financiada-la-community-pool"},{level:3,title:"¿Cómo puede cambiar la financiación de la Community Pool?",slug:"¿como-puede-cambiar-la-financiacion-de-la-community-pool"},{level:3,title:"¿Cuál es el saldo de la Community Pool?",slug:"¿cual-es-el-saldo-de-la-community-pool"},{level:3,title:"¿Cómo se pueden gastar los fondos de la Community Pool?",slug:"¿como-se-pueden-gastar-los-fondos-de-la-community-pool"},{level:3,title:"¿Cómo se deberían gastar los fondos de la Community Pool?",slug:"¿como-se-deberian-gastar-los-fondos-de-la-community-pool"},{level:3,title:"¿Cómo se desembolsan los fondos una vez que una prouesta de gastos de comunidad es aprobada?",slug:"¿como-se-desembolsan-los-fondos-una-vez-que-una-prouesta-de-gastos-de-comunidad-es-aprobada"}]},{title:"Getting Started",frontmatter:{description:"",order:!1,parent:{order:2}},regularPath:"/getting-started/",relativePath:"getting-started/README.md",key:"v-06e3b56e",path:"/getting-started/"},{title:"Installation",frontmatter:{description:"",order:2,title:"Installing Gaia"},regularPath:"/getting-started/installation.html",relativePath:"getting-started/installation.md",key:"v-50a2c1ac",path:"/getting-started/installation.html",headers:[{level:2,title:"Build Requirements",slug:"build-requirements"},{level:2,title:"Build Tools",slug:"build-tools"},{level:2,title:"Install Go",slug:"install-go"},{level:2,title:"Install the binaries",slug:"install-the-binaries"},{level:3,title:"Build Tags",slug:"build-tags"},{level:2,title:"Work with a Cosmos SDK Clone",slug:"work-with-a-cosmos-sdk-clone"},{level:2,title:"Next",slug:"next"}]},{title:"Join Mainnet Quick Start",frontmatter:{description:"",order:3,title:"Quick Start - Join Mainnet"},regularPath:"/getting-started/quickstart.html",relativePath:"getting-started/quickstart.md",key:"v-1c8e49b4",path:"/getting-started/quickstart.html",headers:[{level:3,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Sync Options",slug:"sync-options"}]},{title:"What is Gaia?",frontmatter:{description:"",order:1,title:"What is Gaia?"},regularPath:"/getting-started/what-is-gaia.html",relativePath:"getting-started/what-is-gaia.md",key:"v-606149c6",path:"/getting-started/what-is-gaia.html"},{title:"Governance Overview",frontmatter:{description:"",order:1,parent:{title:"Governance",order:6}},regularPath:"/governance/",relativePath:"governance/README.md",key:"v-66b4080b",path:"/governance/",headers:[{level:2,title:"Community",slug:"community"}]},{title:"On-Chain Proposal Process",frontmatter:{description:"",order:2},regularPath:"/governance/process.html",relativePath:"governance/process.md",key:"v-9ff0f970",path:"/governance/process.html",headers:[{level:2,title:"Governance Parameters",slug:"governance-parameters"},{level:2,title:"1. Deposit Period",slug:"_1-deposit-period"},{level:3,title:"Deposits",slug:"deposits"},{level:3,title:"Burned deposits",slug:"burned-deposits"},{level:2,title:"2. Voting Period",slug:"_2-voting-period"},{level:3,title:"What do the voting options mean?",slug:"what-do-the-voting-options-mean"},{level:3,title:"What determines whether or not a governance proposal passes?",slug:"what-determines-whether-or-not-a-governance-proposal-passes"},{level:3,title:"How is quorum determined?",slug:"how-is-quorum-determined"},{level:3,title:"How is voting tallied?",slug:"how-is-voting-tallied"}]},{title:"Proposal Types",frontmatter:{description:"",order:1,parent:{order:6}},regularPath:"/governance/proposal-types/",relativePath:"governance/proposal-types/README.md",key:"v-e4b2f83a",path:"/governance/proposal-types/",headers:[{level:2,title:"Drafting a Proposal",slug:"drafting-a-proposal"}]},{title:"Community Pool Spend",frontmatter:{description:"",order:3,parent:{order:1}},regularPath:"/governance/proposal-types/community-pool-spend.html",relativePath:"governance/proposal-types/community-pool-spend.md",key:"v-bf1b043c",path:"/governance/proposal-types/community-pool-spend.html",headers:[{level:2,title:"Learn About the Community Pool",slug:"learn-about-the-community-pool"},{level:3,title:"How is the Community Pool funded?",slug:"how-is-the-community-pool-funded"},{level:3,title:"How can funding for the Community Pool change?",slug:"how-can-funding-for-the-community-pool-change"},{level:3,title:"How much money is in the Community Pool?",slug:"how-much-money-is-in-the-community-pool"},{level:3,title:"How can funds from the Community Pool be spent?",slug:"how-can-funds-from-the-community-pool-be-spent"},{level:3,title:"How should funds from the Community Pool be spent?",slug:"how-should-funds-from-the-community-pool-be-spent"},{level:3,title:"How are funds disbursed after a community-spend proposal is passed?",slug:"how-are-funds-disbursed-after-a-community-spend-proposal-is-passed"},{level:2,title:"Why create a proposal to use Community Pool funds?",slug:"why-create-a-proposal-to-use-community-pool-funds"}]},{title:"Parameter Change",frontmatter:{description:"",order:4,parent:{order:1}},regularPath:"/governance/proposal-types/param-change.html",relativePath:"governance/proposal-types/param-change.md",key:"v-39316e24",path:"/governance/proposal-types/param-change.html",headers:[{level:2,title:"What parameters can be changed?",slug:"what-parameters-can-be-changed"},{level:2,title:"What are the current parameter values?",slug:"what-are-the-current-parameter-values"},{level:2,title:"Why create a parameter change proposal?",slug:"why-create-a-parameter-change-proposal"},{level:2,title:"Risks in parameter change proposals",slug:"risks-in-parameter-change-proposals"},{level:2,title:"Credits",slug:"credits"}]},{title:"`auth` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Auth.html",relativePath:"governance/proposal-types/params-change/Auth.md",key:"v-43a7e1f8",path:"/governance/proposal-types/params-change/Auth.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"MaxMemoCharacters",slug:"maxmemocharacters"},{level:3,title:"TxSigLimit",slug:"txsiglimit"},{level:3,title:"TxSizeCostPerByte",slug:"txsizecostperbyte"},{level:3,title:"SigVerifyCostED25519",slug:"sigverifycosted25519"},{level:3,title:"SigVerifyCostSecp256k1",slug:"sigverifycostsecp256k1"}]},{title:"`crisis` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Crisis.html",relativePath:"governance/proposal-types/params-change/Crisis.md",key:"v-4ac77b64",path:"/governance/proposal-types/params-change/Crisis.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"ConstantFee",slug:"constantfee"}]},{title:"`bank` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Bank.html",relativePath:"governance/proposal-types/params-change/Bank.md",key:"v-ff7fa248",path:"/governance/proposal-types/params-change/Bank.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"SendEnabled",slug:"sendenabled"}]},{title:"Index of Governable Parameters",frontmatter:{description:"",order:2},regularPath:"/governance/proposal-types/params-change/param-index.html",relativePath:"governance/proposal-types/params-change/param-index.md",key:"v-2758d5a0",path:"/governance/proposal-types/params-change/param-index.html",headers:[{level:2,title:"Querying on-chain parameters",slug:"querying-on-chain-parameters"},{level:2,title:"Current subspaces, keys, and values",slug:"current-subspaces-keys-and-values"}]},{title:"Text (Signaling)",frontmatter:{description:"",order:2,parent:{order:1}},regularPath:"/governance/proposal-types/text-prop.html",relativePath:"governance/proposal-types/text-prop.md",key:"v-6a4f1c80",path:"/governance/proposal-types/text-prop.html",headers:[{level:2,title:"What are signaling proposals currently used for?",slug:"what-are-signaling-proposals-currently-used-for"},{level:3,title:"A note on historical text proposals",slug:"a-note-on-historical-text-proposals"},{level:2,title:"Why make a signaling proposal?",slug:"why-make-a-signaling-proposal"},{level:2,title:"What happens when a signaling proposal passes?",slug:"what-happens-when-a-signaling-proposal-passes"}]},{title:"Cosmos Hub Inflation variable modification: Blocks Per Year",frontmatter:{description:""},regularPath:"/governance/proposals/2020-10-blocks-per-year/",relativePath:"governance/proposals/2020-10-blocks-per-year/README.md",key:"v-7431790b",path:"/governance/proposals/2020-10-blocks-per-year/"},{frontmatter:{description:""},regularPath:"/governance/proposals/2020-11-inflation-rate-change/",relativePath:"governance/proposals/2020-11-inflation-rate-change/README.md",key:"v-4b23576b",path:"/governance/proposals/2020-11-inflation-rate-change/"},{title:"Delay of Hub Stargate Upgrade",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-delay-stargate-upgrade/",relativePath:"governance/proposals/2021-01-delay-stargate-upgrade/README.md",key:"v-64792cc2",path:"/governance/proposals/2021-01-delay-stargate-upgrade/"},{title:"Enable IBC Transfers",frontmatter:{description:""},regularPath:"/governance/proposals/2021-03-enable-ibc-transfers/",relativePath:"governance/proposals/2021-03-enable-ibc-transfers/README.md",key:"v-725866d9",path:"/governance/proposals/2021-03-enable-ibc-transfers/",headers:[{level:2,title:"Security Model",slug:"security-model"},{level:2,title:"IBC",slug:"ibc"},{level:2,title:"Incentive Security Extensions",slug:"incentive-security-extensions"}]},{title:"ATOM 🤝 Osmosis: Allocate Community Pool to ATOM Liquidity Incentives",frontmatter:{description:""},regularPath:"/governance/proposals/2021-07-atom-liquidity-incentives/",relativePath:"governance/proposals/2021-07-atom-liquidity-incentives/README.md",key:"v-2dfd010b",path:"/governance/proposals/2021-07-atom-liquidity-incentives/"},{title:"Parameter change: lower minimum proposal deposit amount",frontmatter:{description:""},regularPath:"/governance/proposals/2021-04-lower-deposit-requirement/",relativePath:"governance/proposals/2021-04-lower-deposit-requirement/README.md",key:"v-230a9c4b",path:"/governance/proposals/2021-04-lower-deposit-requirement/",headers:[{level:2,title:"Summary",slug:"summary"},{level:2,title:"Objectives",slug:"objectives"},{level:2,title:"Background",slug:"background"},{level:2,title:"Proposers",slug:"proposers"},{level:2,title:"Proposed Parameter Change",slug:"proposed-parameter-change"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Alternatives",slug:"alternatives"},{level:2,title:"Governance Votes",slug:"governance-votes"}]},{title:"Proposals",frontmatter:{description:"",order:1,parent:{order:8}},regularPath:"/governance/proposals/",relativePath:"governance/proposals/README.md",key:"v-b8864dea",path:"/governance/proposals/"},{title:"⚛️ Make the Cosmos Hub the IBC Router ⚛️",frontmatter:{description:""},regularPath:"/governance/proposals/2021-09-hub-ibc-router/",relativePath:"governance/proposals/2021-09-hub-ibc-router/README.md",key:"v-37169a5a",path:"/governance/proposals/2021-09-hub-ibc-router/"},{title:"[Proposal][Draft] Proposal Title",frontmatter:{description:""},regularPath:"/governance/proposals/proposal-template.html",relativePath:"governance/proposals/proposal-template.md",key:"v-68a68850",path:"/governance/proposals/proposal-template.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Authors and Credit",slug:"authors-and-credit"},{level:2,title:"Status",slug:"status"},{level:2,title:"Proposal",slug:"proposal"},{level:2,title:"Context",slug:"context"},{level:2,title:"Governance Votes",slug:"governance-votes"},{level:2,title:"Conclusion",slug:"conclusion"},{level:2,title:"References",slug:"references"}]},{frontmatter:{description:""},regularPath:"/gtm-interchain.html",relativePath:"gtm-interchain.md",key:"v-768a4c68",path:"/gtm-interchain.html"},{title:"Cosmos Hub",frontmatter:{description:"",order:!1,parent:{order:1}},regularPath:"/hub-overview/",relativePath:"hub-overview/README.md",key:"v-780264ab",path:"/hub-overview/"},{title:"Introduction",frontmatter:{description:"",order:1,title:"Introduction"},regularPath:"/hub-overview/overview.html",relativePath:"hub-overview/overview.md",key:"v-ac3ab000",path:"/hub-overview/overview.html",headers:[{level:3,title:"v13 Upgrade",slug:"v13-upgrade"},{level:2,title:"The ATOM",slug:"the-atom"},{level:2,title:"Cosmos Hub Wallets",slug:"cosmos-hub-wallets"},{level:2,title:"Metamask Snaps",slug:"metamask-snaps"},{level:2,title:"Cosmos Hub Explorers",slug:"cosmos-hub-explorers"},{level:2,title:"Cosmos Hub CLI",slug:"cosmos-hub-cli"},{level:2,title:"Running a full-node on the Cosmos Hub Mainnet",slug:"running-a-full-node-on-the-cosmos-hub-mainnet"},{level:2,title:"Join the Community",slug:"join-the-community"}]},{title:"Gaia Tutorials",frontmatter:{description:"",order:!1,parent:{order:3}},regularPath:"/hub-tutorials/",relativePath:"hub-tutorials/README.md",key:"v-273748bf",path:"/hub-tutorials/"},{title:"Live Upgrade Tutorial",frontmatter:{description:"",order:6,title:"Upgrading the Chain"},regularPath:"/hub-tutorials/live-upgrade-tutorial.html",relativePath:"hub-tutorials/live-upgrade-tutorial.md",key:"v-51aac6a0",path:"/hub-tutorials/live-upgrade-tutorial.html"},{title:"Upgrade Your Node",frontmatter:{description:"",order:4,title:"Upgrading Your Node"},regularPath:"/hub-tutorials/upgrade-node.html",relativePath:"hub-tutorials/upgrade-node.md",key:"v-20bfb9fc",path:"/hub-tutorials/upgrade-node.html",headers:[{level:2,title:"Cosmovisor",slug:"cosmovisor"},{level:3,title:"Setup",slug:"setup"},{level:3,title:"Preparing an Upgrade",slug:"preparing-an-upgrade"},{level:2,title:"Manual Software Upgrade",slug:"manual-software-upgrade"},{level:2,title:"Upgrade Genesis File",slug:"upgrade-genesis-file"},{level:3,title:"Fetching from a Trusted Source",slug:"fetching-from-a-trusted-source"},{level:3,title:"Exporting State to a New Genesis Locally",slug:"exporting-state-to-a-new-genesis-locally"},{level:2,title:"Reset Data",slug:"reset-data"}]},{title:"Gaia Documentation",frontmatter:{description:""},regularPath:"/ko/",relativePath:"ko/README.md",key:"v-3169ddcb",path:"/ko/",headers:[{level:2,title:"코스모스 퍼블릭 테스트넷에 참가하세요",slug:"코스모스-퍼블릭-테스트넷에-참가하세요"},{level:2,title:"자체 gaia 테스트넷 세팅하기",slug:"자체-gaia-테스트넷-세팅하기"},{level:2,title:"추가 리소스",slug:"추가-리소스"}]},{frontmatter:{description:"",parent:{order:!1}},regularPath:"/images/",relativePath:"images/README.md",key:"v-414999cb",path:"/images/"},{frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/installation.html",relativePath:"ko/gaia-tutorials/installation.md",key:"v-15244044",path:"/ko/gaia-tutorials/installation.html",headers:[{level:2,title:"Gaia 설치하기",slug:"gaia-설치하기"},{level:3,title:"Go 설치하기",slug:"go-설치하기"},{level:3,title:"바이너리 설치하기",slug:"바이너리-설치하기"},{level:3,title:"빌드 태그",slug:"빌드-태그"},{level:3,title:"snap을 사용해 바이너리 설치하기 (리눅스에만 해당)",slug:"snap을-사용해-바이너리-설치하기-리눅스에만-해당"},{level:2,title:"개발자 워크플로우",slug:"개발자-워크플로우"},{level:3,title:"다음 절차",slug:"다음-절차"}]},{title:"Gaia는 무엇인가요?",frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/what-is-gaia.html",relativePath:"ko/gaia-tutorials/what-is-gaia.md",key:"v-77046140",path:"/ko/gaia-tutorials/what-is-gaia.html"},{title:"최신 퍼블릭 테스트넷에 참가하기",frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/join-testnet.html",relativePath:"ko/gaia-tutorials/join-testnet.md",key:"v-59c05d68",path:"/ko/gaia-tutorials/join-testnet.html",headers:[{level:2,title:"새로운 노드 세팅하기",slug:"새로운-노드-세팅하기"},{level:2,title:"과거 테스트넷에서 업그레이드 하기",slug:"과거-테스트넷에서-업그레이드-하기"},{level:3,title:"데이터 리셋",slug:"데이터-리셋"},{level:3,title:"소프트웨어 업그레이드",slug:"소프트웨어-업그레이드"},{level:2,title:"제네시스와 시드",slug:"제네시스와-시드"},{level:3,title:"제네시스 파일 복사하기",slug:"제네시스-파일-복사하기"},{level:3,title:"시드 노드 추가하기",slug:"시드-노드-추가하기"},{level:2,title:"풀노드 운영하기",slug:"풀노드-운영하기"},{level:2,title:"상태 내보내기(Export State)",slug:"상태-내보내기-export-state"},{level:2,title:"밸리데이터 노드로 업그레이드 하기",slug:"밸리데이터-노드로-업그레이드-하기"}]},{title:"Gaia 제네시스 상태",frontmatter:{description:""},regularPath:"/ko/genesis-state.html",relativePath:"ko/genesis-state.md",key:"v-1916440a",path:"/ko/genesis-state.html",headers:[{level:2,title:"계정(Accounts)",slug:"계정-accounts"}]},{title:"키",frontmatter:{description:""},regularPath:"/ko/keys.html",relativePath:"ko/keys.md",key:"v-25a92840",path:"/ko/keys.html"},{title:"글을 마무리 하며",frontmatter:{description:""},regularPath:"/ko/launch/blog-2-kr.html",relativePath:"ko/launch/blog-2-kr.md",key:"v-79b59060",path:"/ko/launch/blog-2-kr.html",headers:[{level:2,title:"메인넷 후 개발 로드맵과 유저들을 위한 필수 정보",slug:"메인넷-후-개발-로드맵과-유저들을-위한-필수-정보"}]},{title:"노드 업그레이드 하기",frontmatter:{description:""},regularPath:"/ko/upgrade-node.html",relativePath:"ko/upgrade-node.md",key:"v-5c94f8c0",path:"/ko/upgrade-node.html",headers:[{level:2,title:"소프트웨어 업그레이드",slug:"소프트웨어-업그레이드"},{level:2,title:"제네시스 파일 업그레이드하기",slug:"제네시스-파일-업그레이드하기"},{level:3,title:"신뢰하는 소스에서 받기",slug:"신뢰하는-소스에서-받기"},{level:3,title:"로컬 환경에서 새로운 제네시스 내보내기",slug:"로컬-환경에서-새로운-제네시스-내보내기"},{level:2,title:"데이터 리셋하기",slug:"데이터-리셋하기"},{level:2,title:"노드 다시 시작하기",slug:"노드-다시-시작하기"}]},{title:"HD 지갑",frontmatter:{description:""},regularPath:"/ko/resources/hd-wallets.html",relativePath:"ko/resources/hd-wallets.md",key:"v-aee924c0",path:"/ko/resources/hd-wallets.html"},{title:"검증인(밸리데이터) 개요",frontmatter:{description:""},regularPath:"/ko/validators/overview.html",relativePath:"ko/validators/overview.md",key:"v-3254b154",path:"/ko/validators/overview.html",headers:[{level:2,title:"소개",slug:"소개"},{level:2,title:"하드웨어",slug:"하드웨어"},{level:2,title:"웹사이트 세팅하기",slug:"웹사이트-세팅하기"},{level:2,title:"법적 검토",slug:"법적-검토"},{level:2,title:"검증인 커뮤니티",slug:"검증인-커뮤니티"}]},{frontmatter:{description:""},regularPath:"/ko/validators/security.html",relativePath:"ko/validators/security.md",key:"v-bfd7ad74",path:"/ko/validators/security.html",headers:[{level:2,title:"검증인 보안",slug:"검증인-보안"},{level:2,title:"키 관리 - HSM",slug:"키-관리-hsm"},{level:2,title:"센트리노드 (DDOS 방어)",slug:"센트리노드-ddos-방어"},{level:2,title:"환경 변수",slug:"환경-변수"}]},{title:"Migration Instructions",frontmatter:{description:"",order:!1,parent:{title:"Migration Instructions",order:9}},regularPath:"/migration/",relativePath:"migration/README.md",key:"v-45ad53dd",path:"/migration/"},{frontmatter:{description:"",parent:{order:!1}},regularPath:"/launch/",relativePath:"launch/README.md",key:"v-7b5c086b",path:"/launch/"},{title:"In Closing",frontmatter:{description:""},regularPath:"/launch/blog-2-en.html",relativePath:"launch/blog-2-en.md",key:"v-48a7c4e6",path:"/launch/blog-2-en.html",headers:[{level:2,title:"Post-Mainnet Development Roadmap & Expectations for Users",slug:"post-mainnet-development-roadmap-expectations-for-users"},{level:2,title:"State Reversions and Mainnet launch",slug:"state-reversions-and-mainnet-launch"}]},{title:"Gaia Modules",frontmatter:{description:""},regularPath:"/modules/",relativePath:"modules/README.md",key:"v-a3068aaa",path:"/modules/",headers:[{level:2,title:"New Modules in Rho V8",slug:"new-modules-in-rho-v8"}]},{title:"Resources",frontmatter:{description:"",order:!1,parent:{title:"Resources",order:8}},regularPath:"/resources/",relativePath:"resources/README.md",key:"v-071e366f",path:"/resources/"},{title:"Cosmos Hub Archives",frontmatter:{description:"",order:2,title:"Cosmos Hub Archives"},regularPath:"/resources/archives.html",relativePath:"resources/archives.md",key:"v-b9e98ed4",path:"/resources/archives.html",headers:[{level:3,title:"Big Dipper",slug:"big-dipper"}]},{title:"HD Wallets",frontmatter:{description:"",order:3,title:"HD Wallets"},regularPath:"/resources/hd-wallets.html",relativePath:"resources/hd-wallets.md",key:"v-7df08ab4",path:"/resources/hd-wallets.html"},{title:"The Cosmos Hub Roadmap",frontmatter:{description:""},regularPath:"/roadmap/cosmos-hub-roadmap-2.0.html",relativePath:"roadmap/cosmos-hub-roadmap-2.0.md",key:"v-0110ec16",path:"/roadmap/cosmos-hub-roadmap-2.0.html"},{title:"Build Gaia Deterministically",frontmatter:{description:"",order:5,title:"Building Gaia Deterministically"},regularPath:"/resources/reproducible-builds.html",relativePath:"resources/reproducible-builds.md",key:"v-0d07c820",path:"/resources/reproducible-builds.html",headers:[{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Build",slug:"build"}]},{title:"Validators",frontmatter:{description:"",order:!1,parent:{title:"Validators",order:5}},regularPath:"/validators/",relativePath:"validators/README.md",key:"v-79617eab",path:"/validators/"},{title:"KMS - Key Management System",frontmatter:{description:"",order:5},regularPath:"/validators/kms/kms.html",relativePath:"validators/kms/kms.md",key:"v-6d897402",path:"/validators/kms/kms.html",headers:[{level:2,title:"Building",slug:"building"},{level:2,title:"Configuration",slug:"configuration"},{level:3,title:"Using a YubiHSM",slug:"using-a-yubihsm"},{level:3,title:"Using a Ledger device running the Tendermint app",slug:"using-a-ledger-device-running-the-tendermint-app"}]},{title:"Setting up Tendermint KMS + Ledger",frontmatter:{description:"",order:6},regularPath:"/validators/kms/kms_ledger.html",relativePath:"validators/kms/kms_ledger.md",key:"v-37d38700",path:"/validators/kms/kms_ledger.html",headers:[{level:2,title:"Tendermint Validator app (for Ledger devices)",slug:"tendermint-validator-app-for-ledger-devices"},{level:2,title:"KMS configuration",slug:"kms-configuration"},{level:3,title:"Config file",slug:"config-file"},{level:3,title:"Generate secret key",slug:"generate-secret-key"},{level:3,title:"Retrieve validator key",slug:"retrieve-validator-key"},{level:2,title:"Gaia configuration",slug:"gaia-configuration"}]},{title:"Validators Overview",frontmatter:{description:"",order:1,title:"Overview"},regularPath:"/validators/overview.html",relativePath:"validators/overview.md",key:"v-4da7b8c0",path:"/validators/overview.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Hardware",slug:"hardware"},{level:2,title:"Create a Validator Website",slug:"create-a-validator-website"},{level:2,title:"Seek Legal Advice",slug:"seek-legal-advice"},{level:2,title:"Community",slug:"community"}]},{title:"Validator Security",frontmatter:{description:"",order:4,title:"Validator Security"},regularPath:"/validators/security.html",relativePath:"validators/security.md",key:"v-3bacdca0",path:"/validators/security.html",headers:[{level:2,title:"Key Management - HSM",slug:"key-management-hsm"},{level:2,title:"Sentry Nodes (DDOS Protection)",slug:"sentry-nodes-ddos-protection"},{level:2,title:"Environment Variables",slug:"environment-variables"}]},{title:"Running a Validator",frontmatter:{description:"",order:2,title:"Running a Validator"},regularPath:"/validators/validator-setup.html",relativePath:"validators/validator-setup.md",key:"v-c519eab8",path:"/validators/validator-setup.html",headers:[{level:2,title:"What is a Validator?",slug:"what-is-a-validator"},{level:2,title:"Create Your Validator",slug:"create-your-validator"},{level:2,title:"Edit Validator Description",slug:"edit-validator-description"},{level:2,title:"View Validator Description",slug:"view-validator-description"},{level:2,title:"Track Validator Signing Information",slug:"track-validator-signing-information"},{level:2,title:"Unjail Validator",slug:"unjail-validator"},{level:2,title:"Confirm Your Validator is Running",slug:"confirm-your-validator-is-running"},{level:2,title:"Halting Your Validator",slug:"halting-your-validator"},{level:2,title:"Advanced configuration",slug:"advanced-configuration"},{level:2,title:"Common Problems",slug:"common-problems"},{level:3,title:"Problem #1: My validator has voting_power: 0",slug:"problem-1-my-validator-has-voting-power-0"},{level:3,title:"Problem #2: My gaiad crashes because of too many open files",slug:"problem-2-my-gaiad-crashes-because-of-too-many-open-files"}]},{title:"gaia文档",frontmatter:{description:""},regularPath:"/zh/",relativePath:"zh/README.md",key:"v-1813a4ea",path:"/zh/",headers:[{level:2,title:"加入Cosmos Hub主网",slug:"加入cosmos-hub主网"},{level:2,title:"加入Cosmos Hub公共测试网",slug:"加入cosmos-hub公共测试网"},{level:2,title:"部署你自己的gaia测试网络",slug:"部署你自己的gaia测试网络"},{level:2,title:"额外资源",slug:"额外资源"}]},{frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/installation.html",relativePath:"zh/gaia-tutorials/installation.md",key:"v-4cbea1b0",path:"/zh/gaia-tutorials/installation.html",headers:[{level:2,title:"安装 Gaia",slug:"安装-gaia"},{level:3,title:"安装 Go",slug:"安装-go"},{level:3,title:"安装二进制执行程序",slug:"安装二进制执行程序"},{level:3,title:"接下来",slug:"接下来"}]},{frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/join-mainnet.html",relativePath:"zh/gaia-tutorials/join-mainnet.md",key:"v-ec326d3c",path:"/zh/gaia-tutorials/join-mainnet.html",headers:[{level:2,title:"加入主网",slug:"加入主网"},{level:2,title:"创建一个新节点",slug:"创建一个新节点"},{level:2,title:"Genesis & Seeds",slug:"genesis-seeds"},{level:3,title:"复制genesis文件",slug:"复制genesis文件"},{level:3,title:"添加种子节点",slug:"添加种子节点"},{level:2,title:"设置minimum-gas-prices",slug:"设置minimum-gas-prices"},{level:2,title:"运行一个全节点",slug:"运行一个全节点"},{level:2,title:"导出状态",slug:"导出状态"},{level:2,title:"升级成为验证人节点",slug:"升级成为验证人节点"}]},{title:"加入公共测试网",frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/join-testnet.html",relativePath:"zh/gaia-tutorials/join-testnet.md",key:"v-dd4a8258",path:"/zh/gaia-tutorials/join-testnet.html",headers:[{level:2,title:"创建一个新节点",slug:"创建一个新节点"},{level:2,title:"升级之前的 Testnet",slug:"升级之前的-testnet"},{level:3,title:"重置数据",slug:"重置数据"},{level:3,title:"升级软件",slug:"升级软件"}]},{title:"Gaia是什么",frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/what-is-gaia.html",relativePath:"zh/gaia-tutorials/what-is-gaia.md",key:"v-07cf9e68",path:"/zh/gaia-tutorials/what-is-gaia.html"},{title:"Gaia 创世状态(Genesis State)",frontmatter:{description:""},regularPath:"/zh/genesis-state.html",relativePath:"zh/genesis-state.md",key:"v-5c30b8f6",path:"/zh/genesis-state.html",headers:[{level:2,title:"账户(Accounts)",slug:"账户-accounts"}]},{title:"**Cosmos主网上线三部曲**",frontmatter:{description:""},regularPath:"/zh/launch/blog-2-cn.html",relativePath:"zh/launch/blog-2-cn.md",key:"v-a4aa1cc0",path:"/zh/launch/blog-2-cn.html",headers:[{level:2,title:"🚨第一阶段:网络逐步趋于稳定🚨",slug:"🚨第一阶段-网络逐步趋于稳定🚨"},{level:2,title:"第二阶段:链上交易开启",slug:"第二阶段-链上交易开启"},{level:2,title:"第三阶段:启用IBC协议",slug:"第三阶段-启用ibc协议"},{level:2,title:"验证人提示: 提交您的主网gentx文件",slug:"验证人提示-提交您的主网gentx文件"},{level:2,title:"总结",slug:"总结"}]},{title:"Ledger Nano支持",frontmatter:{description:""},regularPath:"/zh/resources/ledger.html",relativePath:"zh/resources/ledger.md",key:"v-621d6140",path:"/zh/resources/ledger.html",headers:[{level:2,title:"关于HD钱包",slug:"关于hd钱包"},{level:2,title:"Ledger支持HD钱包",slug:"ledger支持hd钱包"}]},{title:"验证人概览",frontmatter:{description:""},regularPath:"/zh/validators/overview.html",relativePath:"zh/validators/overview.md",key:"v-f2b0d680",path:"/zh/validators/overview.html",headers:[{level:2,title:"介绍",slug:"介绍"},{level:2,title:"硬件",slug:"硬件"},{level:2,title:"创建一个网站",slug:"创建一个网站"},{level:2,title:"寻求法律建议",slug:"寻求法律建议"},{level:2,title:"社区",slug:"社区"}]},{title:"在主网上运行一个验证人",frontmatter:{description:""},regularPath:"/zh/validators/validator-setup.html",relativePath:"zh/validators/validator-setup.md",key:"v-feb36d80",path:"/zh/validators/validator-setup.html",headers:[{level:2,title:"什么是验证人?",slug:"什么是验证人"},{level:2,title:"创建你的验证人",slug:"创建你的验证人"},{level:2,title:"以初始验证人的形式加入到genesis文件",slug:"以初始验证人的形式加入到genesis文件"},{level:2,title:"编辑验证人的描述信息",slug:"编辑验证人的描述信息"},{level:2,title:"查看验证人的描述信息",slug:"查看验证人的描述信息"},{level:2,title:"跟踪验证人的签名信息",slug:"跟踪验证人的签名信息"},{level:2,title:"unjail验证人",slug:"unjail验证人"},{level:2,title:"确认你的验证人节点正在运行",slug:"确认你的验证人节点正在运行"},{level:2,title:"常见问题",slug:"常见问题"},{level:3,title:"问题 #1 : 我的验证人的voting_power: 0",slug:"问题-1-我的验证人的voting-power-0"},{level:3,title:"问题 #2 : 我的gaiad由于too many open files而崩溃",slug:"问题-2-我的gaiad由于too-many-open-files而崩溃"}]},{title:"验证人安全",frontmatter:{description:""},regularPath:"/zh/validators/security.html",relativePath:"zh/validators/security.md",key:"v-1731e69c",path:"/zh/validators/security.html",headers:[{level:2,title:"密钥管理 - HSM",slug:"密钥管理-hsm"},{level:2,title:"哨兵节点(DDOS防御)",slug:"哨兵节点-ddos防御"},{level:2,title:"环境变量",slug:"环境变量"}]},{title:"ADR 002: Globalfee Module",frontmatter:{description:""},regularPath:"/architecture/adr-002-globalfee.html",relativePath:"architecture/adr-002-globalfee.md",key:"v-8fd705a0",path:"/architecture/adr-002-globalfee.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Status",slug:"status"},{level:2,title:"Context",slug:"context"},{level:2,title:"Decision",slug:"decision"},{level:3,title:"ZeroCoins in MinimumGasPricesParam",slug:"zerocoins-in-minimumgaspricesparam"},{level:3,title:"Bypass Message Types",slug:"bypass-message-types"},{level:3,title:"Fee Checks in DeliverTx",slug:"fee-checks-in-delivertx"},{level:2,title:"Consequences",slug:"consequences"},{level:3,title:"Positive",slug:"positive"},{level:3,title:"Negative",slug:"negative"},{level:2,title:"References",slug:"references"}]},{title:"Delegator FAQ",frontmatter:{description:"",order:2,title:"Delegator FAQ"},regularPath:"/delegators/delegator-faq.html",relativePath:"delegators/delegator-faq.md",key:"v-f385361c",path:"/delegators/delegator-faq.html",headers:[{level:2,title:"What is a delegator?",slug:"what-is-a-delegator"},{level:2,title:"Choosing a validator",slug:"choosing-a-validator"},{level:2,title:"Directives of delegators",slug:"directives-of-delegators"},{level:2,title:"Revenue",slug:"revenue"},{level:2,title:"Validator Commission",slug:"validator-commission"},{level:2,title:"Liquid Staking",slug:"liquid-staking"},{level:3,title:"Toggling the ability to tokenize shares",slug:"toggling-the-ability-to-tokenize-shares"},{level:2,title:"Risks",slug:"risks"}]},{title:"Delegator Security",frontmatter:{description:"",order:3,title:"Delegator Security"},regularPath:"/delegators/delegator-security.html",relativePath:"delegators/delegator-security.md",key:"v-39ba7ec0",path:"/delegators/delegator-security.html",headers:[{level:2,title:"Social Engineering",slug:"social-engineering"},{level:2,title:"Key Management",slug:"key-management"},{level:2,title:"Software Vulnerabilities",slug:"software-vulnerabilities"},{level:2,title:"Verifying Transactions",slug:"verifying-transactions"},{level:2,title:"Account Security",slug:"account-security"},{level:2,title:"Supply Chain Attacks",slug:"supply-chain-attacks"},{level:2,title:"Disclaimer",slug:"disclaimer"}]},{title:"Únase a la red principal del Cosmos Hub",frontmatter:{description:"",order:3},regularPath:"/es/gaia-tutorials/join-mainnet.html",relativePath:"es/gaia-tutorials/join-mainnet.md",key:"v-b0f4e33c",path:"/es/gaia-tutorials/join-mainnet.html",headers:[{level:2,title:"Configurando un nuevo nodo",slug:"configurando-un-nuevo-nodo"},{level:2,title:"Génesis y semillas",slug:"genesis-y-semillas"},{level:3,title:"Copie el archivo génesis",slug:"copie-el-archivo-genesis"},{level:3,title:"Añada los nodos semilla",slug:"anada-los-nodos-semilla"},{level:2,title:"Nota sobre el Fee y el Gas",slug:"nota-sobre-el-fee-y-el-gas"},{level:2,title:"Establezca minimum-gas-prices",slug:"establezca-minimum-gas-prices"},{level:2,title:"Reducción del Estado",slug:"reduccion-del-estado"},{level:2,title:"Ejecute un nodo completo",slug:"ejecute-un-nodo-completo"},{level:2,title:"Exportar el estado",slug:"exportar-el-estado"},{level:2,title:"Verifica la red principal",slug:"verifica-la-red-principal"},{level:2,title:"Actualice a un nodo validador",slug:"actualice-a-un-nodo-validador"}]},{title:"Off-Chain Proposal Process",frontmatter:{description:"",order:3},regularPath:"/governance/best-practices.html",relativePath:"governance/best-practices.md",key:"v-27ea8460",path:"/governance/best-practices.html",headers:[{level:2,title:"Engage directly with the voting community and seek feedback",slug:"engage-directly-with-the-voting-community-and-seek-feedback"},{level:2,title:"Stage 1: Your Idea",slug:"stage-1-your-idea"},{level:3,title:"Not yet confident about your idea?",slug:"not-yet-confident-about-your-idea"},{level:3,title:"Confident with your idea?",slug:"confident-with-your-idea"},{level:3,title:"Are you ready to draft a governance proposal?",slug:"are-you-ready-to-draft-a-governance-proposal"},{level:2,title:"Stage 2: Your Draft Proposal",slug:"stage-2-your-draft-proposal"},{level:3,title:"Proposal Elements",slug:"proposal-elements"},{level:3,title:"Begin with a well-considered draft proposal",slug:"begin-with-a-well-considered-draft-proposal"},{level:3,title:"Engage the community with your draft proposal",slug:"engage-the-community-with-your-draft-proposal"},{level:3,title:"Submit your proposal to the testnet",slug:"submit-your-proposal-to-the-testnet"},{level:2,title:"Stage 3: Your On-Chain Proposal",slug:"stage-3-your-on-chain-proposal"},{level:3,title:"The Deposit Period",slug:"the-deposit-period"},{level:3,title:"The Voting Period",slug:"the-voting-period"}]},{title:"Formatting a Proposal",frontmatter:{description:"",order:4},regularPath:"/governance/formatting.html",relativePath:"governance/formatting.md",key:"v-fd3648c0",path:"/governance/formatting.html",headers:[{level:2,title:"Text",slug:"text"},{level:3,title:"Real example",slug:"real-example"},{level:2,title:"Community Pool Spend",slug:"community-pool-spend"},{level:3,title:"Real example",slug:"real-example-2"},{level:2,title:"Param Change",slug:"param-change"},{level:3,title:"Real example",slug:"real-example-3"}]},{title:"`distribution` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Distribution.html",relativePath:"governance/proposal-types/params-change/Distribution.md",key:"v-7cd69f68",path:"/governance/proposal-types/params-change/Distribution.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"communitytax",slug:"communitytax"},{level:3,title:"baseproposerreward",slug:"baseproposerreward"},{level:3,title:"bonusproposerreward",slug:"bonusproposerreward"},{level:3,title:"withdrawaddrenabled",slug:"withdrawaddrenabled"},{level:2,title:"Known Bug",slug:"known-bug"}]},{title:"`gov` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Governance.html",relativePath:"governance/proposal-types/params-change/Governance.md",key:"v-6c706790",path:"/governance/proposal-types/params-change/Governance.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"depositparams",slug:"depositparams"},{level:3,title:"votingparams",slug:"votingparams"},{level:3,title:"tallyparams",slug:"tallyparams"}]},{title:"`mint` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Mint.html",relativePath:"governance/proposal-types/params-change/Mint.md",key:"v-80c733e0",path:"/governance/proposal-types/params-change/Mint.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"MintDenom",slug:"mintdenom"},{level:3,title:"InflationRateChange",slug:"inflationratechange"},{level:3,title:"InflationMax",slug:"inflationmax"},{level:3,title:"InflationMin",slug:"inflationmin"},{level:3,title:"GoalBonded",slug:"goalbonded"},{level:3,title:"BlocksPerYear",slug:"blocksperyear"}]},{title:"`slashing` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Slashing.html",relativePath:"governance/proposal-types/params-change/Slashing.md",key:"v-16a2b68a",path:"/governance/proposal-types/params-change/Slashing.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"SignedBlocksWindow",slug:"signedblockswindow"},{level:3,title:"MinSignedPerWindow",slug:"minsignedperwindow"},{level:3,title:"DowntimeJailDuration",slug:"downtimejailduration"},{level:3,title:"SlashFractionDoubleSign",slug:"slashfractiondoublesign"},{level:3,title:"SlashFractionDowntime",slug:"slashfractiondowntime"},{level:3,title:"MaxEvidenceAge",slug:"maxevidenceage"}]},{title:"`staking` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Staking.html",relativePath:"governance/proposal-types/params-change/Staking.md",key:"v-405c4ac0",path:"/governance/proposal-types/params-change/Staking.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"UnbondingTime",slug:"unbondingtime"},{level:2,title:"MaxValidators",slug:"maxvalidators"},{level:3,title:"KeyMaxEntries",slug:"keymaxentries"},{level:3,title:"Notes",slug:"notes-3"},{level:3,title:"BondDenom",slug:"bonddenom"},{level:3,title:"HistoricalEntries",slug:"historicalentries"}]},{title:"Proposal 34: Luna Mission - Funding $ATOM",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-atom2021_marketing/",relativePath:"governance/proposals/2021-01-atom2021_marketing/README.md",key:"v-5d13e021",path:"/governance/proposals/2021-01-atom2021_marketing/"},{title:"Stargate Upgrade- Second time is a charm",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-stargate-upgrade-b/",relativePath:"governance/proposals/2021-01-stargate-upgrade-b/README.md",key:"v-23577189",path:"/governance/proposals/2021-01-stargate-upgrade-b/",headers:[{level:2,title:"by Iqlusion",slug:"by-iqlusion"},{level:2,title:"Key Results",slug:"key-results"},{level:2,title:"Context",slug:"context"},{level:3,title:"Aborting of Proposal 35",slug:"aborting-of-proposal-35"},{level:2,title:"The Stargate Plan",slug:"the-stargate-plan"},{level:2,title:"Stargate Plan Results",slug:"stargate-plan-results"},{level:3,title:"1. Ecoystem Participation",slug:"_1-ecoystem-participation"},{level:3,title:"2. Critical Partner Support",slug:"_2-critical-partner-support"},{level:3,title:"3. Documentation and Self-Certification",slug:"_3-documentation-and-self-certification"},{level:3,title:"Conclusion",slug:"conclusion"},{level:3,title:"Cosmos Stargate Integration Success",slug:"cosmos-stargate-integration-success"},{level:2,title:"Prop 29",slug:"prop-29"},{level:2,title:"Stargate Upgrade Steps",slug:"stargate-upgrade-steps"},{level:2,title:"Time of the Upgrade",slug:"time-of-the-upgrade"},{level:2,title:"The git commit of Gaia that we are upgrading to",slug:"the-git-commit-of-gaia-that-we-are-upgrading-to"},{level:2,title:"What we're doing while voting is happening",slug:"what-we-re-doing-while-voting-is-happening"},{level:2,title:"What is the upgrade abort process",slug:"what-is-the-upgrade-abort-process"}]},{title:"Cosmos Stargate Hub Upgrade Proposal 2: Time to Upgrade",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-stargate-upgrade/",relativePath:"governance/proposals/2021-01-stargate-upgrade/README.md",key:"v-183e9cb3",path:"/governance/proposals/2021-01-stargate-upgrade/",headers:[{level:2,title:"by Iqlusion",slug:"by-iqlusion"},{level:2,title:"Key Results",slug:"key-results"},{level:2,title:"Context",slug:"context"},{level:2,title:"The Stargate Plan",slug:"the-stargate-plan"},{level:2,title:"Stargate Plan Results",slug:"stargate-plan-results"},{level:3,title:"1. Ecoystem Participation",slug:"_1-ecoystem-participation"},{level:3,title:"2. Critical Partner Support",slug:"_2-critical-partner-support"},{level:3,title:"3. Documentation and Self-Certification",slug:"_3-documentation-and-self-certification"},{level:3,title:"Conclusion",slug:"conclusion"},{level:3,title:"Cosmos Stargate Integration Success",slug:"cosmos-stargate-integration-success"},{level:2,title:"Prop 29",slug:"prop-29"},{level:2,title:"Stargate Upgrade Steps",slug:"stargate-upgrade-steps"},{level:2,title:"Time of the Upgrade",slug:"time-of-the-upgrade"},{level:2,title:"The git commit of Gaia that we are upgrading to",slug:"the-git-commit-of-gaia-that-we-are-upgrading-to"},{level:2,title:"What we're doing while voting is happening",slug:"what-we-re-doing-while-voting-is-happening"},{level:2,title:"What is the upgrade abort process",slug:"what-is-the-upgrade-abort-process"}]},{title:"Advancing Ethermint - Governance Proposal: GTM and Engineering Plan for the Ethermint Chain",frontmatter:{description:""},regularPath:"/governance/proposals/2021-04-advancing-ethermint/",relativePath:"governance/proposals/2021-04-advancing-ethermint/README.md",key:"v-b74fdc6a",path:"/governance/proposals/2021-04-advancing-ethermint/",headers:[{level:3,title:"Author",slug:"author"},{level:2,title:"Summary",slug:"summary"},{level:2,title:"Governance Votes",slug:"governance-votes"},{level:2,title:"Multisig and release of funds",slug:"multisig-and-release-of-funds"},{level:2,title:"Product commitment",slug:"product-commitment"},{level:3,title:"Hard Commitments",slug:"hard-commitments"},{level:2,title:"Soft Commitments",slug:"soft-commitments"},{level:2,title:"Conclusion",slug:"conclusion"}]},{title:"Signaling Proposal - Deployment of Gravity Bridge on the Cosmos Hub",frontmatter:{description:""},regularPath:"/governance/proposals/2021-05-gravity-bridge-deployment/",relativePath:"governance/proposals/2021-05-gravity-bridge-deployment/README.md",key:"v-2e2517eb",path:"/governance/proposals/2021-05-gravity-bridge-deployment/",headers:[{level:2,title:"Summary",slug:"summary"},{level:2,title:"Vision",slug:"vision"},{level:2,title:"Cosmos, Ethereum, and Gravity",slug:"cosmos-ethereum-and-gravity"},{level:2,title:"How do validators support the Gravity Bridge?",slug:"how-do-validators-support-the-gravity-bridge"},{level:3,title:"Cosmos to Ethereum:",slug:"cosmos-to-ethereum"},{level:3,title:"Ethereum to Cosmos:",slug:"ethereum-to-cosmos"},{level:3,title:"Slashing Conditions Spec",slug:"slashing-conditions-spec"},{level:2,title:"How does it work?",slug:"how-does-it-work"},{level:3,title:"Gravity.sol",slug:"gravity-sol"},{level:3,title:"Gravity Cosmos Module",slug:"gravity-cosmos-module"},{level:3,title:"Orchestrator",slug:"orchestrator"},{level:3,title:"Market of Relayers",slug:"market-of-relayers"},{level:2,title:"Security assumptions",slug:"security-assumptions"},{level:2,title:"Ongoing work",slug:"ongoing-work"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Audit:",slug:"audit"},{level:3,title:"Conclusion:",slug:"conclusion"},{level:2,title:"Proposers",slug:"proposers"},{level:2,title:"Governance Votes",slug:"governance-votes"},{level:2,title:"Appendix",slug:"appendix"},{level:3,title:"FAQ",slug:"faq"},{level:3,title:"Is running the Gravity Module difficult for Cosmos Validators?",slug:"is-running-the-gravity-module-difficult-for-cosmos-validators"},{level:3,title:"Is the Gravity bridge secure?",slug:"is-the-gravity-bridge-secure"},{level:3,title:"Are slashing conditions a problem for validators?",slug:"are-slashing-conditions-a-problem-for-validators"},{level:3,title:"What about peg zones?",slug:"what-about-peg-zones"},{level:3,title:"Why not use IBC to create a bridge to Ethereum?",slug:"why-not-use-ibc-to-create-a-bridge-to-ethereum"}]},{title:"Proposal 46: Extend Luna Mission to Fund ATOM Marketing",frontmatter:{description:""},regularPath:"/governance/proposals/2021-04-prop34-continuation/",relativePath:"governance/proposals/2021-04-prop34-continuation/README.md",key:"v-bd8534ea",path:"/governance/proposals/2021-04-prop34-continuation/",headers:[{level:2,title:"PROPOSAL 46 REQUEST:",slug:"proposal-46-request"},{level:2,title:"SECTION I OVERVIEW",slug:"section-i-overview"},{level:3,title:"Spend Overview",slug:"spend-overview"},{level:2,title:"SECTION II - HISTORY",slug:"section-ii-history"},{level:2,title:"SECTION III - DELIVERABLES",slug:"section-iii-deliverables"},{level:2,title:"SECTION IV - Public Relations",slug:"section-iv-public-relations"},{level:2,title:"SECTION V - MEME Competition 2021",slug:"section-v-meme-competition-2021"}]},{title:"Submitting a Proposal",frontmatter:{description:"",order:5},regularPath:"/governance/submitting.html",relativePath:"governance/submitting.md",key:"v-69e7af00",path:"/governance/submitting.html",headers:[{level:2,title:"Hosting supplementary materials",slug:"hosting-supplementary-materials"},{level:2,title:"Formatting the JSON file for the governance proposal",slug:"formatting-the-json-file-for-the-governance-proposal"},{level:2,title:"Sending the transaction that submits your governance proposal",slug:"sending-the-transaction-that-submits-your-governance-proposal"},{level:3,title:"Walkthrough example",slug:"walkthrough-example"},{level:3,title:"Verifying your transaction",slug:"verifying-your-transaction"},{level:3,title:"Troubleshooting a failed transaction",slug:"troubleshooting-a-failed-transaction"},{level:3,title:"Depositing funds after a proposal has been submitted",slug:"depositing-funds-after-a-proposal-has-been-submitted"},{level:3,title:"Submitting your proposal to the testnet",slug:"submitting-your-proposal-to-the-testnet"}]},{title:"Join the Cosmos Hub Public Testnet",frontmatter:{description:"",order:3,title:"Joining Testnet"},regularPath:"/hub-tutorials/join-testnet.html",relativePath:"hub-tutorials/join-testnet.md",key:"v-4aec61d8",path:"/hub-tutorials/join-testnet.html",headers:[{level:2,title:"Background",slug:"background"},{level:3,title:"Version History",slug:"version-history"},{level:2,title:"How to Join",slug:"how-to-join"},{level:2,title:"Sync Options",slug:"sync-options"},{level:2,title:"Step-by-Step Setup",slug:"step-by-step-setup"},{level:3,title:"Build Tools",slug:"build-tools"},{level:3,title:"Installation & Configuration",slug:"installation-configuration"},{level:3,title:"Cosmovisor Setup (Optional)",slug:"cosmovisor-setup-optional"},{level:3,title:"Create Service File",slug:"create-service-file"},{level:3,title:"Start the Service",slug:"start-the-service"},{level:2,title:"Create a Validator (Optional)",slug:"create-a-validator-optional"},{level:2,title:"Upgrading Your Node",slug:"upgrading-your-node"}]},{title:"최신 퍼블릭 테스트넷에 참가하기",frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/join-mainnet.html",relativePath:"ko/gaia-tutorials/join-mainnet.md",key:"v-524c67f6",path:"/ko/gaia-tutorials/join-mainnet.html",headers:[{level:2,title:"새로운 노드 세팅하기",slug:"새로운-노드-세팅하기"},{level:2,title:"제네시스와 시드",slug:"제네시스와-시드"},{level:3,title:"제네시스 파일 복사하기",slug:"제네시스-파일-복사하기"},{level:3,title:"시드 노드 추가하기",slug:"시드-노드-추가하기"},{level:3,title:"가스와 수수료에 대해서",slug:"가스와-수수료에-대해서"},{level:2,title:"최소 가스 가격(minimum-gas-prices) 설정하기",slug:"최소-가스-가격-minimum-gas-prices-설정하기"},{level:2,title:"풀노드 운영하기",slug:"풀노드-운영하기"},{level:2,title:"상태 내보내기(Export State)",slug:"상태-내보내기-export-state"},{level:2,title:"메인넷 검증하기",slug:"메인넷-검증하기"},{level:2,title:"검증인 노드로 업그레이드 하기",slug:"검증인-노드로-업그레이드-하기"}]},{title:"코스모스 허브 메인넷의 시작",frontmatter:{description:""},regularPath:"/ko/launch/blog-1-kr.html",relativePath:"ko/launch/blog-1-kr.md",key:"v-5d40e180",path:"/ko/launch/blog-1-kr.html",headers:[{level:2,title:"런칭을 위해 남은 마일스톤",slug:"런칭을-위해-남은-마일스톤"},{level:3,title:"5: 코스모스 SDK 보안 감사 ✔",slug:"_5-코스모스-sdk-보안-감사-✔"},{level:3,title:"4: 코스모스 SDK 기능 동결 (feature freeze)",slug:"_4-코스모스-sdk-기능-동결-feature-freeze"},{level:3,title:"3: 게임 오브 스테이크 완료",slug:"_3-게임-오브-스테이크-완료"},{level:3,title:"2: 제네시스 트랜잭션 모으기",slug:"_2-제네시스-트랜잭션-모으기"},{level:3,title:"1: 코스모스 허브 메인넷 런칭 🔥 🚀 🌔🔥",slug:"_1-코스모스-허브-메인넷-런칭-🔥-🚀-🌔🔥"},{level:2,title:"공식 코스모스 소통 채널",slug:"공식-코스모스-소통-채널"},{level:2,title:"메인넷 런칭때 안전할 수 있는 방법은?",slug:"메인넷-런칭때-안전할-수-있는-방법은"},{level:2,title:"다음은 코스모스 메인넷 런칭 준비 유의사항입니다",slug:"다음은-코스모스-메인넷-런칭-준비-유의사항입니다"}]},{title:"지원",frontmatter:{description:""},regularPath:"/ko/resources/ledger.html",relativePath:"ko/resources/ledger.md",key:"v-4251c2a0",path:"/ko/resources/ledger.html",headers:[{level:2,title:"Gaia CLI + Ledger Nano",slug:"gaia-cli-ledger-nano"},{level:3,title:"시작하기 전에",slug:"시작하기-전에"},{level:3,title:"렛저 키 추가하기",slug:"렛저-키-추가하기"},{level:3,title:"주소 확인하기",slug:"주소-확인하기"},{level:3,title:"풀노드에 연결하기",slug:"풀노드에-연결하기"},{level:3,title:"트랜잭션 서명하기",slug:"트랜잭션-서명하기"},{level:3,title:"자산 받기",slug:"자산-받기"},{level:3,title:"추가 참고 문서",slug:"추가-참고-문서"},{level:3,title:"기기 연결하기",slug:"기기-연결하기"},{level:3,title:"주소 확인하기",slug:"주소-확인하기-2"}]},{title:"퍼블릭 테스트넷에서 밸리데이터 운영하기",frontmatter:{description:""},regularPath:"/ko/validators/validator-setup.html",relativePath:"ko/validators/validator-setup.md",key:"v-63a66800",path:"/ko/validators/validator-setup.html",headers:[{level:2,title:"밸리데이터란 무엇인가?",slug:"밸리데이터란-무엇인가"},{level:2,title:"밸리데이터 생성하기",slug:"밸리데이터-생성하기"},{level:2,title:"밸리데이터로써 제네시스 참가하기",slug:"밸리데이터로써-제네시스-참가하기"},{level:3,title:"제네시스 파일 복사, 제네시스 트랜잭션 처리하기",slug:"제네시스-파일-복사-제네시스-트랜잭션-처리하기"},{level:2,title:"검증인 설명 수정하기",slug:"검증인-설명-수정하기"},{level:2,title:"밸리데이터 설명 확인하기",slug:"밸리데이터-설명-확인하기"},{level:2,title:"밸리데이터 서명 정보 추적하기",slug:"밸리데이터-서명-정보-추적하기"},{level:2,title:"밸리데이터 석방(Unjail)하기",slug:"밸리데이터-석방-unjail-하기"},{level:2,title:"밸리데이터 작동상태 확인",slug:"밸리데이터-작동상태-확인"},{level:2,title:"흔히 발생하는 문제들",slug:"흔히-발생하는-문제들"},{level:3,title:"문제 #1: 내 검증인의 보팅 파워가 0 입니다",slug:"문제-1-내-검증인의-보팅-파워가-0-입니다"},{level:3,title:"문제 #2: too many open files때문에 gaiad가 강제 종료됩니다",slug:"문제-2-too-many-open-files때문에-gaiad가-강제-종료됩니다"}]},{title:"Cosmos Hub to Launch Mainnet",frontmatter:{description:""},regularPath:"/launch/blog-1-en.html",relativePath:"launch/blog-1-en.md",key:"v-e9d91d38",path:"/launch/blog-1-en.html",headers:[{level:2,title:"Pre-launch Dependencies & How to Safely Claim Your Atoms",slug:"pre-launch-dependencies-how-to-safely-claim-your-atoms"},{level:2,title:"Remaining Milestones for Launch",slug:"remaining-milestones-for-launch"},{level:3,title:"5 Cosmos-SDK Security Audits ✔",slug:"_5-cosmos-sdk-security-audits-✔"},{level:3,title:"4 Cosmos SDK Feature Freeze",slug:"_4-cosmos-sdk-feature-freeze"},{level:3,title:"3 Game of Stakes Completed",slug:"_3-game-of-stakes-completed"},{level:3,title:"2 Genesis Transactions Collected",slug:"_2-genesis-transactions-collected"},{level:3,title:"1 Cosmos Hub Mainnet Launch",slug:"_1-cosmos-hub-mainnet-launch"},{level:2,title:"Official Cosmos Communication Channels",slug:"official-cosmos-communication-channels"},{level:2,title:"Staying Safe (and Secure!) for Mainnet Launch",slug:"staying-safe-and-secure-for-mainnet-launch"}]},{title:"State Sync",frontmatter:{description:"",order:!1},regularPath:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html",relativePath:"migration/cosmoshub-3/cosmoshub-3[ES_es].md",key:"v-78add710",path:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html",headers:[{level:2,title:"Preliminares",slug:"preliminares"},{level:2,title:"Principales actualizaciones",slug:"principales-actualizaciones"},{level:2,title:"Riesgos",slug:"riesgos"},{level:2,title:"Recuperación",slug:"recuperacion"},{level:2,title:"Procedimiento de actualización",slug:"procedimiento-de-actualizacion"},{level:2,title:"Notas para los proveedores de servicios",slug:"notas-para-los-proveedores-de-servicios"}]},{title:"Cosmos Hub 2 Upgrade Instructions",frontmatter:{description:"",title:"Cosmos Hub 2 Upgrade",order:6},regularPath:"/migration/cosmoshub-2/cosmoshub-2.html",relativePath:"migration/cosmoshub-2/cosmoshub-2.md",key:"v-d8722040",path:"/migration/cosmoshub-2/cosmoshub-2.html",headers:[{level:2,title:"Preliminary",slug:"preliminary"},{level:2,title:"Major Updates",slug:"major-updates"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Recovery",slug:"recovery"},{level:2,title:"Upgrade Procedure",slug:"upgrade-procedure"},{level:2,title:"Notes for Service Providers",slug:"notes-for-service-providers"}]},{title:"스테이트 싱크",frontmatter:{description:"",order:!1},regularPath:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html",relativePath:"migration/cosmoshub-3/cosmoshub-3[KR_kr].md",key:"v-3a6c3c60",path:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html",headers:[{level:2,title:"사전 정보",slug:"사전-정보"},{level:2,title:"주요 업데이트",slug:"주요-업데이트"},{level:2,title:"위험 고지",slug:"위험-고지"},{level:2,title:"복구",slug:"복구"},{level:2,title:"업그레이드",slug:"업그레이드"},{level:2,title:"서비스 제공자를 위한 정보",slug:"서비스-제공자를-위한-정보"}]},{title:"Cosmos Hub 4, Delta Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Delta Upgrade",order:1},regularPath:"/migration/cosmoshub-4-delta-upgrade.html",relativePath:"migration/cosmoshub-4-delta-upgrade.md",key:"v-76ff3f40",path:"/migration/cosmoshub-4-delta-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place July 12, 2021",slug:"upgrade-will-take-place-july-12-2021"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Public testnet",slug:"public-testnet"},{level:3,title:"Current runtime, cosmoshub-4 (pre-Delta upgrade) is running Gaia v4.2.1",slug:"current-runtime-cosmoshub-4-pre-delta-upgrade-is-running-gaia-v4-2-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-Delta upgrade) will run Gaia v5.0.0",slug:"target-runtime-cosmoshub-4-post-delta-upgrade-will-run-gaia-v5-0-0"},{level:2,title:"Delta upgrade steps",slug:"delta-upgrade-steps"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"FAQ",slug:"faq"}]},{title:"Cosmos Hub 4, v10 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, v10 Upgrade",order:6},regularPath:"/migration/cosmoshub-4-v10-upgrade.html",relativePath:"migration/cosmoshub-4-v10-upgrade.md",key:"v-69a7e640",path:"/migration/cosmoshub-4-v10-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v10 upgrade) is running Gaia v9.1.1",slug:"current-runtime-cosmoshub-4-pre-v10-upgrade-is-running-gaia-v9-1-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-v10 upgrade) will run Gaia v10.0.1",slug:"target-runtime-cosmoshub-4-post-v10-upgrade-will-run-gaia-v10-0-1"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Gaia v11 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Gaia v11 Upgrade",order:7},regularPath:"/migration/cosmoshub-4-v11-upgrade.html",relativePath:"migration/cosmoshub-4-v11-upgrade.md",key:"v-1ed61780",path:"/migration/cosmoshub-4-v11-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime",slug:"current-runtime"},{level:3,title:"Target runtime",slug:"target-runtime"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Gaia v12 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Gaia v12 Upgrade",order:8},regularPath:"/migration/cosmoshub-4-v12-upgrade.html",relativePath:"migration/cosmoshub-4-v12-upgrade.md",key:"v-15fddba0",path:"/migration/cosmoshub-4-v12-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Liquid Staking",slug:"liquid-staking"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime",slug:"current-runtime"},{level:3,title:"Target runtime",slug:"target-runtime"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, v7-Theta Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Theta Upgrade",order:3},regularPath:"/migration/cosmoshub-4-v7-Theta-upgrade.html",relativePath:"migration/cosmoshub-4-v7-Theta-upgrade.md",key:"v-08131412",path:"/migration/cosmoshub-4-v7-Theta-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place April 12, 2022",slug:"upgrade-will-take-place-april-12-2022"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v7-Theta upgrade) is running Gaia v6.0.x",slug:"current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v6-0-x"},{level:3,title:"Target runtime, cosmoshub-4 (post-v7-Theta upgrade) will run Gaia v7.0.0",slug:"target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v7-0-0"},{level:2,title:"v7-Theta upgrade steps",slug:"v7-theta-upgrade-steps"},{level:3,title:"Method I: manual upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: upgrade using Cosmovisor by manually preparing the Gaia v7.0.0 binary",slug:"method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v7-0-0-binary"},{level:3,title:"Method III: upgrade using Cosmovisor by auto-downloading the Gaia v7.0.0 binary (not recommended!)",slug:"method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v7-0-0-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, v8-Rho Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Rho Upgrade",order:4},regularPath:"/migration/cosmoshub-4-v8-Rho-upgrade.html",relativePath:"migration/cosmoshub-4-v8-Rho-upgrade.md",key:"v-fc555fcc",path:"/migration/cosmoshub-4-v8-Rho-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place Feb 16, 2023",slug:"upgrade-will-take-place-feb-16-2023"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v8-Rho upgrade) is running Gaia v7.1.1",slug:"current-runtime-cosmoshub-4-pre-v8-rho-upgrade-is-running-gaia-v7-1-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-v8-Rho upgrade) will run Gaia v8.0.0",slug:"target-runtime-cosmoshub-4-post-v8-rho-upgrade-will-run-gaia-v8-0-0"},{level:2,title:"v8-Rho upgrade steps",slug:"v8-rho-upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the Gaia v8.0.0 binary",slug:"manually-preparing-the-gaia-v8-0-0-binary"},{level:3,title:"Auto-Downloading the Gaia v8.0.0 binary (not recommended!)",slug:"auto-downloading-the-gaia-v8-0-0-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Gaia v13 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Gaia v13 Upgrade",order:8},regularPath:"/migration/cosmoshub-4-v13-upgrade.html",relativePath:"migration/cosmoshub-4-v13-upgrade.md",key:"v-3b66c300",path:"/migration/cosmoshub-4-v13-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime",slug:"current-runtime"},{level:3,title:"Target runtime",slug:"target-runtime"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, v9-Lambda Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Lambda Upgrade",order:5},regularPath:"/migration/cosmoshub-4-v9-Lambda-upgrade.html",relativePath:"migration/cosmoshub-4-v9-Lambda-upgrade.md",key:"v-c184b540",path:"/migration/cosmoshub-4-v9-Lambda-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place March 14-16, 2023",slug:"upgrade-will-take-place-march-14-16-2023"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v9-Lambda upgrade) is running Gaia v8.0.1",slug:"current-runtime-cosmoshub-4-pre-v9-lambda-upgrade-is-running-gaia-v8-0-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-v9-Lambda upgrade) will run Gaia v9.0.0",slug:"target-runtime-cosmoshub-4-post-v9-lambda-upgrade-will-run-gaia-v9-0-0"},{level:2,title:"v9-Lambda upgrade steps",slug:"v9-lambda-upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the Gaia v9.0.0 binary",slug:"manually-preparing-the-gaia-v9-0-0-binary"},{level:3,title:"Auto-Downloading the Gaia v9.0.0 binary (not recommended!)",slug:"auto-downloading-the-gaia-v9-0-0-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Vega Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Vega Upgrade",order:2},regularPath:"/migration/cosmoshub-4-vega-upgrade.html",relativePath:"migration/cosmoshub-4-vega-upgrade.md",key:"v-77c0d338",path:"/migration/cosmoshub-4-vega-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place December 14, 2021",slug:"upgrade-will-take-place-december-14-2021"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-Vega upgrade) is running Gaia v5.0.0",slug:"current-runtime-cosmoshub-4-pre-vega-upgrade-is-running-gaia-v5-0-0"},{level:3,title:"Target runtime, cosmoshub-4 (post-Vega upgrade) will run Gaia v6.0.4",slug:"target-runtime-cosmoshub-4-post-vega-upgrade-will-run-gaia-v6-0-4"},{level:2,title:"Vega upgrade steps",slug:"vega-upgrade-steps"},{level:3,title:"Method I: manual upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: upgrade using Cosmovisor by manually preparing the Gaia v6.0.4 binary",slug:"method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v6-0-4-binary"},{level:3,title:"Method III: upgrade using Cosmovisor by auto-downloading the Gaia v6.0.4 binary (not recommended!)",slug:"method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v6-0-4-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Gaia Fee and Fees Checks",frontmatter:{description:""},regularPath:"/modules/globalfee.html",relativePath:"modules/globalfee.md",key:"v-f8a9ba00",path:"/modules/globalfee.html",headers:[{level:2,title:"Fee Parameters",slug:"fee-parameters"},{level:2,title:"Globalfee module",slug:"globalfee-module"},{level:3,title:"Globalfee Params: MinimumGasPricesParam",slug:"globalfee-params-minimumgaspricesparam"},{level:3,title:"Globalfee Params: BypassMinFeeMsgTypes and MaxTotalBypassMinFeeMsgGasUsage",slug:"globalfee-params-bypassminfeemsgtypes-and-maxtotalbypassminfeemsggasusage"},{level:2,title:"Minimum-gas-prices (local fee requirement)",slug:"minimum-gas-prices-local-fee-requirement"},{level:2,title:"Fee AnteHandler Behaviour",slug:"fee-antehandler-behaviour"},{level:2,title:"Queries",slug:"queries"},{level:2,title:"Setting Up Globalfee Params via Gov Proposals",slug:"setting-up-globalfee-params-via-gov-proposals"},{level:2,title:"Examples",slug:"examples"},{level:3,title:"Case 1",slug:"case-1"},{level:3,title:"Case 2",slug:"case-2"},{level:3,title:"Case 3",slug:"case-3"},{level:3,title:"Case 4",slug:"case-4"},{level:3,title:"Case 5",slug:"case-5"},{level:3,title:"Case 6",slug:"case-6"},{level:3,title:"Case 7",slug:"case-7"},{level:3,title:"Case 8",slug:"case-8"},{level:2,title:"References",slug:"references"}]},{title:"Ledger Nano Support",frontmatter:{description:"",order:4,title:"Ledger Support"},regularPath:"/resources/ledger.html",relativePath:"resources/ledger.md",key:"v-611af834",path:"/resources/ledger.html",headers:[{level:2,title:"Install the Cosmos Ledger application",slug:"install-the-cosmos-ledger-application"},{level:2,title:"Keplr + Ledger Nano",slug:"keplr-ledger-nano"},{level:3,title:"(Optional) Confirm your address",slug:"optional-confirm-your-address"},{level:2,title:"Gaia CLI + Ledger Nano",slug:"gaia-cli-ledger-nano"},{level:3,title:"Before you Begin",slug:"before-you-begin"},{level:3,title:"Add your Ledger key",slug:"add-your-ledger-key"},{level:3,title:"Confirm your address",slug:"confirm-your-address"},{level:3,title:"Connect to a full node",slug:"connect-to-a-full-node"},{level:3,title:"Sign a transaction",slug:"sign-a-transaction"},{level:3,title:"Receive funds",slug:"receive-funds"},{level:3,title:"Further documentation",slug:"further-documentation"},{level:2,title:"The Cosmos Standard Transaction",slug:"the-cosmos-standard-transaction"},{level:2,title:"Support",slug:"support"}]},{title:"Service Providers",frontmatter:{description:"",order:6,title:"Service Providers"},regularPath:"/resources/service-providers.html",relativePath:"resources/service-providers.md",key:"v-55d7a0e0",path:"/resources/service-providers.html",headers:[{level:2,title:"Connection Options",slug:"connection-options"},{level:2,title:"Running a Full Node",slug:"running-a-full-node"},{level:3,title:"What is a Full Node?",slug:"what-is-a-full-node"},{level:3,title:"Installation and Configuration",slug:"installation-and-configuration"},{level:2,title:"Command-Line Interface",slug:"command-line-interface"},{level:3,title:"Available Commands",slug:"available-commands"},{level:3,title:"Remote Access to gaiad",slug:"remote-access-to-gaiad"},{level:3,title:"Create a Key Pair",slug:"create-a-key-pair"},{level:3,title:"Check your Balance",slug:"check-your-balance"},{level:2,title:"REST API",slug:"rest-api"},{level:3,title:"Listen for Incoming Transactions",slug:"listen-for-incoming-transactions"}]},{title:"Previous Releases",frontmatter:{description:"",order:!1,parent:{title:"Previous Releases",order:7}},regularPath:"/roadmap/",relativePath:"roadmap/README.md",key:"v-75000dc1",path:"/roadmap/",headers:[{level:2,title:"Cosmos Hub Release Details",slug:"cosmos-hub-release-details"},{level:3,title:"Delta Upgrade (Completed July 12, 2021)",slug:"delta-upgrade-completed-july-12-2021"},{level:3,title:"Vega Upgrade (Completed December 14, 2021)",slug:"vega-upgrade-completed-december-14-2021"},{level:3,title:"v7-Theta Upgrade (Completed March 25, 2022)",slug:"v7-theta-upgrade-completed-march-25-2022"},{level:3,title:"v8-Rho Upgrade (expected Q1 2023)",slug:"v8-rho-upgrade-expected-q1-2023"},{level:3,title:"v9-Lambda Upgrade (expected Q1 2023)",slug:"v9-lambda-upgrade-expected-q1-2023"},{level:2,title:"Cosmos Hub Summary",slug:"cosmos-hub-summary"}]},{title:"Cosmos Hub主网上线计划",frontmatter:{description:""},regularPath:"/zh/launch/blog-1-cn.html",relativePath:"zh/launch/blog-1-cn.md",key:"v-dd937a80",path:"/zh/launch/blog-1-cn.html",headers:[{level:2,title:"主网启动的里程碑",slug:"主网启动的里程碑"},{level:2,title:"Cosmos官方交流渠道",slug:"cosmos官方交流渠道"},{level:2,title:"在主网启动期间确保资产安全可靠",slug:"在主网启动期间确保资产安全可靠"},{level:2,title:"安全规则",slug:"安全规则"}]},{title:"创世(Genesis)文件",frontmatter:{description:""},regularPath:"/zh/resources/genesis.html",relativePath:"zh/resources/genesis.md",key:"v-29e61a5c",path:"/zh/resources/genesis.html",headers:[{level:2,title:"什么是创世文件",slug:"什么是创世文件"},{level:2,title:"Genesis 时间和链ID",slug:"genesis-时间和链id"},{level:2,title:"共识参数",slug:"共识参数"},{level:2,title:"应用程序状态",slug:"应用程序状态"},{level:3,title:"创世账号",slug:"创世账号"},{level:3,title:"银行(Bank)",slug:"银行-bank"},{level:3,title:"权益(Staking)",slug:"权益-staking"},{level:3,title:"挖矿(Mint)",slug:"挖矿-mint"},{level:3,title:"分配(Distribution)",slug:"分配-distribution"},{level:3,title:"治理(Governance)",slug:"治理-governance"},{level:3,title:"惩罚(Slashing )",slug:"惩罚-slashing"},{level:3,title:"创世交易(Genesis Transactions)",slug:"创世交易-genesis-transactions"}]},{title:"Especificaciones técnicas",frontmatter:{description:""},regularPath:"/es/governance/params-change/Governance.html",relativePath:"es/governance/params-change/Governance.md",key:"v-2acc3e00",path:"/es/governance/params-change/Governance.html",headers:[{level:2,title:"1. depositparams",slug:"_1-depositparams"},{level:2,title:"mindeposit",slug:"mindeposit"},{level:3,title:"El depósito mínimo requerido para que una propuesta entre en el período de votación, en micro-ATOMs",slug:"el-deposito-minimo-requerido-para-que-una-propuesta-entre-en-el-periodo-de-votacion-en-micro-atoms"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias"},{level:2,title:"maxdepositperiod",slug:"maxdepositperiod"},{level:3,title:"La cantidad máxima de tiempo que una propuesta puede aceptar contribuciones de depósito antes de expirar, en nanosegundos",slug:"la-cantidad-maxima-de-tiempo-que-una-propuesta-puede-aceptar-contribuciones-de-deposito-antes-de-expirar-en-nanosegundos"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-2"},{level:2,title:"2. votingparams",slug:"_2-votingparams"},{level:2,title:"votingperiod",slug:"votingperiod"},{level:3,title:"La cantidad máxima de tiempo que una propuesta puede aceptar votos antes de que concluya el período de votación, en nanosegundos",slug:"la-cantidad-maxima-de-tiempo-que-una-propuesta-puede-aceptar-votos-antes-de-que-concluya-el-periodo-de-votacion-en-nanosegundos"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-3"},{level:2,title:"2. tallyparams",slug:"_2-tallyparams"},{level:2,title:"quorum",slug:"quorum"},{level:3,title:"La proporción mínima de poder de voto de la red que se requiere para que el resultado de una propuesta de gobierno se considere válido",slug:"la-proporcion-minima-de-poder-de-voto-de-la-red-que-se-requiere-para-que-el-resultado-de-una-propuesta-de-gobierno-se-considere-valido"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-4"},{level:2,title:"threshold",slug:"threshold"},{level:3,title:"La proporción mínima del poder de voto necesario para que se apruebe una propuesta de gobierno",slug:"la-proporcion-minima-del-poder-de-voto-necesario-para-que-se-apruebe-una-propuesta-de-gobierno"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-5"},{level:2,title:"veto",slug:"veto"},{level:3,title:"La proporción mínima de poder de voto de los participantes para vetar (es decir, rechazar) una propuesta de gobierno",slug:"la-proporcion-minima-de-poder-de-voto-de-los-participantes-para-vetar-es-decir-rechazar-una-propuesta-de-gobierno"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-6"},{level:2,title:"Parámetros de Génesis (aka lanzamiento)",slug:"parametros-de-genesis-aka-lanzamiento"},{level:2,title:"Parámetros actuales",slug:"parametros-actuales"},{level:2,title:"Futuro",slug:"futuro"}]},{title:"제네시스 파일",frontmatter:{description:""},regularPath:"/ko/resources/genesis.html",relativePath:"ko/resources/genesis.md",key:"v-a8848234",path:"/ko/resources/genesis.html",headers:[{level:2,title:"제네시스 파일은 무엇인가?",slug:"제네시스-파일은-무엇인가"},{level:2,title:"제네시스 시간과 체인 아이디",slug:"제네시스-시간과-체인-아이디"},{level:2,title:"컨센서스 파라미터",slug:"컨센서스-파라미터"},{level:2,title:"애플리케이션 상태",slug:"애플리케이션-상태"},{level:3,title:"제네시스 계정",slug:"제네시스-계정"},{level:3,title:"뱅크(Bank)",slug:"뱅크-bank"},{level:3,title:"스테이킹(Staking)",slug:"스테이킹-staking"},{level:3,title:"민트(mint)",slug:"민트-mint"},{level:3,title:"분배(distribution)",slug:"분배-distribution"},{level:3,title:"거버넌스(governance)",slug:"거버넌스-governance"},{level:3,title:"슬래싱(slashing)",slug:"슬래싱-slashing"},{level:3,title:"제네시스 트랜잭션(genesis transactions)",slug:"제네시스-트랜잭션-genesis-transactions"}]},{title:"State Sync",frontmatter:{description:"",title:"Cosmos Hub 3 Upgrade",order:5},regularPath:"/migration/cosmoshub-3/cosmoshub-3.html",relativePath:"migration/cosmoshub-3/cosmoshub-3.md",key:"v-68a36ea0",path:"/migration/cosmoshub-3/cosmoshub-3.html",headers:[{level:2,title:"Preliminary",slug:"preliminary"},{level:2,title:"Major Updates",slug:"major-updates"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Recovery",slug:"recovery"},{level:2,title:"Upgrade Procedure",slug:"upgrade-procedure"},{level:2,title:"Notes for Service Providers",slug:"notes-for-service-providers"}]},{title:"Genesis File",frontmatter:{description:"",order:1,title:"The Genesis File"},regularPath:"/resources/genesis.html",relativePath:"resources/genesis.md",key:"v-91b151c0",path:"/resources/genesis.html",headers:[{level:2,title:"What is a Genesis File",slug:"what-is-a-genesis-file"},{level:2,title:"Genesis Time and Chain_id",slug:"genesis-time-and-chain-id"},{level:2,title:"Consensus Parameters",slug:"consensus-parameters"},{level:2,title:"Application State",slug:"application-state"},{level:3,title:"Genesis Accounts",slug:"genesis-accounts"},{level:3,title:"Bank",slug:"bank"},{level:3,title:"Staking",slug:"staking"},{level:3,title:"Mint",slug:"mint"},{level:3,title:"Distribution",slug:"distribution"},{level:3,title:"Governance",slug:"governance"},{level:3,title:"Slashing",slug:"slashing"},{level:3,title:"Genesis Transactions",slug:"genesis-transactions"}]},{title:"委托人指南 (CLI)",frontmatter:{description:""},regularPath:"/zh/delegator/delegator-guide-cli.html",relativePath:"zh/delegator/delegator-guide-cli.md",key:"v-3cb8cfc8",path:"/zh/delegator/delegator-guide-cli.html",headers:[{level:2,title:"目录",slug:"目录"},{level:2,title:"安装 gaiad",slug:"安装-gaiad"},{level:2,title:"Cosmos账户",slug:"cosmos账户"},{level:3,title:"通过募资人恢复一个账户",slug:"通过募资人恢复一个账户"},{level:3,title:"创建一个账户",slug:"创建一个账户"},{level:2,title:"访问Cosmos Hub网络",slug:"访问cosmos-hub网络"},{level:3,title:"运行您自己的全节点",slug:"运行您自己的全节点"},{level:3,title:"连接到一个远程全节点",slug:"连接到一个远程全节点"},{level:2,title:"设置 gaiad",slug:"设置-gaiad"},{level:2,title:"状态查询",slug:"状态查询"},{level:2,title:"发起交易",slug:"发起交易"},{level:3,title:"关于gas费和手续费",slug:"关于gas费和手续费"},{level:3,title:"抵押Atom通证 & 提取奖励",slug:"抵押atom通证-提取奖励"},{level:2,title:"参与链上治理",slug:"参与链上治理"},{level:3,title:"从一台离线电脑上签署交易",slug:"从一台离线电脑上签署交易"}]},{title:"Gaia客户端",frontmatter:{description:""},regularPath:"/zh/resources/gaiad.html",relativePath:"zh/resources/gaiad.md",key:"v-26ead5fe",path:"/zh/resources/gaiad.html",headers:[{level:2,title:"Gaia CLI",slug:"gaia-cli"},{level:3,title:"配置 gaiad",slug:"配置-gaiad"},{level:3,title:"Key",slug:"key"},{level:3,title:"Tx 广播",slug:"tx-广播"},{level:3,title:"Fees 和 Gas",slug:"fees-和-gas"},{level:3,title:"账户",slug:"账户"},{level:3,title:"查询交易",slug:"查询交易"},{level:3,title:"Slashing",slug:"slashing"},{level:3,title:"Staking",slug:"staking"},{level:3,title:"治理",slug:"治理"},{level:3,title:"费用分配",slug:"费用分配"},{level:3,title:"多签交易",slug:"多签交易"},{level:2,title:"shell 自动补全脚本",slug:"shell-自动补全脚本"}]},{title:"验证人相关问题",frontmatter:{description:""},regularPath:"/zh/validators/validator-faq.html",relativePath:"zh/validators/validator-faq.md",key:"v-1d21baa0",path:"/zh/validators/validator-faq.html",headers:[{level:2,title:"基本概念",slug:"基本概念"},{level:3,title:"什么是验证人?",slug:"什么是验证人"},{level:3,title:"什么是'抵押'?",slug:"什么是-抵押"},{level:3,title:"什么是全节点?",slug:"什么是全节点"},{level:3,title:"什么是委托人?",slug:"什么是委托人"},{level:2,title:"成为一个验证人",slug:"成为一个验证人"},{level:3,title:"如何成为一个验证人?",slug:"如何成为一个验证人"},{level:2,title:"测试网",slug:"测试网"},{level:3,title:"我要怎样加入到测试网?",slug:"我要怎样加入到测试网"},{level:3,title:"密钥的不同类型?",slug:"密钥的不同类型"},{level:3,title:"验证人可以具有哪些不同的状态",slug:"验证人可以具有哪些不同的状态"},{level:3,title:"什么是self-bond?怎样增加我的self-bond?有水龙头吗?",slug:"什么是self-bond-怎样增加我的self-bond-有水龙头吗"},{level:3,title:"成为一个活跃的(=bonded)验证人必须要抵押最小数量的Atom吗?",slug:"成为一个活跃的-bonded-验证人必须要抵押最小数量的atom吗"},{level:2,title:"责任",slug:"责任"},{level:3,title:"验证人需要公开表明身份吗?",slug:"验证人需要公开表明身份吗"},{level:3,title:"一个验证人要担负哪些责任?",slug:"一个验证人要担负哪些责任"},{level:3,title:'"参与治理"需要?',slug:"参与治理-需要"},{level:3,title:"抵押是指?",slug:"抵押是指"},{level:3,title:"验证人可以卷走委托人的Atom跑路吗?",slug:"验证人可以卷走委托人的atom跑路吗"},{level:3,title:"一个验证人多久被选择提议下一个区块?会随着抵押的Atom数量上升吗?",slug:"一个验证人多久被选择提议下一个区块-会随着抵押的atom数量上升吗"},{level:3,title:"Cosmos Hub的验证人需要去验证Cosmos生态中的其他分区吗?",slug:"cosmos-hub的验证人需要去验证cosmos生态中的其他分区吗"},{level:2,title:"激励",slug:"激励"},{level:3,title:"抵押有什么激励?",slug:"抵押有什么激励"},{level:3,title:"运行一个验证人有什么激励?",slug:"运行一个验证人有什么激励"},{level:3,title:"什么是验证人的佣金?",slug:"什么是验证人的佣金"},{level:3,title:"区块增发奖励怎么分配?",slug:"区块增发奖励怎么分配"},{level:3,title:"交易手续费怎么分配?",slug:"交易手续费怎么分配"},{level:3,title:"遭到削减处罚的原因?",slug:"遭到削减处罚的原因"},{level:3,title:"验证人需要去自抵押一些Atom吗?",slug:"验证人需要去自抵押一些atom吗"},{level:3,title:"怎样预防股权集中到少数的验证人手中?",slug:"怎样预防股权集中到少数的验证人手中"},{level:2,title:"技术要求",slug:"技术要求"},{level:3,title:"对硬件的要求是什么?",slug:"对硬件的要求是什么"},{level:3,title:"对软件有什么要求?",slug:"对软件有什么要求"},{level:3,title:"对带宽有什么要求?",slug:"对带宽有什么要求"},{level:3,title:"运行一个验证人节点意味着什么?",slug:"运行一个验证人节点意味着什么"},{level:3,title:"怎样去进行密钥管理?",slug:"怎样去进行密钥管理"},{level:3,title:"在操作上我们期望验证人可以做到哪些?",slug:"在操作上我们期望验证人可以做到哪些"},{level:3,title:"维护需要什么?",slug:"维护需要什么"},{level:3,title:"验证人怎样保护自己免于DDOS攻击?",slug:"验证人怎样保护自己免于ddos攻击"}]},{title:"Delegator Guide (CLI)",frontmatter:{description:"",order:1,title:"Delegator Guide (CLI)"},regularPath:"/delegators/delegator-guide-cli.html",relativePath:"delegators/delegator-guide-cli.md",key:"v-b5fc8180",path:"/delegators/delegator-guide-cli.html",headers:[{level:2,title:"Table of Contents",slug:"table-of-contents"},{level:2,title:"Installing gaiad",slug:"installing-gaiad"},{level:2,title:"Cosmos Accounts",slug:"cosmos-accounts"},{level:3,title:"Restoring an Account from the Fundraiser",slug:"restoring-an-account-from-the-fundraiser"},{level:3,title:"Creating an Account",slug:"creating-an-account"},{level:2,title:"Accessing the Cosmos Hub Network",slug:"accessing-the-cosmos-hub-network"},{level:3,title:"Running Your Own Full-Node",slug:"running-your-own-full-node"},{level:3,title:"Connecting to a Remote Full-Node",slug:"connecting-to-a-remote-full-node"},{level:2,title:"Setting Up gaiad",slug:"setting-up-gaiad"},{level:2,title:"Querying the State",slug:"querying-the-state"},{level:2,title:"Sending Transactions",slug:"sending-transactions"},{level:3,title:"A Note on Gas and Fees",slug:"a-note-on-gas-and-fees"},{level:3,title:"Sending Tokens",slug:"sending-tokens"},{level:3,title:"Bonding Atoms and Withdrawing Rewards",slug:"bonding-atoms-and-withdrawing-rewards"},{level:2,title:"Participating in Governance",slug:"participating-in-governance"},{level:3,title:"Signing Transactions From an Offline Computer",slug:"signing-transactions-from-an-offline-computer"}]},{title:"State of Cosmos Governance 2021",frontmatter:{description:"",order:9},regularPath:"/governance/state-of-cosmos-governance-2021.html",relativePath:"governance/state-of-cosmos-governance-2021.md",key:"v-56618330",path:"/governance/state-of-cosmos-governance-2021.html",headers:[{level:2,title:"Cosmos View of Governance",slug:"cosmos-view-of-governance"},{level:3,title:"Emphasis on Self-governance and Sovereignty",slug:"emphasis-on-self-governance-and-sovereignty"},{level:3,title:"Flexibility through On-chain Parameters",slug:"flexibility-through-on-chain-parameters"},{level:3,title:"Development of Governance Processes Over Time",slug:"development-of-governance-processes-over-time"},{level:2,title:"On- and off-chain Governance Structure",slug:"on-and-off-chain-governance-structure"},{level:3,title:"Communication",slug:"communication"},{level:3,title:"Decision-making and Discussion Venues",slug:"decision-making-and-discussion-venues"},{level:3,title:"Roles and Stakeholders",slug:"roles-and-stakeholders"},{level:2,title:"Review of Governance processes",slug:"review-of-governance-processes"},{level:3,title:"Cosmos Hub on-chain governance",slug:"cosmos-hub-on-chain-governance"},{level:3,title:"User Story: Chain-Wide Governance",slug:"user-story-chain-wide-governance"},{level:3,title:"Process overview",slug:"process-overview"},{level:3,title:"Process owners",slug:"process-owners"},{level:3,title:"Process maturity",slug:"process-maturity"},{level:2,title:"Cosmos Improvement Proposals (CIPs)",slug:"cosmos-improvement-proposals-cips"},{level:3,title:"User Story: Governing Technical Direction",slug:"user-story-governing-technical-direction"},{level:3,title:"Process overview",slug:"process-overview-2"},{level:3,title:"Process owners",slug:"process-owners-2"},{level:3,title:"Process maturity",slug:"process-maturity-2"},{level:2,title:"Cosmos SDK Architecture Decision Records (ADR)",slug:"cosmos-sdk-architecture-decision-records-adr"},{level:3,title:"Process overview",slug:"process-overview-3"},{level:3,title:"Process owners",slug:"process-owners-3"},{level:3,title:"Process maturity",slug:"process-maturity-3"},{level:2,title:"Tendermint Request for Comments (RFC)",slug:"tendermint-request-for-comments-rfc"},{level:3,title:"Process overview",slug:"process-overview-4"},{level:3,title:"Process owners",slug:"process-owners-4"},{level:3,title:"Process maturity",slug:"process-maturity-4"},{level:2,title:"Interchain Standards (ICS)",slug:"interchain-standards-ics"},{level:3,title:"Process overview",slug:"process-overview-5"},{level:3,title:"Process owners",slug:"process-owners-5"},{level:3,title:"Process maturity",slug:"process-maturity-5"},{level:2,title:"Observations and Discussion",slug:"observations-and-discussion"},{level:3,title:"On-chain processes",slug:"on-chain-processes"},{level:3,title:"Off-chain processes",slug:"off-chain-processes"}]},{title:"Gaia Client",frontmatter:{description:"",order:5,title:"Interacting with Gaiad (CLI)"},regularPath:"/hub-tutorials/gaiad.html",relativePath:"hub-tutorials/gaiad.md",key:"v-f4d75640",path:"/hub-tutorials/gaiad.html",headers:[{level:2,title:"Gaia Daemon",slug:"gaia-daemon"},{level:3,title:"Setting up gaiad",slug:"setting-up-gaiad"},{level:3,title:"Keys",slug:"keys"},{level:3,title:"Tx Broadcasting",slug:"tx-broadcasting"},{level:3,title:"Fees & Gas",slug:"fees-gas"},{level:3,title:"Account",slug:"account"},{level:3,title:"Send Tokens",slug:"send-tokens"},{level:3,title:"Query Transactions",slug:"query-transactions"},{level:3,title:"Slashing",slug:"slashing"},{level:3,title:"Minting",slug:"minting"},{level:3,title:"Staking",slug:"staking"},{level:3,title:"Governance",slug:"governance"},{level:3,title:"Fee Distribution",slug:"fee-distribution"},{level:3,title:"Multisig Transactions",slug:"multisig-transactions"},{level:2,title:"Shells Completion Scripts",slug:"shells-completion-scripts"}]},{title:"Join the Cosmos Hub Mainnet",frontmatter:{description:"",order:2,title:"Joining Mainnet"},regularPath:"/hub-tutorials/join-mainnet.html",relativePath:"hub-tutorials/join-mainnet.md",key:"v-398eb7e6",path:"/hub-tutorials/join-mainnet.html",headers:[{level:3,title:"Overview",slug:"overview"},{level:3,title:"Background",slug:"background"},{level:2,title:"Explorers",slug:"explorers"},{level:2,title:"Getting Started",slug:"getting-started"},{level:2,title:"Hardware",slug:"hardware"},{level:2,title:"General Configuration",slug:"general-configuration"},{level:3,title:"Initialize Chain",slug:"initialize-chain"},{level:3,title:"Genesis File",slug:"genesis-file"},{level:3,title:"Seeds & Peers",slug:"seeds-peers"},{level:3,title:"Gas & Fees",slug:"gas-fees"},{level:3,title:"Pruning of State",slug:"pruning-of-state"},{level:3,title:"REST API",slug:"rest-api"},{level:3,title:"GRPC",slug:"grpc"},{level:2,title:"Sync Options",slug:"sync-options"},{level:3,title:"Blocksync",slug:"blocksync"},{level:3,title:"State Sync",slug:"state-sync"},{level:3,title:"Quicksync",slug:"quicksync"},{level:2,title:"Snapshots",slug:"snapshots"},{level:2,title:"Releases & Upgrades",slug:"releases-upgrades"},{level:2,title:"Cosmovisor",slug:"cosmovisor"},{level:2,title:"Running via Background Process",slug:"running-via-background-process"},{level:2,title:"Exporting State",slug:"exporting-state"},{level:2,title:"Verify Mainnet",slug:"verify-mainnet"}]},{title:"Gaia 클라이언트",frontmatter:{description:""},regularPath:"/ko/resources/gaiad.html",relativePath:"ko/resources/gaiad.md",key:"v-7e931cdc",path:"/ko/resources/gaiad.html",headers:[{level:2,title:"Gaia CLI",slug:"gaia-cli"},{level:3,title:"gaiad 설정하기",slug:"gaiad-설정하기"},{level:3,title:"키(Keys)",slug:"키-keys"},{level:3,title:"트랜잭션 전파",slug:"트랜잭션-전파"},{level:3,title:"수수료와 가스",slug:"수수료와-가스"},{level:3,title:"계정",slug:"계정"},{level:3,title:"토큰 전송하기",slug:"토큰-전송하기"},{level:3,title:"트랜잭션 조회하기",slug:"트랜잭션-조회하기"},{level:3,title:"슬래싱",slug:"슬래싱"},{level:3,title:"민팅",slug:"민팅"},{level:3,title:"스테이킹",slug:"스테이킹"},{level:3,title:"거버넌스",slug:"거버넌스"},{level:3,title:"스테이킹 리워드 분배",slug:"스테이킹-리워드-분배"},{level:3,title:"멀티시그 트랜잭션",slug:"멀티시그-트랜잭션"},{level:2,title:"Shell 완료 스크립트",slug:"shell-완료-스크립트"}]},{title:"Validator FAQ",frontmatter:{description:"",order:3,title:"Validator FAQ"},regularPath:"/validators/validator-faq.html",relativePath:"validators/validator-faq.md",key:"v-143a889c",path:"/validators/validator-faq.html",headers:[{level:2,title:"General Concepts",slug:"general-concepts"},{level:3,title:"What is a Cosmos validator?",slug:"what-is-a-cosmos-validator"},{level:3,title:"What is staking?",slug:"what-is-staking"},{level:3,title:"What is a full node?",slug:"what-is-a-full-node"},{level:3,title:"What is a delegator?",slug:"what-is-a-delegator"},{level:2,title:"Becoming a Validator",slug:"becoming-a-validator"},{level:3,title:"How to become a validator?",slug:"how-to-become-a-validator"},{level:2,title:"Testnet",slug:"testnet"},{level:3,title:"How can I join the testnet?",slug:"how-can-i-join-the-testnet"},{level:2,title:"Additional Concepts",slug:"additional-concepts"},{level:3,title:"What are the different types of keys?",slug:"what-are-the-different-types-of-keys"},{level:3,title:"What are the different states a validator can be in?",slug:"what-are-the-different-states-a-validator-can-be-in"},{level:3,title:"What is self-delegation? How can I increase my self-delegation?",slug:"what-is-self-delegation-how-can-i-increase-my-self-delegation"},{level:3,title:"What is validator bond? How can I increase my validator bond?",slug:"what-is-validator-bond-how-can-i-increase-my-validator-bond"},{level:3,title:"Is there a minimum amount of ATOM that must be delegated to be an active (bonded) validator?",slug:"is-there-a-minimum-amount-of-atom-that-must-be-delegated-to-be-an-active-bonded-validator"},{level:3,title:"How do delegators choose their validators?",slug:"how-do-delegators-choose-their-validators"},{level:2,title:"Responsibilities",slug:"responsibilities"},{level:3,title:"Do validators need to be publicly identified?",slug:"do-validators-need-to-be-publicly-identified"},{level:3,title:"What are the responsibilities of a validator?",slug:"what-are-the-responsibilities-of-a-validator"},{level:3,title:"What does 'participate in governance' entail?",slug:"what-does-participate-in-governance-entail"},{level:3,title:"What does staking imply?",slug:"what-does-staking-imply"},{level:3,title:"Can a validator run away with their delegators' ATOM?",slug:"can-a-validator-run-away-with-their-delegators-atom"},{level:3,title:"How often is a validator chosen to propose the next block? Does frequency increase with the quantity of bonded ATOM?",slug:"how-often-is-a-validator-chosen-to-propose-the-next-block-does-frequency-increase-with-the-quantity-of-bonded-atom"},{level:3,title:"Are validators of the Cosmos Hub required to validate other zones in the Cosmos ecosystem?",slug:"are-validators-of-the-cosmos-hub-required-to-validate-other-zones-in-the-cosmos-ecosystem"},{level:3,title:"How can a validator safely quit validating on the Cosmos Hub?",slug:"how-can-a-validator-safely-quit-validating-on-the-cosmos-hub"},{level:2,title:"Incentives",slug:"incentives"},{level:3,title:"What is the incentive to stake?",slug:"what-is-the-incentive-to-stake"},{level:3,title:"What is a validator commission?",slug:"what-is-a-validator-commission"},{level:3,title:"What is the incentive to run a validator?",slug:"what-is-the-incentive-to-run-a-validator"},{level:3,title:"How are block rewards distributed?",slug:"how-are-block-rewards-distributed"},{level:3,title:"How are fees distributed?",slug:"how-are-fees-distributed"},{level:3,title:"What are the slashing conditions?",slug:"what-are-the-slashing-conditions"},{level:3,title:"Are validators required to self-delegate ATOM?",slug:"are-validators-required-to-self-delegate-atom"},{level:3,title:"How to prevent concentration of stake in the hands of a few top validators?",slug:"how-to-prevent-concentration-of-stake-in-the-hands-of-a-few-top-validators"},{level:2,title:"Liquid Staking Module",slug:"liquid-staking-module"},{level:3,title:"What is the liquid staking module?",slug:"what-is-the-liquid-staking-module"},{level:3,title:"Who can validator bond?",slug:"who-can-validator-bond"},{level:3,title:"How can I validator bond?",slug:"how-can-i-validator-bond"},{level:3,title:"How does a delegator or validator mark their delegation as a validator bond?",slug:"how-does-a-delegator-or-validator-mark-their-delegation-as-a-validator-bond"},{level:3,title:"Are validator bonds subject to additional slashing conditions?",slug:"are-validator-bonds-subject-to-additional-slashing-conditions"},{level:3,title:"Can I unbond my validator bond?",slug:"can-i-unbond-my-validator-bond"},{level:3,title:"Can I validator bond some of my tokens and delegate the remaining portion normally?",slug:"can-i-validator-bond-some-of-my-tokens-and-delegate-the-remaining-portion-normally"},{level:2,title:"Technical Requirements",slug:"technical-requirements"},{level:3,title:"What are hardware requirements?",slug:"what-are-hardware-requirements"},{level:3,title:"What are software requirements?",slug:"what-are-software-requirements"},{level:3,title:"What are bandwidth requirements?",slug:"what-are-bandwidth-requirements"},{level:3,title:"How to handle key management?",slug:"how-to-handle-key-management"},{level:3,title:"What can validators expect in terms of operations?",slug:"what-can-validators-expect-in-terms-of-operations"},{level:3,title:"What are the maintenance requirements?",slug:"what-are-the-maintenance-requirements"},{level:3,title:"How can validators protect themselves from denial-of-service attacks?",slug:"how-can-validators-protect-themselves-from-denial-of-service-attacks"}]},{title:"Previous proposals",frontmatter:{description:""},regularPath:"/governance/proposals/previous-proposals/",relativePath:"governance/proposals/previous-proposals/README.md",key:"v-17b4aa2d",path:"/governance/proposals/previous-proposals/",headers:[{level:2,title:"1 Adjustment of blocksperyear to come aligned with actual block time",slug:"_1-adjustment-of-blocks-per-year-to-come-aligned-with-actual-block-time"},{level:2,title:"2 ATOM Transfer Enablement",slug:"_2-atom-transfer-enablement"},{level:2,title:"3 ATOM Transfer Enablement v2",slug:"_3-atom-transfer-enablement-v2"},{level:2,title:"4 Proposal for issuance of fungible tokens directly on the Cosmos Hub",slug:"_4-proposal-for-issuance-of-fungible-tokens-directly-on-the-cosmos-hub"},{level:2,title:"5 Expedited Cosmos Upgrade Proposal",slug:"_5-expedited-cosmos-upgrade-proposal"},{level:2,title:"6 Don't Burn Deposits for Rejected Governance Proposals Unless Vetoed",slug:"_6-don-t-burn-deposits-for-rejected-governance-proposals-unless-vetoed"},{level:2,title:"7 Activate the Community Pool",slug:"_7-activate-the-community-pool"},{level:2,title:"8 Notification for Security Critical Hard Fork at Block 482100",slug:"_8-notification-for-security-critical-hard-fork-at-block-482100"},{level:2,title:"10 Increase Max Validator Set Size to 125",slug:"_10-increase-max-validator-set-size-to-125"},{level:2,title:"12 Are Validators Charging 0% Commission Harmful to the Success of the Cosmos Hub?",slug:"_12-are-validators-charging-0-commission-harmful-to-the-success-of-the-cosmos-hub"},{level:2,title:"13 Cosmos Hub 3 Upgrade Proposal A",slug:"_13-cosmos-hub-3-upgrade-proposal-a"},{level:2,title:"14 Cosmos Hub 3 Upgrade Proposal B",slug:"_14-cosmos-hub-3-upgrade-proposal-b"},{level:2,title:"16 Cosmos Hub 3 Upgrade Proposal D",slug:"_16-cosmos-hub-3-upgrade-proposal-d"},{level:2,title:"19 Cosmos Hub 3 Upgrade Proposal E",slug:"_19-cosmos-hub-3-upgrade-proposal-e"},{level:2,title:"23 Cosmos Governance Working Group - Q1 2020",slug:"_23-cosmos-governance-working-group-q1-2020"},{level:2,title:"25 CosmWasm Integration 1 - Permissions and Upgrades",slug:"_25-cosmwasm-integration-1-permissions-and-upgrades"},{level:2,title:"26 Takeoff Proposal from Cyber to Cosmos",slug:"_26-takeoff-proposal-from-cyber-to-cosmos"},{level:2,title:"27 Stargate Upgrade Proposal 1",slug:"_27-stargate-upgrade-proposal-1"},{level:2,title:"29 Genesis fund recovery proposal on behalf of fundraiser participants unable to access their ATOMs",slug:"_29-genesis-fund-recovery-proposal-on-behalf-of-fundraiser-participants-unable-to-access-their-atoms"},{level:2,title:"31 Governance Split Votes",slug:"_31-governance-split-votes"},{level:2,title:"32 Funding for Development of Governance Split Votes",slug:"_32-funding-for-development-of-governance-split-votes"},{level:2,title:"34 Luna Mission - Funding $ATOM",slug:"_34-luna-mission-funding-atom"},{level:2,title:"35 Cosmos Stargate Hub Upgrade Proposal 2: Time to Upgrade.",slug:"_35-cosmos-stargate-hub-upgrade-proposal-2-time-to-upgrade"},{level:2,title:"36 Delay of Hub Stargate Upgrade for approximately 2 weeks",slug:"_36-delay-of-hub-stargate-upgrade-for-approximately-2-weeks"},{level:2,title:"37 Stargate Upgrade- Second time is a charm!",slug:"_37-stargate-upgrade-second-time-is-a-charm"}]},{title:"Contributing",frontmatter:{description:""},regularPath:"/guidelines/code-guidelines.html",relativePath:"guidelines/code-guidelines.md",key:"v-0ee0b71e",path:"/guidelines/code-guidelines.html",headers:[{level:2,title:"Maintainability",slug:"maintainability"},{level:2,title:"Run tests",slug:"run-tests"},{level:2,title:"Guidelines",slug:"guidelines"},{level:2,title:"Project organization",slug:"project-organization"},{level:2,title:"How to test this project locally",slug:"how-to-test-this-project-locally"},{level:3,title:"Unit Tests",slug:"unit-tests"},{level:3,title:"End-to-End Tests",slug:"end-to-end-tests"},{level:3,title:"Upgrade Test",slug:"upgrade-test"},{level:2,title:"Guidelines",slug:"guidelines-2"},{level:3,title:"Line Length",slug:"line-length"},{level:3,title:"Doc Comments",slug:"doc-comments"},{level:3,title:"Declaring Empty Slices",slug:"declaring-empty-slices"},{level:3,title:"Indent Error Flow",slug:"indent-error-flow"},{level:3,title:"Unnecessary Else",slug:"unnecessary-else"},{level:3,title:"Named Result Parameters",slug:"named-result-parameters"},{level:3,title:"Package Comments",slug:"package-comments"},{level:3,title:"Package Names",slug:"package-names"},{level:3,title:"Function Names",slug:"function-names"},{level:2,title:"Pointers",slug:"pointers"},{level:3,title:"Receiver Names",slug:"receiver-names"},{level:3,title:"Variable Names",slug:"variable-names"},{level:3,title:"Zero-value Mutexes",slug:"zero-value-mutexes"},{level:3,title:"Copy Slices and Maps at Boundaries",slug:"copy-slices-and-maps-at-boundaries"},{level:3,title:"Errors",slug:"errors"},{level:3,title:"Handle Type Assertion Failures",slug:"handle-type-assertion-failures"},{level:3,title:"Avoid Embedding Types in Public Structs",slug:"avoid-embedding-types-in-public-structs"},{level:3,title:"Avoid init()",slug:"avoid-init"},{level:2,title:"Performance",slug:"performance"},{level:3,title:"Function Grouping and Ordering",slug:"function-grouping-and-ordering"},{level:3,title:"Reduce Nesting",slug:"reduce-nesting"},{level:3,title:"Writing Tests",slug:"writing-tests"},{level:3,title:"Avoid writing directly in the stdout",slug:"avoid-writing-directly-in-the-stdout"},{level:3,title:"Avoid panic",slug:"avoid-panic"}]},{title:"위임자 가이드라인 (CLI)",frontmatter:{description:""},regularPath:"/ko/delegators/delegator-guide-cli.html",relativePath:"ko/delegators/delegator-guide-cli.md",key:"v-9a504180",path:"/ko/delegators/delegator-guide-cli.html",headers:[{level:2,title:"목차",slug:"목차"},{level:2,title:"gaiad 설치하기",slug:"gaiad-설치하기"},{level:2,title:"코스모스 계정",slug:"코스모스-계정"},{level:3,title:"펀드레이저 계정 복구하기",slug:"펀드레이저-계정-복구하기"},{level:3,title:"계정 생성하기",slug:"계정-생성하기"},{level:2,title:"코스모스 허브 네트워크 사용하기",slug:"코스모스-허브-네트워크-사용하기"},{level:3,title:"직접 풀노드 운영하기",slug:"직접-풀노드-운영하기"},{level:3,title:"원격 풀노드 연결하기",slug:"원격-풀노드-연결하기"},{level:2,title:"gaiad 설정하기",slug:"gaiad-설정하기"},{level:2,title:"블록체인 상태 조회하기",slug:"블록체인-상태-조회하기"},{level:2,title:"트랜잭션 전송하기",slug:"트랜잭션-전송하기"},{level:3,title:"가스와 수수료에 대해서",slug:"가스와-수수료에-대해서"},{level:3,title:"토큰 전송하기",slug:"토큰-전송하기"},{level:3,title:"아톰 위임하기 / 리워드 수령하기",slug:"아톰-위임하기-리워드-수령하기"},{level:2,title:"거버넌스 참가하기",slug:"거버넌스-참가하기"},{level:3,title:"거버넌스에 대해서",slug:"거버넌스에-대해서"},{level:3,title:"거버넌스 참여하기",slug:"거버넌스-참여하기"},{level:2,title:"오프라인 컴퓨터에서 트랜잭션 서명하기",slug:"오프라인-컴퓨터에서-트랜잭션-서명하기"}]},{title:"검증인 FAQ",frontmatter:{description:""},regularPath:"/ko/validators/validator-faq.html",relativePath:"ko/validators/validator-faq.md",key:"v-7cf7c3e0",path:"/ko/validators/validator-faq.html",headers:[{level:2,title:"기본 개념",slug:"기본-개념"},{level:3,title:"검증인이란 무엇인가?",slug:"검증인이란-무엇인가"},{level:3,title:"'스테이킹'은 무엇인가?",slug:"스테이킹-은-무엇인가"},{level:3,title:"풀노드는 무엇인가?",slug:"풀노드는-무엇인가"},{level:3,title:"위임인은 무엇인가?",slug:"위임인은-무엇인가"},{level:2,title:"검증인 되기",slug:"검증인-되기"},{level:3,title:"어떻게 검증인이 되는가?",slug:"어떻게-검증인이-되는가"},{level:2,title:"테스트넷",slug:"테스트넷"},{level:3,title:"어떻게 테스트넷에 참여할 수 있나요?",slug:"어떻게-테스트넷에-참여할-수-있나요"},{level:3,title:"어떤 종류들의 '키'가 있나요?",slug:"어떤-종류들의-키-가-있나요"},{level:3,title:"밸리데이터들의 '상태(state)'에는 어떤 것들이 있나요?",slug:"밸리데이터들의-상태-state-에는-어떤-것들이-있나요"},{level:3,title:"셀프본딩은 무엇이며 어떻게 셀프본딩을 늘릴 수 있나요?",slug:"셀프본딩은-무엇이며-어떻게-셀프본딩을-늘릴-수-있나요"},{level:3,title:"테스트넷 토큰은 어떻게 받을 수 있나요?",slug:"테스트넷-토큰은-어떻게-받을-수-있나요"},{level:3,title:"활성화된 검증인이 되기 위해서 최소 필요한 아톰 수량이 있나요?",slug:"활성화된-검증인이-되기-위해서-최소-필요한-아톰-수량이-있나요"},{level:3,title:"위임인들은 어떻게 검증인들을 선택하나요?",slug:"위임인들은-어떻게-검증인들을-선택하나요"},{level:2,title:"검증인들의 책임",slug:"검증인들의-책임"},{level:3,title:"검증인을 하기 위해서는 신원을 밝혀야 하나요?",slug:"검증인을-하기-위해서는-신원을-밝혀야-하나요"},{level:3,title:"검증인들이 되기 위해서는 어떤 책임이 있나요?",slug:"검증인들이-되기-위해서는-어떤-책임이-있나요"},{level:3,title:"'거버넌스에 참여'한다는 것은 무슨 뜻인가요?",slug:"거버넌스에-참여-한다는-것은-무슨-뜻인가요"},{level:3,title:"스테이킹은 어떤 의미를 가지나요?",slug:"스테이킹은-어떤-의미를-가지나요"},{level:3,title:"검증인은 위임인들의 위임된 아톰을 탈취할 수 있나요?",slug:"검증인은-위임인들의-위임된-아톰을-탈취할-수-있나요"},{level:3,title:"검증인들은 얼마나 자주 블록 생성 제안을 할 수 있는건가요? 확률은 스테이킹된 아톰에 비례해서 올라가나요?",slug:"검증인들은-얼마나-자주-블록-생성-제안을-할-수-있는건가요-확률은-스테이킹된-아톰에-비례해서-올라가나요"},{level:3,title:"코스모스 허브의 검증인은 코스모스 생태계 내 다른 존을 검증해야될 수도 있나요?",slug:"코스모스-허브의-검증인은-코스모스-생태계-내-다른-존을-검증해야될-수도-있나요"},{level:2,title:"인센티브",slug:"인센티브"},{level:3,title:"스테이킹을 할 인센티브는 무엇이 있나요?",slug:"스테이킹을-할-인센티브는-무엇이-있나요"},{level:3,title:"검증인을 운영할 인센티브는 무엇이 있나요?",slug:"검증인을-운영할-인센티브는-무엇이-있나요"},{level:3,title:"검증인 커미션은 무엇인가요?",slug:"검증인-커미션은-무엇인가요"},{level:3,title:"블록 생성 보상은 어떻게 나누어지나요?",slug:"블록-생성-보상은-어떻게-나누어지나요"},{level:3,title:"수수료는 어떻게 나누어지나요?",slug:"수수료는-어떻게-나누어지나요"},{level:3,title:"슬래싱 페널티를 발생하는 경우는 무엇이 있나요?",slug:"슬래싱-페널티를-발생하는-경우는-무엇이-있나요"},{level:3,title:"검증인은 꼭 자체 위임(셀프본딩)을 해야하나요?",slug:"검증인은-꼭-자체-위임-셀프본딩-을-해야하나요"},{level:3,title:"상위 검증인에게 스테이킹이 몰리는 현상은 어떻게 막을 수 있나요?",slug:"상위-검증인에게-스테이킹이-몰리는-현상은-어떻게-막을-수-있나요"},{level:2,title:"기술적 요건",slug:"기술적-요건"},{level:3,title:"필요한 하드웨어 장비는 무엇인가요?",slug:"필요한-하드웨어-장비는-무엇인가요"},{level:3,title:"필요한 소프트웨어는 무엇인가요?",slug:"필요한-소프트웨어는-무엇인가요"},{level:3,title:"필요한 대역폭은 어느 정도 인가요?",slug:"필요한-대역폭은-어느-정도-인가요"},{level:3,title:"검증인을 하는 것은 운영 측면에서 어떤가요?",slug:"검증인을-하는-것은-운영-측면에서-어떤가요"},{level:3,title:"키 관리는 어떻게 하는 것이 바람직한가요?",slug:"키-관리는-어떻게-하는-것이-바람직한가요"},{level:3,title:"운영 측면에서 어떤 요소들이 있나요?",slug:"운영-측면에서-어떤-요소들이-있나요"},{level:3,title:"보수 측면에서 어떤 것들이 요구되나요?",slug:"보수-측면에서-어떤-것들이-요구되나요"},{level:3,title:"검증인은 어떻게 DDoS 공격에 방어를 할 수 있을까요?",slug:"검증인은-어떻게-ddos-공격에-방어를-할-수-있을까요"}]}],themeConfig:{docsRepo:"cosmos/gaia",docsBranch:"main",docsDir:"docs",editLinks:!0,label:"hub",currentParameters:{auth:{MaxMemoCharacters:"512",SigVerifyCostED25519:"590",SigVerifyCostSecp256k1:"1000",TxSigLimit:"7",TxSizeCostPerByte:"10"},bank:{DefaultSendEnabled:!0,SendEnabled:[]},baseapp:{BlockParams:{max_bytes:"200000",max_gas:"40000000"},EvidenceParams:{max_age_duration:"172800000000000",max_age_num_blocks:"1000000",max_bytes:"50000"},ValidatorParams:{pub_key_types:["ed25519"]}},crisis:{ConstantFee:{amount:"1333000000",denom:"uatom"}},distribution:{baseproposerreward:"0.010000000000000000",bonusproposerreward:"0.040000000000000000",communitytax:"0.020000000000000000",withdrawaddrenabled:!0},gov:{depositparams:{max_deposit_period:"1209600000000000",min_deposit:[{amount:"64000000",denom:"uatom"}]},tallyparams:{quorum:"0.400000000000000000",threshold:"0.500000000000000000",veto_threshold:"0.334000000000000000"},votingparams:{voting_period:"1209600000000000"}},liquidity:{CircuitBreakerEnabled:!1,InitPoolCoinMintAmount:"1000000",MaxOrderAmountRatio:"0.100000000000000000",MaxReserveCoinAmount:"0",MinInitDepositAmount:"1000000",PoolCreationFee:[{amount:"40000000",denom:"uatom"}],PoolTypes:[{description:"Standard liquidity pool with pool price function X/Y, ESPM constraint, and two kinds of reserve coins",id:1,max_reserve_coin_num:2,min_reserve_coin_num:2,name:"StandardLiquidityPool"}],SwapFeeRate:"0.003000000000000000",UnitBatchHeight:1,WithdrawFeeRate:"0.000000000000000000"},mint:{BlocksPerYear:"4360000",GoalBonded:"0.670000000000000000",InflationMax:"0.200000000000000000",InflationMin:"0.070000000000000000",InflationRateChange:"1.000000000000000000",MintDenom:"uatom"},slashing:{DowntimeJailDuration:"600000000000",MinSignedPerWindow:"0.050000000000000000",SignedBlocksWindow:"10000",SlashFractionDoubleSign:"0.050000000000000000",SlashFractionDowntime:"0.000100000000000000"},staking:{BondDenom:"uatom",HistoricalEntries:1e4,MaxEntries:7,MaxValidators:125,UnbondingTime:"1814400000000000"},transfer:{ReceiveEnabled:!0,SendEnabled:!0}},topbar:{banner:!1},sidebar:{nav:[{title:"Resources",children:[{title:"Tutorials",path:"https://tutorials.cosmos.network"},{title:"SDK API Reference",path:"https://godoc.org/github.com/cosmos/cosmos-sdk"},{title:"REST API Spec",path:"https://cosmos.network/rpc/"},{title:"REST API Spec ABC",path:"https://cosmos.network/rpc/"}]}]},gutter:{editLink:!0},footer:{question:{text:"Chat with Cosmos developers in Discord or reach out on the SDK Developer Forum to learn more."},logo:"/logo-bw.svg",textLink:{text:"cosmos.network",url:"https://cosmos.network"},services:[{service:"medium",url:"https://blog.cosmos.network/"},{service:"twitter",url:"https://twitter.com/cosmos"},{service:"github",url:"https://github.com/cosmos/gaia"},{service:"reddit",url:"https://reddit.com/r/cosmosnetwork"},{service:"telegram",url:"https://t.me/cosmosproject"},{service:"youtube",url:"https://www.youtube.com/c/CosmosProject"}],smallprint:"This website is maintained by Interchain Foundation/Informal Systems. The contents and opinions of this website are those of Interchain Foundation/Informal Systems.",links:[{title:"Documentation",children:[]},{title:"Community",children:[{title:"Cosmos blog",url:"https://blog.cosmos.network/"},{title:"Forum",url:"https://forum.cosmos.network/"}]},{title:"Contributing",children:[{title:"Contributing to the docs",url:"https://github.com/cosmos/gaia/blob/main/docs/DOCS_README.md"},{title:"Source code on GitHub",url:"https://github.com/cosmos/gaia/"}]}]}},locales:{"/":{selectText:"Languages",label:"English",lang:"en-US",path:"/"},"/es/":{selectText:"Idiomas",label:"español",lang:"es",path:"/es/"},"/ko/":{selectText:"언어 선택",label:"한국어",lang:"ko",path:"/ko/"},"/zh/":{selectText:"选择语言",label:"中文(简体)",lang:"zh-CN",path:"/zh/"}}};var ts=n(21),ns=n(14),rs=n.n(ns);n(392);jo.component("home",()=>n.e(27).then(n.bind(null,457))),jo.component("CardBanner",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,481))),jo.component("Homepage",()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,480))),jo.component("IconArrow",()=>n.e(29).then(n.bind(null,479))),jo.component("IconCircleCross",()=>n.e(30).then(n.bind(null,478))),jo.component("IconSearch",()=>n.e(31).then(n.bind(null,477))),jo.component("IconSpaceship",()=>n.e(32).then(n.bind(null,476))),jo.component("IconWindow",()=>n.e(33).then(n.bind(null,475))),jo.component("ImageLetter",()=>n.e(34).then(n.bind(null,474))),jo.component("LayoutDefault",()=>Promise.all([n.e(0),n.e(7)]).then(n.bind(null,456))),jo.component("LogoCore",()=>n.e(35).then(n.bind(null,472))),jo.component("LogoCoreText",()=>n.e(36).then(n.bind(null,471))),jo.component("LogoHub",()=>n.e(37).then(n.bind(null,639))),jo.component("LogoHubText",()=>n.e(38).then(n.bind(null,626))),jo.component("LogoSdk",()=>n.e(39).then(n.bind(null,624))),jo.component("LogoSdkText",()=>n.e(40).then(n.bind(null,623))),jo.component("SectionSearch",()=>Promise.all([n.e(0),n.e(8)]).then(n.bind(null,455))),jo.component("TmAside",()=>Promise.all([n.e(0),n.e(9)]).then(n.bind(null,454))),jo.component("TmBreadcrumbs",()=>Promise.all([n.e(0),n.e(10)]).then(n.bind(null,453))),jo.component("TmCodeBlock",()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,452))),jo.component("TmContentCards",()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,451))),jo.component("TmFooter",()=>Promise.all([n.e(0),n.e(12)]).then(n.bind(null,450))),jo.component("TmFooterLinks",()=>Promise.all([n.e(0),n.e(13)]).then(n.bind(null,459))),jo.component("TmHelpSupport",()=>Promise.all([n.e(0),n.e(14)]).then(n.bind(null,449))),jo.component("TmIconBasics",()=>n.e(41).then(n.bind(null,612))),jo.component("TmIconCore",()=>n.e(42).then(n.bind(null,543))),jo.component("TmIconDash",()=>n.e(43).then(n.bind(null,482))),jo.component("TmIconEdit",()=>Promise.all([n.e(0),n.e(15)]).then(n.bind(null,473))),jo.component("TmIconHex",()=>n.e(44).then(n.bind(null,622))),jo.component("TmIconInterfaces",()=>n.e(45).then(n.bind(null,619))),jo.component("TmIconIntroduction",()=>n.e(46).then(n.bind(null,618))),jo.component("TmIconMenu",()=>n.e(47).then(n.bind(null,617))),jo.component("TmIconModules",()=>n.e(48).then(n.bind(null,616))),jo.component("TmIconOutbound",()=>n.e(49).then(n.bind(null,615))),jo.component("TmIconPaperPen",()=>n.e(50).then(n.bind(null,458))),jo.component("TmIconSpecifications",()=>n.e(51).then(n.bind(null,613))),jo.component("TmLogoChat",()=>n.e(52).then(n.bind(null,627))),jo.component("TmLogoCore",()=>n.e(53).then(n.bind(null,469))),jo.component("TmLogoCosmos",()=>n.e(54).then(n.bind(null,625))),jo.component("TmLogoHub",()=>n.e(55).then(n.bind(null,468))),jo.component("TmLogoIbc",()=>n.e(56).then(n.bind(null,467))),jo.component("TmLogoSdk",()=>n.e(57).then(n.bind(null,466))),jo.component("TmLogoTendermint",()=>n.e(58).then(n.bind(null,621))),jo.component("TmNewsletterForm",()=>Promise.all([n.e(0),n.e(16)]).then(n.bind(null,620))),jo.component("TmSearch",()=>Promise.all([n.e(0),n.e(17)]).then(n.bind(null,465))),jo.component("TmSelectLanguage",()=>Promise.all([n.e(0),n.e(18)]).then(n.bind(null,464))),jo.component("TmSelectVersion",()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,463))),jo.component("TmSidebar",()=>Promise.all([n.e(0),n.e(20)]).then(n.bind(null,462))),jo.component("TmSidebarContent",()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,461))),jo.component("TmSidebarTree",()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,460))),jo.component("TmTocMenu",()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,448))),jo.component("TmTopBanner",()=>Promise.all([n.e(0),n.e(24)]).then(n.bind(null,470))),jo.component("TmTopBar",()=>Promise.all([n.e(0),n.e(25)]).then(n.bind(null,611)));var os=n(149),is=n.n(os),as=[({Vue:e})=>{e.component("df",ts.c),e.mixin({methods:{md:e=>`
${new rs.a({html:!0,linkify:!0}).renderInline(e)}
`}}),n(391)},{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},({router:e})=>{var t,n,r,o,i,a;"undefined"!=typeof window&&(t=window,n=document,r="script",o="ga",t.GoogleAnalyticsObject=o,t.ga=t.ga||function(){(t.ga.q=t.ga.q||[]).push(arguments)},t.ga.l=1*new Date,i=n.createElement(r),a=n.getElementsByTagName(r)[0],i.async=1,i.src="https://www.google-analytics.com/analytics.js",a.parentNode.insertBefore(i,a),ga("create","UA-51029217-2","auto"),ga("set","anonymizeIp",!0),e.afterEach((function(t){ga("set","page",e.app.$withBase(t.fullPath)),ga("send","pageview")})))},({Vue:e})=>e.use(is.a)],ss=[];class ls extends class{constructor(){this.store=new jo({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){jo.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(ls.prototype,{getPageAsyncComponent:qa,getLayoutAsyncComponent:$a,getAsyncComponent:za,getVueComponent:Ba});var us={install(e){const t=new ls;e.$vuepress=t,e.prototype.$vuepress=t}};function cs(e,t){const n=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var ps={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;var n,r;return n="pageKey",r=t,"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[n]=r),jo.component(t)||jo.component(t,qa(t)),jo.component(t)?e(t):e("")}},ds={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:n})=>e("div",{class:["content__"+t.slotKey]},n()[t.slotKey])},hs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},fs=(n(393),n(394),n(1)),vs=Object(fs.a)(hs,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[t("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),t("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports,gs={functional:!0,render(e,{parent:t,children:n}){if(t._isMounted)return n;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};jo.config.productionTip=!1,jo.use(wa),jo.use(us),jo.mixin(function(e,t,n=jo){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),n.$vuepress.$set("siteData",t);const r=new(e(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((e,t)=>(t.startsWith("$")&&(e[t]=o[t].get),e),i),{computed:i}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,n;for(const r in e)"/"===r?n=e[r]:0===this.$page.path.indexOf(r)&&(t=e[r]);return t||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const n=this.$siteTitle,r=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let n=0;nn||(e.hash?!jo.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,n,r)=>{if(cs(e,t.path))r();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const n=t.path.replace(/\/$/,"")+".html";cs(e,n)?r(n):r()}else r();else{const n=t.path+"/",o=t.path+".html";cs(e,o)?r(o):cs(e,n)?r(n):r()}})}(n);const r={};try{await Promise.all(as.filter(e=>"function"==typeof e).map(t=>t({Vue:jo,options:r,router:n,siteData:es,isServer:e})))}catch(e){console.error(e)}return{app:new jo(Object.assign(r,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},ss.map(t=>e(t)))])})),router:n}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})}]); \ No newline at end of file + */function Do(e,t){for(var n in t)e[n]=t[n];return e}var Mo=/[!'()*]/g,Io=function(e){return"%"+e.charCodeAt(0).toString(16)},Ro=/%2C/g,Fo=function(e){return encodeURIComponent(e).replace(Mo,Io).replace(Ro,",")};function qo(e){try{return decodeURIComponent(e)}catch(e){0}return e}var $o=function(e){return null==e||"object"==typeof e?e:String(e)};function zo(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),r=qo(n.shift()),o=n.length>0?qo(n.join("=")):null;void 0===t[r]?t[r]=o:Array.isArray(t[r])?t[r].push(o):t[r]=[t[r],o]})),t):t}function Bo(e){var t=e?Object.keys(e).map((function(t){var n=e[t];if(void 0===n)return"";if(null===n)return Fo(t);if(Array.isArray(n)){var r=[];return n.forEach((function(e){void 0!==e&&(null===e?r.push(Fo(t)):r.push(Fo(t)+"="+Fo(e)))})),r.join("&")}return Fo(t)+"="+Fo(n)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var No=/\/?$/;function Uo(e,t,n,r){var o=r&&r.options.stringifyQuery,i=t.query||{};try{i=Ho(i)}catch(e){}var a={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:i,params:t.params||{},fullPath:Zo(t,o),matched:e?Go(e):[]};return n&&(a.redirectedFrom=Zo(n,o)),Object.freeze(a)}function Ho(e){if(Array.isArray(e))return e.map(Ho);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=Ho(e[n]);return t}return e}var Vo=Uo(null,{path:"/"});function Go(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function Zo(e,t){var n=e.path,r=e.query;void 0===r&&(r={});var o=e.hash;return void 0===o&&(o=""),(n||"/")+(t||Bo)(r)+o}function Wo(e,t,n){return t===Vo?e===t:!!t&&(e.path&&t.path?e.path.replace(No,"")===t.path.replace(No,"")&&(n||e.hash===t.hash&&Ko(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(n||e.hash===t.hash&&Ko(e.query,t.query)&&Ko(e.params,t.params))))}function Ko(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e).sort(),r=Object.keys(t).sort();return n.length===r.length&&n.every((function(n,o){var i=e[n];if(r[o]!==n)return!1;var a=t[n];return null==i||null==a?i===a:"object"==typeof i&&"object"==typeof a?Ko(i,a):String(i)===String(a)}))}function Jo(e){for(var t=0;t=0&&(t=e.slice(r),e=e.slice(0,r));var o=e.indexOf("?");return o>=0&&(n=e.slice(o+1),e=e.slice(0,o)),{path:e,query:n,hash:t}}(o.path||""),u=t&&t.path||"/",c=l.path?Qo(l.path,u,n||o.append):u,p=function(e,t,n){void 0===t&&(t={});var r,o=n||zo;try{r=o(e||"")}catch(e){r={}}for(var i in t){var a=t[i];r[i]=Array.isArray(a)?a.map($o):$o(a)}return r}(l.query,o.query,r&&r.options.parseQuery),d=o.hash||l.hash;return d&&"#"!==d.charAt(0)&&(d="#"+d),{_normalized:!0,path:c,query:p,hash:d}}var _i,ki=function(){},wi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,p=null==u?"router-link-active":u,d=null==c?"router-link-exact-active":c,h=null==this.activeClass?p:this.activeClass,f=null==this.exactActiveClass?d:this.exactActiveClass,v=a.redirectedFrom?Uo(null,yi(a.redirectedFrom),null,n):a;l[f]=Wo(r,v,this.exactPath),l[h]=this.exact||this.exactPath?l[f]:function(e,t){return 0===e.path.replace(No,"/").indexOf(t.path.replace(No,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(r,v);var g=l[f]?this.ariaCurrentValue:null,m=function(e){xi(e)&&(t.replace?n.replace(i,ki):n.push(i,ki))},b={click:xi};Array.isArray(this.event)?this.event.forEach((function(e){b[e]=m})):b[this.event]=m;var y={class:l},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:l[h],isExactActive:l[f]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?e():e("span",{},_)}if("a"===this.tag)y.on=b,y.attrs={href:s,"aria-current":g};else{var k=function e(t){var n;if(t)for(var r=0;r-1&&(s.params[d]=n.params[d]);return s.path=bi(c.path,s.params),l(c,s,a)}if(s.path){s.params={};for(var h=0;h-1}function ea(e,t){return Qi(e)&&e._isRouter&&(null==t||e.type===t)}function ta(e,t,n){var r=function(o){o>=e.length?n():e[o]?t(e[o],(function(){r(o+1)})):r(o+1)};r(0)}function na(e){return function(t,n,r){var o=!1,i=0,a=null;ra(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){o=!0,i++;var l,u=aa((function(t){var o;((o=t).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:_i.extend(t),n.components[s]=t,--i<=0&&r()})),c=aa((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=Qi(e)?e:new Error(t),r(a))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var p=l.component;p&&"function"==typeof p.then&&p.then(u,c)}}})),o||r()}}function ra(e,t){return oa(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function oa(e){return Array.prototype.concat.apply([],e)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(e){var t=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!t)return t=!0,e.apply(this,n)}}var sa=function(e,t){this.router=e,this.base=function(e){if(!e)if(Ci){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=Vo,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function la(e,t,n,r){var o=ra(e,(function(e,r,o,i){var a=function(e,t){"function"!=typeof e&&(e=_i.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return n(e,r,o,i)})):n(a,r,o,i)}));return oa(r?o.reverse():o)}function ua(e,t){if(t)return function(){return e.apply(t,arguments)}}sa.prototype.listen=function(e){this.cb=e},sa.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},sa.prototype.onError=function(e){this.errorCbs.push(e)},sa.prototype.transitionTo=function(e,t,n){var r,o=this;try{r=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),t&&t(r),o.ensureURL(),o.router.afterHooks.forEach((function(e){e&&e(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(e){e(r)})))}),(function(e){n&&n(e),e&&!o.ready&&(ea(e,Wi.redirected)&&i===Vo||(o.ready=!0,o.readyErrorCbs.forEach((function(t){t(e)}))))}))},sa.prototype.confirmTransition=function(e,t,n){var r=this,o=this.current;this.pending=e;var i,a,s=function(e){!ea(e)&&Qi(e)&&(r.errorCbs.length?r.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,u=o.matched.length-1;if(Wo(e,o)&&l===u&&e.matched[l]===o.matched[u])return this.ensureURL(),e.hash&&Ri(this.router,o,e,!1),s(((a=Xi(i=o,e,Wi.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var c=function(e,t){var n,r=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,r=Vi&&n;r&&this.listeners.push(Ii());var o=function(){var n=e.current,o=pa(e.base);e.current===Vo&&o===e._startLocation||e.transitionTo(o,(function(e){r&&Ri(t,e,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){Gi(ei(r.base+e.fullPath)),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){Zi(ei(r.base+e.fullPath)),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(pa(this.base)!==this.current.fullPath){var t=ei(this.base+this.current.fullPath);e?Gi(t):Zi(t)}},t.prototype.getCurrentLocation=function(){return pa(this.base)},t}(sa);function pa(e){var t=window.location.pathname,n=t.toLowerCase(),r=e.toLowerCase();return!e||n!==r&&0!==n.indexOf(ei(r+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var da=function(e){function t(t,n,r){e.call(this,t,n),r&&function(e){var t=pa(e);if(!/^\/#/.test(t))return window.location.replace(ei(e+"/#"+t)),!0}(this.base)||ha()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=Vi&&t;n&&this.listeners.push(Ii());var r=function(){var t=e.current;ha()&&e.transitionTo(fa(),(function(r){n&&Ri(e.router,r,t,!0),Vi||ba(r.fullPath)}))},o=Vi?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},t.prototype.push=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){ma(e.fullPath),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){ba(e.fullPath),Ri(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;fa()!==t&&(e?ma(t):ba(t))},t.prototype.getCurrentLocation=function(){return fa()},t}(sa);function ha(){var e=fa();return"/"===e.charAt(0)||(ba("/"+e),!1)}function fa(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function va(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function ma(e){Vi?Gi(va(e)):window.location.hash=e}function ba(e){Vi?Zi(va(e)):window.location.replace(va(e))}var ya=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index+1).concat(e),r.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var e=t.current;t.index=n,t.updateRoute(r),t.router.afterHooks.forEach((function(t){t&&t(r,e)}))}),(function(e){ea(e,Wi.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(sa),_a=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ei(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!Vi&&!1!==e.fallback,this.fallback&&(t="hash"),Ci||(t="abstract"),this.mode=t,t){case"history":this.history=new ca(this,e.base);break;case"hash":this.history=new da(this,e.base,this.fallback);break;case"abstract":this.history=new ya(this,e.base);break;default:0}},ka={currentRoute:{configurable:!0}};_a.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},ka.currentRoute.get=function(){return this.history&&this.history.current},_a.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof ca||n instanceof da){var r=function(e){n.setupListeners(),function(e){var r=n.current,o=t.options.scrollBehavior;Vi&&o&&"fullPath"in e&&Ri(t,e,r,!1)}(e)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},_a.prototype.beforeEach=function(e){return xa(this.beforeHooks,e)},_a.prototype.beforeResolve=function(e){return xa(this.resolveHooks,e)},_a.prototype.afterEach=function(e){return xa(this.afterHooks,e)},_a.prototype.onReady=function(e,t){this.history.onReady(e,t)},_a.prototype.onError=function(e){this.history.onError(e)},_a.prototype.push=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){r.history.push(e,t,n)}));this.history.push(e,t,n)},_a.prototype.replace=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){r.history.replace(e,t,n)}));this.history.replace(e,t,n)},_a.prototype.go=function(e){this.history.go(e)},_a.prototype.back=function(){this.go(-1)},_a.prototype.forward=function(){this.go(1)},_a.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},_a.prototype.resolve=function(e,t,n){var r=yi(e,t=t||this.history.current,n,this),o=this.match(r,t),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(e,t,n){var r="hash"===n?"#"+t:t;return e?ei(e+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},_a.prototype.getRoutes=function(){return this.matcher.getRoutes()},_a.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==Vo&&this.history.transitionTo(this.history.getCurrentLocation())},_a.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==Vo&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(_a.prototype,ka);var wa=_a;function xa(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}_a.install=function e(t){if(!e.installed||_i!==t){e.installed=!0,_i=t;var n=function(e){return void 0!==e},r=function(e,t){var r=e.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",Xo),t.component("RouterLink",wi);var o=t.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},_a.version="3.6.5",_a.isNavigationFailure=ea,_a.NavigationFailureType=Wi,_a.START_LOCATION=Vo,Ci&&window.Vue&&window.Vue.use(_a);n(57);n(186);var Ca={GlobalLayout:()=>Promise.resolve().then(n.bind(null,0)),NotFound:()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,628)),Layout:()=>n.e(28).then(n.bind(null,631))},Sa={"v-27502720":()=>n.e(59).then(n.bind(null,634)),"v-5cedbb66":()=>n.e(61).then(n.bind(null,637)),"v-127d50ca":()=>n.e(60).then(n.bind(null,638)),"v-09de3eeb":()=>n.e(62).then(n.bind(null,636)),"v-7ccd641c":()=>n.e(63).then(n.bind(null,635)),"v-f8267540":()=>n.e(65).then(n.bind(null,633)),"v-81da516a":()=>n.e(66).then(n.bind(null,632)),"v-4f6c3d8b":()=>n.e(70).then(n.bind(null,630)),"v-6a5d66b0":()=>n.e(71).then(n.bind(null,629)),"v-19b6f5cc":()=>n.e(73).then(n.bind(null,610)),"v-0589512b":()=>n.e(74).then(n.bind(null,609)),"v-50a2c1ac":()=>n.e(77).then(n.bind(null,608)),"v-06e3b56e":()=>n.e(76).then(n.bind(null,607)),"v-1c8e49b4":()=>n.e(78).then(n.bind(null,606)),"v-606149c6":()=>n.e(79).then(n.bind(null,605)),"v-66b4080b":()=>n.e(80).then(n.bind(null,604)),"v-9ff0f970":()=>n.e(83).then(n.bind(null,603)),"v-e4b2f83a":()=>n.e(84).then(n.bind(null,602)),"v-bf1b043c":()=>n.e(85).then(n.bind(null,601)),"v-39316e24":()=>n.e(86).then(n.bind(null,600)),"v-43a7e1f8":()=>n.e(87).then(n.bind(null,599)),"v-4ac77b64":()=>n.e(89).then(n.bind(null,598)),"v-ff7fa248":()=>n.e(88).then(n.bind(null,597)),"v-2758d5a0":()=>n.e(95).then(n.bind(null,596)),"v-6a4f1c80":()=>n.e(96).then(n.bind(null,595)),"v-7431790b":()=>n.e(97).then(n.bind(null,594)),"v-4b23576b":()=>n.e(98).then(n.bind(null,593)),"v-64792cc2":()=>n.e(100).then(n.bind(null,592)),"v-725866d9":()=>n.e(103).then(n.bind(null,591)),"v-230a9c4b":()=>n.e(105).then(n.bind(null,590)),"v-2dfd010b":()=>n.e(108).then(n.bind(null,589)),"v-37169a5a":()=>n.e(109).then(n.bind(null,588)),"v-b8864dea":()=>n.e(110).then(n.bind(null,587)),"v-68a68850":()=>n.e(112).then(n.bind(null,586)),"v-768a4c68":()=>n.e(115).then(n.bind(null,585)),"v-780264ab":()=>n.e(117).then(n.bind(null,584)),"v-ac3ab000":()=>n.e(26).then(n.bind(null,583)),"v-51aac6a0":()=>n.e(122).then(n.bind(null,582)),"v-273748bf":()=>n.e(118).then(n.bind(null,581)),"v-20bfb9fc":()=>n.e(123).then(n.bind(null,580)),"v-414999cb":()=>n.e(124).then(n.bind(null,579)),"v-3169ddcb":()=>n.e(125).then(n.bind(null,578)),"v-15244044":()=>n.e(127).then(n.bind(null,577)),"v-59c05d68":()=>n.e(129).then(n.bind(null,576)),"v-77046140":()=>n.e(130).then(n.bind(null,575)),"v-1916440a":()=>n.e(131).then(n.bind(null,574)),"v-25a92840":()=>n.e(132).then(n.bind(null,573)),"v-79b59060":()=>n.e(134).then(n.bind(null,572)),"v-aee924c0":()=>n.e(137).then(n.bind(null,571)),"v-5c94f8c0":()=>n.e(139).then(n.bind(null,570)),"v-3254b154":()=>n.e(140).then(n.bind(null,569)),"v-bfd7ad74":()=>n.e(141).then(n.bind(null,568)),"v-7b5c086b":()=>n.e(144).then(n.bind(null,567)),"v-48a7c4e6":()=>n.e(146).then(n.bind(null,566)),"v-45ad53dd":()=>n.e(147).then(n.bind(null,565)),"v-a3068aaa":()=>n.e(161).then(n.bind(null,564)),"v-071e366f":()=>n.e(163).then(n.bind(null,563)),"v-b9e98ed4":()=>n.e(164).then(n.bind(null,562)),"v-7df08ab4":()=>n.e(166).then(n.bind(null,561)),"v-0d07c820":()=>n.e(167).then(n.bind(null,560)),"v-0110ec16":()=>n.e(170).then(n.bind(null,559)),"v-79617eab":()=>n.e(171).then(n.bind(null,558)),"v-6d897402":()=>n.e(172).then(n.bind(null,557)),"v-37d38700":()=>n.e(173).then(n.bind(null,556)),"v-4da7b8c0":()=>n.e(174).then(n.bind(null,555)),"v-3bacdca0":()=>n.e(175).then(n.bind(null,554)),"v-c519eab8":()=>n.e(177).then(n.bind(null,553)),"v-1813a4ea":()=>n.e(178).then(n.bind(null,552)),"v-4cbea1b0":()=>n.e(180).then(n.bind(null,551)),"v-ec326d3c":()=>n.e(181).then(n.bind(null,550)),"v-07cf9e68":()=>n.e(183).then(n.bind(null,549)),"v-dd4a8258":()=>n.e(182).then(n.bind(null,548)),"v-5c30b8f6":()=>n.e(184).then(n.bind(null,547)),"v-a4aa1cc0":()=>n.e(186).then(n.bind(null,546)),"v-621d6140":()=>n.e(189).then(n.bind(null,545)),"v-1731e69c":()=>n.e(191).then(n.bind(null,544)),"v-f2b0d680":()=>n.e(190).then(n.bind(null,614)),"v-feb36d80":()=>n.e(193).then(n.bind(null,542)),"v-8fd705a0":()=>n.e(64).then(n.bind(null,541)),"v-f385361c":()=>n.e(67).then(n.bind(null,540)),"v-39ba7ec0":()=>n.e(69).then(n.bind(null,539)),"v-b0f4e33c":()=>n.e(72).then(n.bind(null,538)),"v-27ea8460":()=>n.e(81).then(n.bind(null,537)),"v-fd3648c0":()=>n.e(82).then(n.bind(null,536)),"v-6c706790":()=>n.e(91).then(n.bind(null,535)),"v-7cd69f68":()=>n.e(90).then(n.bind(null,534)),"v-16a2b68a":()=>n.e(93).then(n.bind(null,533)),"v-80c733e0":()=>n.e(92).then(n.bind(null,532)),"v-405c4ac0":()=>n.e(94).then(n.bind(null,531)),"v-5d13e021":()=>n.e(99).then(n.bind(null,530)),"v-23577189":()=>n.e(101).then(n.bind(null,529)),"v-183e9cb3":()=>n.e(102).then(n.bind(null,528)),"v-b74fdc6a":()=>n.e(104).then(n.bind(null,527)),"v-bd8534ea":()=>n.e(106).then(n.bind(null,526)),"v-2e2517eb":()=>n.e(107).then(n.bind(null,525)),"v-69e7af00":()=>n.e(114).then(n.bind(null,524)),"v-4aec61d8":()=>n.e(121).then(n.bind(null,523)),"v-524c67f6":()=>n.e(128).then(n.bind(null,522)),"v-5d40e180":()=>n.e(133).then(n.bind(null,521)),"v-4251c2a0":()=>n.e(138).then(n.bind(null,520)),"v-63a66800":()=>n.e(143).then(n.bind(null,519)),"v-e9d91d38":()=>n.e(145).then(n.bind(null,518)),"v-d8722040":()=>n.e(148).then(n.bind(null,517)),"v-3a6c3c60":()=>n.e(151).then(n.bind(null,516)),"v-78add710":()=>n.e(150).then(n.bind(null,515)),"v-76ff3f40":()=>n.e(152).then(n.bind(null,514)),"v-69a7e640":()=>n.e(153).then(n.bind(null,513)),"v-15fddba0":()=>n.e(155).then(n.bind(null,512)),"v-1ed61780":()=>n.e(154).then(n.bind(null,511)),"v-3b66c300":()=>n.e(156).then(n.bind(null,510)),"v-fc555fcc":()=>n.e(158).then(n.bind(null,509)),"v-08131412":()=>n.e(157).then(n.bind(null,508)),"v-c184b540":()=>n.e(159).then(n.bind(null,507)),"v-77c0d338":()=>n.e(160).then(n.bind(null,506)),"v-f8a9ba00":()=>n.e(162).then(n.bind(null,505)),"v-611af834":()=>n.e(4).then(n.bind(null,504)),"v-75000dc1":()=>n.e(169).then(n.bind(null,503)),"v-55d7a0e0":()=>n.e(168).then(n.bind(null,502)),"v-dd937a80":()=>n.e(185).then(n.bind(null,501)),"v-29e61a5c":()=>n.e(188).then(n.bind(null,500)),"v-2acc3e00":()=>n.e(75).then(n.bind(null,499)),"v-a8848234":()=>n.e(136).then(n.bind(null,498)),"v-68a36ea0":()=>n.e(149).then(n.bind(null,497)),"v-91b151c0":()=>n.e(165).then(n.bind(null,496)),"v-3cb8cfc8":()=>n.e(179).then(n.bind(null,495)),"v-26ead5fe":()=>n.e(187).then(n.bind(null,494)),"v-1d21baa0":()=>n.e(192).then(n.bind(null,493)),"v-b5fc8180":()=>n.e(68).then(n.bind(null,492)),"v-56618330":()=>n.e(113).then(n.bind(null,491)),"v-f4d75640":()=>n.e(119).then(n.bind(null,490)),"v-398eb7e6":()=>n.e(120).then(n.bind(null,489)),"v-7e931cdc":()=>n.e(135).then(n.bind(null,488)),"v-143a889c":()=>n.e(176).then(n.bind(null,487)),"v-17b4aa2d":()=>n.e(111).then(n.bind(null,486)),"v-0ee0b71e":()=>n.e(116).then(n.bind(null,485)),"v-9a504180":()=>n.e(126).then(n.bind(null,484)),"v-7cf7c3e0":()=>n.e(142).then(n.bind(null,483))};function Aa(e){const t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}const Ea=/-(\w)/g,Pa=Aa(e=>e.replace(Ea,(e,t)=>t?t.toUpperCase():"")),La=/\B([A-Z])/g,Oa=Aa(e=>e.replace(La,"-$1").toLowerCase()),Ta=Aa(e=>e.charAt(0).toUpperCase()+e.slice(1));function ja(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(Ta(Pa(t))):e(Ta(t))||e(Oa(t))}const Da=Object.assign({},Ca,Sa),Ma=e=>Da[e],Ia=e=>Sa[e],Ra=e=>Ca[e],Fa=e=>jo.component(e);function qa(e){return ja(Ia,e)}function $a(e){return ja(Ra,e)}function za(e){return ja(Ma,e)}function Ba(e){return ja(Fa,e)}function Na(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!Ba(e)&&za(e)){const t=await za(e)();jo.component(e,t.default)}}))}var Ua=n(144),Ha=n.n(Ua),Va=n(145),Ga=n.n(Va);function Za(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function Wa(e=""){return e?``:""}function Ka(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(n=>{t.setAttribute(n,e[n])}),document.head.appendChild(t),t})}function Ja(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var Xa=[{created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${n}="${Ga()(e[n])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=Wa(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=Ka(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return Ha()([{name:"description",content:this.$description}],e,this.siteMeta,Ja)},updateCanonicalLink(){Za(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",Wa(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){Ka(null,this.currentMetaTags),Za()}}],Ya=n(0);!function(e,t,n){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],n);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...n);break;default:throw new Error("Unknown option name.")}}(Ya.default,"mixins",Xa);const Qa=[{name:"v-27502720",path:"/DOCS_README.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-27502720").then(n)}},{name:"v-5cedbb66",path:"/architecture/PROCESS.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5cedbb66").then(n)}},{name:"v-127d50ca",path:"/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("home","v-127d50ca").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-09de3eeb",path:"/architecture/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-09de3eeb").then(n)}},{path:"/architecture/index.html",redirect:"/architecture/"},{name:"v-7ccd641c",path:"/architecture/adr-001-interchain-accounts.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7ccd641c").then(n)}},{name:"v-f8267540",path:"/architecture/adr-template.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f8267540").then(n)}},{name:"v-81da516a",path:"/delegators/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-81da516a").then(n)}},{path:"/delegators/index.html",redirect:"/delegators/"},{name:"v-4f6c3d8b",path:"/es/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4f6c3d8b").then(n)}},{path:"/es/index.html",redirect:"/es/"},{name:"v-6a5d66b0",path:"/es/gaia-tutorials/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6a5d66b0").then(n)}},{name:"v-19b6f5cc",path:"/es/gaia-tutorials/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-19b6f5cc").then(n)}},{name:"v-0589512b",path:"/es/governance/community-pool-spend/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0589512b").then(n)}},{path:"/es/governance/community-pool-spend/index.html",redirect:"/es/governance/community-pool-spend/"},{name:"v-50a2c1ac",path:"/getting-started/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-50a2c1ac").then(n)}},{name:"v-06e3b56e",path:"/getting-started/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-06e3b56e").then(n)}},{path:"/getting-started/index.html",redirect:"/getting-started/"},{name:"v-1c8e49b4",path:"/getting-started/quickstart.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1c8e49b4").then(n)}},{name:"v-606149c6",path:"/getting-started/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-606149c6").then(n)}},{name:"v-66b4080b",path:"/governance/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-66b4080b").then(n)}},{path:"/governance/index.html",redirect:"/governance/"},{name:"v-9ff0f970",path:"/governance/process.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-9ff0f970").then(n)}},{name:"v-e4b2f83a",path:"/governance/proposal-types/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-e4b2f83a").then(n)}},{path:"/governance/proposal-types/index.html",redirect:"/governance/proposal-types/"},{name:"v-bf1b043c",path:"/governance/proposal-types/community-pool-spend.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-bf1b043c").then(n)}},{name:"v-39316e24",path:"/governance/proposal-types/param-change.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-39316e24").then(n)}},{name:"v-43a7e1f8",path:"/governance/proposal-types/params-change/Auth.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-43a7e1f8").then(n)}},{name:"v-4ac77b64",path:"/governance/proposal-types/params-change/Crisis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4ac77b64").then(n)}},{name:"v-ff7fa248",path:"/governance/proposal-types/params-change/Bank.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-ff7fa248").then(n)}},{name:"v-2758d5a0",path:"/governance/proposal-types/params-change/param-index.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2758d5a0").then(n)}},{name:"v-6a4f1c80",path:"/governance/proposal-types/text-prop.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6a4f1c80").then(n)}},{name:"v-7431790b",path:"/governance/proposals/2020-10-blocks-per-year/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7431790b").then(n)}},{path:"/governance/proposals/2020-10-blocks-per-year/index.html",redirect:"/governance/proposals/2020-10-blocks-per-year/"},{name:"v-4b23576b",path:"/governance/proposals/2020-11-inflation-rate-change/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4b23576b").then(n)}},{path:"/governance/proposals/2020-11-inflation-rate-change/index.html",redirect:"/governance/proposals/2020-11-inflation-rate-change/"},{name:"v-64792cc2",path:"/governance/proposals/2021-01-delay-stargate-upgrade/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-64792cc2").then(n)}},{path:"/governance/proposals/2021-01-delay-stargate-upgrade/index.html",redirect:"/governance/proposals/2021-01-delay-stargate-upgrade/"},{name:"v-725866d9",path:"/governance/proposals/2021-03-enable-ibc-transfers/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-725866d9").then(n)}},{path:"/governance/proposals/2021-03-enable-ibc-transfers/index.html",redirect:"/governance/proposals/2021-03-enable-ibc-transfers/"},{name:"v-230a9c4b",path:"/governance/proposals/2021-04-lower-deposit-requirement/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-230a9c4b").then(n)}},{path:"/governance/proposals/2021-04-lower-deposit-requirement/index.html",redirect:"/governance/proposals/2021-04-lower-deposit-requirement/"},{name:"v-2dfd010b",path:"/governance/proposals/2021-07-atom-liquidity-incentives/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2dfd010b").then(n)}},{path:"/governance/proposals/2021-07-atom-liquidity-incentives/index.html",redirect:"/governance/proposals/2021-07-atom-liquidity-incentives/"},{name:"v-37169a5a",path:"/governance/proposals/2021-09-hub-ibc-router/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-37169a5a").then(n)}},{path:"/governance/proposals/2021-09-hub-ibc-router/index.html",redirect:"/governance/proposals/2021-09-hub-ibc-router/"},{name:"v-b8864dea",path:"/governance/proposals/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b8864dea").then(n)}},{path:"/governance/proposals/index.html",redirect:"/governance/proposals/"},{name:"v-68a68850",path:"/governance/proposals/proposal-template.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-68a68850").then(n)}},{name:"v-768a4c68",path:"/gtm-interchain.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-768a4c68").then(n)}},{name:"v-780264ab",path:"/hub-overview/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-780264ab").then(n)}},{path:"/hub-overview/index.html",redirect:"/hub-overview/"},{name:"v-ac3ab000",path:"/hub-overview/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-ac3ab000").then(n)}},{name:"v-51aac6a0",path:"/hub-tutorials/live-upgrade-tutorial.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-51aac6a0").then(n)}},{name:"v-273748bf",path:"/hub-tutorials/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-273748bf").then(n)}},{path:"/hub-tutorials/index.html",redirect:"/hub-tutorials/"},{name:"v-20bfb9fc",path:"/hub-tutorials/upgrade-node.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-20bfb9fc").then(n)}},{name:"v-414999cb",path:"/images/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-414999cb").then(n)}},{path:"/images/index.html",redirect:"/images/"},{name:"v-3169ddcb",path:"/ko/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3169ddcb").then(n)}},{path:"/ko/index.html",redirect:"/ko/"},{name:"v-15244044",path:"/ko/gaia-tutorials/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-15244044").then(n)}},{name:"v-59c05d68",path:"/ko/gaia-tutorials/join-testnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-59c05d68").then(n)}},{name:"v-77046140",path:"/ko/gaia-tutorials/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-77046140").then(n)}},{name:"v-1916440a",path:"/ko/genesis-state.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1916440a").then(n)}},{name:"v-25a92840",path:"/ko/keys.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-25a92840").then(n)}},{name:"v-79b59060",path:"/ko/launch/blog-2-kr.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-79b59060").then(n)}},{name:"v-aee924c0",path:"/ko/resources/hd-wallets.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-aee924c0").then(n)}},{name:"v-5c94f8c0",path:"/ko/upgrade-node.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5c94f8c0").then(n)}},{name:"v-3254b154",path:"/ko/validators/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3254b154").then(n)}},{name:"v-bfd7ad74",path:"/ko/validators/security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-bfd7ad74").then(n)}},{name:"v-7b5c086b",path:"/launch/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7b5c086b").then(n)}},{path:"/launch/index.html",redirect:"/launch/"},{name:"v-48a7c4e6",path:"/launch/blog-2-en.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-48a7c4e6").then(n)}},{name:"v-45ad53dd",path:"/migration/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-45ad53dd").then(n)}},{path:"/migration/index.html",redirect:"/migration/"},{name:"v-a3068aaa",path:"/modules/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-a3068aaa").then(n)}},{path:"/modules/index.html",redirect:"/modules/"},{name:"v-071e366f",path:"/resources/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-071e366f").then(n)}},{path:"/resources/index.html",redirect:"/resources/"},{name:"v-b9e98ed4",path:"/resources/archives.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b9e98ed4").then(n)}},{name:"v-7df08ab4",path:"/resources/hd-wallets.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7df08ab4").then(n)}},{name:"v-0d07c820",path:"/resources/reproducible-builds.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0d07c820").then(n)}},{name:"v-0110ec16",path:"/roadmap/cosmos-hub-roadmap-2.0.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0110ec16").then(n)}},{name:"v-79617eab",path:"/validators/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-79617eab").then(n)}},{path:"/validators/index.html",redirect:"/validators/"},{name:"v-6d897402",path:"/validators/kms/kms.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6d897402").then(n)}},{name:"v-37d38700",path:"/validators/kms/kms_ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-37d38700").then(n)}},{name:"v-4da7b8c0",path:"/validators/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4da7b8c0").then(n)}},{name:"v-3bacdca0",path:"/validators/security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3bacdca0").then(n)}},{name:"v-c519eab8",path:"/validators/validator-setup.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-c519eab8").then(n)}},{name:"v-1813a4ea",path:"/zh/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1813a4ea").then(n)}},{path:"/zh/index.html",redirect:"/zh/"},{name:"v-4cbea1b0",path:"/zh/gaia-tutorials/installation.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4cbea1b0").then(n)}},{name:"v-ec326d3c",path:"/zh/gaia-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-ec326d3c").then(n)}},{name:"v-07cf9e68",path:"/zh/gaia-tutorials/what-is-gaia.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-07cf9e68").then(n)}},{name:"v-dd4a8258",path:"/zh/gaia-tutorials/join-testnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-dd4a8258").then(n)}},{name:"v-5c30b8f6",path:"/zh/genesis-state.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5c30b8f6").then(n)}},{name:"v-a4aa1cc0",path:"/zh/launch/blog-2-cn.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-a4aa1cc0").then(n)}},{name:"v-621d6140",path:"/zh/resources/ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-621d6140").then(n)}},{name:"v-1731e69c",path:"/zh/validators/security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1731e69c").then(n)}},{name:"v-f2b0d680",path:"/zh/validators/overview.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f2b0d680").then(n)}},{name:"v-feb36d80",path:"/zh/validators/validator-setup.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-feb36d80").then(n)}},{name:"v-8fd705a0",path:"/architecture/adr-002-globalfee.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-8fd705a0").then(n)}},{name:"v-f385361c",path:"/delegators/delegator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f385361c").then(n)}},{name:"v-39ba7ec0",path:"/delegators/delegator-security.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-39ba7ec0").then(n)}},{name:"v-b0f4e33c",path:"/es/gaia-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b0f4e33c").then(n)}},{name:"v-27ea8460",path:"/governance/best-practices.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-27ea8460").then(n)}},{name:"v-fd3648c0",path:"/governance/formatting.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-fd3648c0").then(n)}},{name:"v-6c706790",path:"/governance/proposal-types/params-change/Governance.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-6c706790").then(n)}},{name:"v-7cd69f68",path:"/governance/proposal-types/params-change/Distribution.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7cd69f68").then(n)}},{name:"v-16a2b68a",path:"/governance/proposal-types/params-change/Slashing.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-16a2b68a").then(n)}},{name:"v-80c733e0",path:"/governance/proposal-types/params-change/Mint.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-80c733e0").then(n)}},{name:"v-405c4ac0",path:"/governance/proposal-types/params-change/Staking.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-405c4ac0").then(n)}},{name:"v-5d13e021",path:"/governance/proposals/2021-01-atom2021_marketing/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5d13e021").then(n)}},{path:"/governance/proposals/2021-01-atom2021_marketing/index.html",redirect:"/governance/proposals/2021-01-atom2021_marketing/"},{name:"v-23577189",path:"/governance/proposals/2021-01-stargate-upgrade-b/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-23577189").then(n)}},{path:"/governance/proposals/2021-01-stargate-upgrade-b/index.html",redirect:"/governance/proposals/2021-01-stargate-upgrade-b/"},{name:"v-183e9cb3",path:"/governance/proposals/2021-01-stargate-upgrade/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-183e9cb3").then(n)}},{path:"/governance/proposals/2021-01-stargate-upgrade/index.html",redirect:"/governance/proposals/2021-01-stargate-upgrade/"},{name:"v-b74fdc6a",path:"/governance/proposals/2021-04-advancing-ethermint/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b74fdc6a").then(n)}},{path:"/governance/proposals/2021-04-advancing-ethermint/index.html",redirect:"/governance/proposals/2021-04-advancing-ethermint/"},{name:"v-bd8534ea",path:"/governance/proposals/2021-04-prop34-continuation/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-bd8534ea").then(n)}},{path:"/governance/proposals/2021-04-prop34-continuation/index.html",redirect:"/governance/proposals/2021-04-prop34-continuation/"},{name:"v-2e2517eb",path:"/governance/proposals/2021-05-gravity-bridge-deployment/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2e2517eb").then(n)}},{path:"/governance/proposals/2021-05-gravity-bridge-deployment/index.html",redirect:"/governance/proposals/2021-05-gravity-bridge-deployment/"},{name:"v-69e7af00",path:"/governance/submitting.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-69e7af00").then(n)}},{name:"v-4aec61d8",path:"/hub-tutorials/join-testnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4aec61d8").then(n)}},{name:"v-524c67f6",path:"/ko/gaia-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-524c67f6").then(n)}},{name:"v-5d40e180",path:"/ko/launch/blog-1-kr.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-5d40e180").then(n)}},{name:"v-4251c2a0",path:"/ko/resources/ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-4251c2a0").then(n)}},{name:"v-63a66800",path:"/ko/validators/validator-setup.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-63a66800").then(n)}},{name:"v-e9d91d38",path:"/launch/blog-1-en.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-e9d91d38").then(n)}},{name:"v-d8722040",path:"/migration/cosmoshub-2/cosmoshub-2.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-d8722040").then(n)}},{name:"v-3a6c3c60",path:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3a6c3c60").then(n)}},{path:"/migration/cosmoshub-3/cosmoshub-3[KR_kr].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html"},{path:"/migration/cosmoshub-3/cosmoshub-3[KR_kr].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html"},{name:"v-78add710",path:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-78add710").then(n)}},{path:"/migration/cosmoshub-3/cosmoshub-3[ES_es].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html"},{path:"/migration/cosmoshub-3/cosmoshub-3[ES_es].html",redirect:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html"},{name:"v-76ff3f40",path:"/migration/cosmoshub-4-delta-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-76ff3f40").then(n)}},{name:"v-69a7e640",path:"/migration/cosmoshub-4-v10-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-69a7e640").then(n)}},{name:"v-15fddba0",path:"/migration/cosmoshub-4-v12-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-15fddba0").then(n)}},{name:"v-1ed61780",path:"/migration/cosmoshub-4-v11-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1ed61780").then(n)}},{name:"v-3b66c300",path:"/migration/cosmoshub-4-v13-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3b66c300").then(n)}},{name:"v-fc555fcc",path:"/migration/cosmoshub-4-v8-Rho-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-fc555fcc").then(n)}},{name:"v-08131412",path:"/migration/cosmoshub-4-v7-Theta-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-08131412").then(n)}},{name:"v-c184b540",path:"/migration/cosmoshub-4-v9-Lambda-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-c184b540").then(n)}},{name:"v-77c0d338",path:"/migration/cosmoshub-4-vega-upgrade.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-77c0d338").then(n)}},{name:"v-f8a9ba00",path:"/modules/globalfee.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f8a9ba00").then(n)}},{name:"v-611af834",path:"/resources/ledger.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-611af834").then(n)}},{name:"v-75000dc1",path:"/roadmap/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-75000dc1").then(n)}},{path:"/roadmap/index.html",redirect:"/roadmap/"},{name:"v-55d7a0e0",path:"/resources/service-providers.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-55d7a0e0").then(n)}},{name:"v-dd937a80",path:"/zh/launch/blog-1-cn.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-dd937a80").then(n)}},{name:"v-29e61a5c",path:"/zh/resources/genesis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-29e61a5c").then(n)}},{name:"v-2acc3e00",path:"/es/governance/params-change/Governance.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-2acc3e00").then(n)}},{name:"v-a8848234",path:"/ko/resources/genesis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-a8848234").then(n)}},{name:"v-68a36ea0",path:"/migration/cosmoshub-3/cosmoshub-3.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-68a36ea0").then(n)}},{name:"v-91b151c0",path:"/resources/genesis.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-91b151c0").then(n)}},{name:"v-3cb8cfc8",path:"/zh/delegator/delegator-guide-cli.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-3cb8cfc8").then(n)}},{name:"v-26ead5fe",path:"/zh/resources/gaiad.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-26ead5fe").then(n)}},{name:"v-1d21baa0",path:"/zh/validators/validator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-1d21baa0").then(n)}},{name:"v-b5fc8180",path:"/delegators/delegator-guide-cli.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-b5fc8180").then(n)}},{name:"v-56618330",path:"/governance/state-of-cosmos-governance-2021.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-56618330").then(n)}},{name:"v-f4d75640",path:"/hub-tutorials/gaiad.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-f4d75640").then(n)}},{name:"v-398eb7e6",path:"/hub-tutorials/join-mainnet.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-398eb7e6").then(n)}},{name:"v-7e931cdc",path:"/ko/resources/gaiad.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7e931cdc").then(n)}},{name:"v-143a889c",path:"/validators/validator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-143a889c").then(n)}},{name:"v-17b4aa2d",path:"/governance/proposals/previous-proposals/",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-17b4aa2d").then(n)}},{path:"/governance/proposals/previous-proposals/index.html",redirect:"/governance/proposals/previous-proposals/"},{name:"v-0ee0b71e",path:"/guidelines/code-guidelines.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-0ee0b71e").then(n)}},{name:"v-9a504180",path:"/ko/delegators/delegator-guide-cli.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-9a504180").then(n)}},{name:"v-7cf7c3e0",path:"/ko/validators/validator-faq.html",component:Ya.default,beforeEnter:(e,t,n)=>{Na("Layout","v-7cf7c3e0").then(n)}},{path:"*",component:Ya.default}],es={title:"Cosmos Hub",description:"",base:"/main/",headTags:[],pages:[{title:"Updating the docs",frontmatter:{description:"",parent:{order:!1}},regularPath:"/DOCS_README.html",relativePath:"DOCS_README.md",key:"v-27502720",path:"/DOCS_README.html",headers:[{level:2,title:"Internationalization",slug:"internationalization"},{level:2,title:"Docs Build Workflow",slug:"docs-build-workflow"},{level:3,title:"How It Works",slug:"how-it-works"},{level:2,title:"README",slug:"readme"},{level:2,title:"Links",slug:"links"},{level:3,title:"Relative",slug:"relative"},{level:3,title:"Absolute",slug:"absolute"},{level:3,title:"Full",slug:"full"},{level:2,title:"Building Locally",slug:"building-locally"},{level:2,title:"Search",slug:"search"},{level:3,title:"Update and Build the RPC docs",slug:"update-and-build-the-rpc-docs"}]},{title:"ADR Creation Process",frontmatter:{description:""},regularPath:"/architecture/PROCESS.html",relativePath:"architecture/PROCESS.md",key:"v-5cedbb66",path:"/architecture/PROCESS.html",headers:[{level:2,title:"ADR life cycle",slug:"adr-life-cycle"},{level:3,title:"ADR status",slug:"adr-status"},{level:2,title:"Language used in ADR",slug:"language-used-in-adr"}]},{title:"Contribute",frontmatter:{description:"",parent:{order:!1},layout:"home"},regularPath:"/",relativePath:"README.md",key:"v-127d50ca",path:"/",headers:[{level:2,title:"What is Gaia?",slug:"what-is-gaia"},{level:2,title:"Join the Cosmos Hub Mainnet",slug:"join-the-cosmos-hub-mainnet"},{level:2,title:"Join the Cosmos Hub Public Testnet",slug:"join-the-cosmos-hub-public-testnet"},{level:2,title:"Setup Your Own gaia Testnet",slug:"setup-your-own-gaia-testnet"},{level:2,title:"Additional Resources",slug:"additional-resources"}]},{title:"Architecture Decision Records (ADR)",frontmatter:{description:"",order:1,parent:{title:"Architecture Decision Records (ADR)",order:10}},regularPath:"/architecture/",relativePath:"architecture/README.md",key:"v-09de3eeb",path:"/architecture/",headers:[{level:2,title:"Rationale",slug:"rationale"},{level:2,title:"Creating new ADR",slug:"creating-new-adr"},{level:3,title:"Use RFC 2119 Keywords",slug:"use-rfc-2119-keywords"},{level:2,title:"ADR Table of Contents",slug:"adr-table-of-contents"},{level:3,title:"Accepted",slug:"accepted"},{level:3,title:"Proposed",slug:"proposed"},{level:3,title:"Draft",slug:"draft"},{level:3,title:"Rejected",slug:"rejected"}]},{title:"ADR 001: Interchain Accounts",frontmatter:{description:"",order:2},regularPath:"/architecture/adr-001-interchain-accounts.html",relativePath:"architecture/adr-001-interchain-accounts.md",key:"v-7ccd641c",path:"/architecture/adr-001-interchain-accounts.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Status",slug:"status"},{level:2,title:"Abstract",slug:"abstract"},{level:2,title:"Rationale",slug:"rationale"},{level:2,title:"Desired Outcome",slug:"desired-outcome"},{level:2,title:"Consequences",slug:"consequences"},{level:2,title:"Technical Specification",slug:"technical-specification"},{level:2,title:"Development",slug:"development"},{level:2,title:"Governance [optional]",slug:"governance-optional"},{level:2,title:"Project Integrations [optional]",slug:"project-integrations-optional"},{level:2,title:"Support",slug:"support"},{level:2,title:"Additional Research & References",slug:"additional-research-references"}]},{title:"ADR {ADR-NUMBER}: {TITLE}",frontmatter:{description:"",order:!1},regularPath:"/architecture/adr-template.html",relativePath:"architecture/adr-template.md",key:"v-f8267540",path:"/architecture/adr-template.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Status",slug:"status"},{level:2,title:"Abstract",slug:"abstract"},{level:2,title:"Context",slug:"context"},{level:2,title:"Decision",slug:"decision"},{level:2,title:"Consequences",slug:"consequences"},{level:3,title:"Positive",slug:"positive"},{level:3,title:"Negative",slug:"negative"},{level:3,title:"Neutral",slug:"neutral"},{level:2,title:"References",slug:"references"}]},{title:"Delegators",frontmatter:{description:"",order:!1,parent:{title:"Delegators",order:4}},regularPath:"/delegators/",relativePath:"delegators/README.md",key:"v-81da516a",path:"/delegators/"},{title:"Versión",frontmatter:{description:""},regularPath:"/es/",relativePath:"es/README.md",key:"v-4f6c3d8b",path:"/es/",headers:[{level:2,title:"¿Qué es Gaia?",slug:"¿que-es-gaia"},{level:2,title:"Únase a la red principal del Hub de Cosmos",slug:"unase-a-la-red-principal-del-hub-de-cosmos"},{level:2,title:"Únase a la testnet pública del hub de Cosmos",slug:"unase-a-la-testnet-publica-del-hub-de-cosmos"},{level:2,title:"Prepare su propia Testnet de gaia",slug:"prepare-su-propia-testnet-de-gaia"},{level:2,title:"Recursos adicionales",slug:"recursos-adicionales"}]},{title:"Instalación de Gaia",frontmatter:{description:"",order:2},regularPath:"/es/gaia-tutorials/installation.html",relativePath:"es/gaia-tutorials/installation.md",key:"v-6a5d66b0",path:"/es/gaia-tutorials/installation.html",headers:[{level:2,title:"Instalación de Go",slug:"instalacion-de-go"},{level:2,title:"Instalación de los binarios",slug:"instalacion-de-los-binarios"},{level:3,title:"Tags para la construcción",slug:"tags-para-la-construccion"},{level:3,title:"Instalación de los binarios via snap (Linux solamente)",slug:"instalacion-de-los-binarios-via-snap-linux-solamente"},{level:2,title:"Workflow para el desarrollador",slug:"workflow-para-el-desarrollador"},{level:2,title:"Siguiente",slug:"siguiente"}]},{title:"¿Qué es Gaia?",frontmatter:{description:""},regularPath:"/es/gaia-tutorials/what-is-gaia.html",relativePath:"es/gaia-tutorials/what-is-gaia.md",key:"v-19b6f5cc",path:"/es/gaia-tutorials/what-is-gaia.html"},{title:"Cosmos Hub 3 y la Community Pool",frontmatter:{description:""},regularPath:"/es/governance/community-pool-spend/",relativePath:"es/governance/community-pool-spend/README.md",key:"v-0589512b",path:"/es/governance/community-pool-spend/",headers:[{level:2,title:"¿Por qué crear una propuesta para utilizar fondos de la Community Pool?",slug:"¿por-que-crear-una-propuesta-para-utilizar-fondos-de-la-community-pool"},{level:2,title:"Creación de una propuesta de gastos a la comunidad",slug:"creacion-de-una-propuesta-de-gastos-a-la-comunidad"},{level:2,title:"Sobre la Community Pool",slug:"sobre-la-community-pool"},{level:3,title:"¿Cómo está financiada la Community Pool?",slug:"¿como-esta-financiada-la-community-pool"},{level:3,title:"¿Cómo puede cambiar la financiación de la Community Pool?",slug:"¿como-puede-cambiar-la-financiacion-de-la-community-pool"},{level:3,title:"¿Cuál es el saldo de la Community Pool?",slug:"¿cual-es-el-saldo-de-la-community-pool"},{level:3,title:"¿Cómo se pueden gastar los fondos de la Community Pool?",slug:"¿como-se-pueden-gastar-los-fondos-de-la-community-pool"},{level:3,title:"¿Cómo se deberían gastar los fondos de la Community Pool?",slug:"¿como-se-deberian-gastar-los-fondos-de-la-community-pool"},{level:3,title:"¿Cómo se desembolsan los fondos una vez que una prouesta de gastos de comunidad es aprobada?",slug:"¿como-se-desembolsan-los-fondos-una-vez-que-una-prouesta-de-gastos-de-comunidad-es-aprobada"}]},{title:"Installation",frontmatter:{description:"",order:2,title:"Installing Gaia"},regularPath:"/getting-started/installation.html",relativePath:"getting-started/installation.md",key:"v-50a2c1ac",path:"/getting-started/installation.html",headers:[{level:2,title:"Build Requirements",slug:"build-requirements"},{level:2,title:"Build Tools",slug:"build-tools"},{level:2,title:"Install Go",slug:"install-go"},{level:2,title:"Install the binaries",slug:"install-the-binaries"},{level:3,title:"Build Tags",slug:"build-tags"},{level:2,title:"Work with a Cosmos SDK Clone",slug:"work-with-a-cosmos-sdk-clone"},{level:2,title:"Next",slug:"next"}]},{title:"Getting Started",frontmatter:{description:"",order:!1,parent:{order:2}},regularPath:"/getting-started/",relativePath:"getting-started/README.md",key:"v-06e3b56e",path:"/getting-started/"},{title:"Join Mainnet Quick Start",frontmatter:{description:"",order:3,title:"Quick Start - Join Mainnet"},regularPath:"/getting-started/quickstart.html",relativePath:"getting-started/quickstart.md",key:"v-1c8e49b4",path:"/getting-started/quickstart.html",headers:[{level:3,title:"Prerequisites",slug:"prerequisites"},{level:3,title:"Sync Options",slug:"sync-options"}]},{title:"What is Gaia?",frontmatter:{description:"",order:1,title:"What is Gaia?"},regularPath:"/getting-started/what-is-gaia.html",relativePath:"getting-started/what-is-gaia.md",key:"v-606149c6",path:"/getting-started/what-is-gaia.html"},{title:"Governance Overview",frontmatter:{description:"",order:1,parent:{title:"Governance",order:6}},regularPath:"/governance/",relativePath:"governance/README.md",key:"v-66b4080b",path:"/governance/",headers:[{level:2,title:"Community",slug:"community"}]},{title:"On-Chain Proposal Process",frontmatter:{description:"",order:2},regularPath:"/governance/process.html",relativePath:"governance/process.md",key:"v-9ff0f970",path:"/governance/process.html",headers:[{level:2,title:"Governance Parameters",slug:"governance-parameters"},{level:2,title:"1. Deposit Period",slug:"_1-deposit-period"},{level:3,title:"Deposits",slug:"deposits"},{level:3,title:"Burned deposits",slug:"burned-deposits"},{level:2,title:"2. Voting Period",slug:"_2-voting-period"},{level:3,title:"What do the voting options mean?",slug:"what-do-the-voting-options-mean"},{level:3,title:"What determines whether or not a governance proposal passes?",slug:"what-determines-whether-or-not-a-governance-proposal-passes"},{level:3,title:"How is quorum determined?",slug:"how-is-quorum-determined"},{level:3,title:"How is voting tallied?",slug:"how-is-voting-tallied"}]},{title:"Proposal Types",frontmatter:{description:"",order:1,parent:{order:6}},regularPath:"/governance/proposal-types/",relativePath:"governance/proposal-types/README.md",key:"v-e4b2f83a",path:"/governance/proposal-types/",headers:[{level:2,title:"Drafting a Proposal",slug:"drafting-a-proposal"}]},{title:"Community Pool Spend",frontmatter:{description:"",order:3,parent:{order:1}},regularPath:"/governance/proposal-types/community-pool-spend.html",relativePath:"governance/proposal-types/community-pool-spend.md",key:"v-bf1b043c",path:"/governance/proposal-types/community-pool-spend.html",headers:[{level:2,title:"Learn About the Community Pool",slug:"learn-about-the-community-pool"},{level:3,title:"How is the Community Pool funded?",slug:"how-is-the-community-pool-funded"},{level:3,title:"How can funding for the Community Pool change?",slug:"how-can-funding-for-the-community-pool-change"},{level:3,title:"How much money is in the Community Pool?",slug:"how-much-money-is-in-the-community-pool"},{level:3,title:"How can funds from the Community Pool be spent?",slug:"how-can-funds-from-the-community-pool-be-spent"},{level:3,title:"How should funds from the Community Pool be spent?",slug:"how-should-funds-from-the-community-pool-be-spent"},{level:3,title:"How are funds disbursed after a community-spend proposal is passed?",slug:"how-are-funds-disbursed-after-a-community-spend-proposal-is-passed"},{level:2,title:"Why create a proposal to use Community Pool funds?",slug:"why-create-a-proposal-to-use-community-pool-funds"}]},{title:"Parameter Change",frontmatter:{description:"",order:4,parent:{order:1}},regularPath:"/governance/proposal-types/param-change.html",relativePath:"governance/proposal-types/param-change.md",key:"v-39316e24",path:"/governance/proposal-types/param-change.html",headers:[{level:2,title:"What parameters can be changed?",slug:"what-parameters-can-be-changed"},{level:2,title:"What are the current parameter values?",slug:"what-are-the-current-parameter-values"},{level:2,title:"Why create a parameter change proposal?",slug:"why-create-a-parameter-change-proposal"},{level:2,title:"Risks in parameter change proposals",slug:"risks-in-parameter-change-proposals"},{level:2,title:"Credits",slug:"credits"}]},{title:"`auth` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Auth.html",relativePath:"governance/proposal-types/params-change/Auth.md",key:"v-43a7e1f8",path:"/governance/proposal-types/params-change/Auth.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"MaxMemoCharacters",slug:"maxmemocharacters"},{level:3,title:"TxSigLimit",slug:"txsiglimit"},{level:3,title:"TxSizeCostPerByte",slug:"txsizecostperbyte"},{level:3,title:"SigVerifyCostED25519",slug:"sigverifycosted25519"},{level:3,title:"SigVerifyCostSecp256k1",slug:"sigverifycostsecp256k1"}]},{title:"`crisis` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Crisis.html",relativePath:"governance/proposal-types/params-change/Crisis.md",key:"v-4ac77b64",path:"/governance/proposal-types/params-change/Crisis.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"ConstantFee",slug:"constantfee"}]},{title:"`bank` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Bank.html",relativePath:"governance/proposal-types/params-change/Bank.md",key:"v-ff7fa248",path:"/governance/proposal-types/params-change/Bank.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"SendEnabled",slug:"sendenabled"}]},{title:"Index of Governable Parameters",frontmatter:{description:"",order:2},regularPath:"/governance/proposal-types/params-change/param-index.html",relativePath:"governance/proposal-types/params-change/param-index.md",key:"v-2758d5a0",path:"/governance/proposal-types/params-change/param-index.html",headers:[{level:2,title:"Querying on-chain parameters",slug:"querying-on-chain-parameters"},{level:2,title:"Current subspaces, keys, and values",slug:"current-subspaces-keys-and-values"}]},{title:"Text (Signaling)",frontmatter:{description:"",order:2,parent:{order:1}},regularPath:"/governance/proposal-types/text-prop.html",relativePath:"governance/proposal-types/text-prop.md",key:"v-6a4f1c80",path:"/governance/proposal-types/text-prop.html",headers:[{level:2,title:"What are signaling proposals currently used for?",slug:"what-are-signaling-proposals-currently-used-for"},{level:3,title:"A note on historical text proposals",slug:"a-note-on-historical-text-proposals"},{level:2,title:"Why make a signaling proposal?",slug:"why-make-a-signaling-proposal"},{level:2,title:"What happens when a signaling proposal passes?",slug:"what-happens-when-a-signaling-proposal-passes"}]},{title:"Cosmos Hub Inflation variable modification: Blocks Per Year",frontmatter:{description:""},regularPath:"/governance/proposals/2020-10-blocks-per-year/",relativePath:"governance/proposals/2020-10-blocks-per-year/README.md",key:"v-7431790b",path:"/governance/proposals/2020-10-blocks-per-year/"},{frontmatter:{description:""},regularPath:"/governance/proposals/2020-11-inflation-rate-change/",relativePath:"governance/proposals/2020-11-inflation-rate-change/README.md",key:"v-4b23576b",path:"/governance/proposals/2020-11-inflation-rate-change/"},{title:"Delay of Hub Stargate Upgrade",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-delay-stargate-upgrade/",relativePath:"governance/proposals/2021-01-delay-stargate-upgrade/README.md",key:"v-64792cc2",path:"/governance/proposals/2021-01-delay-stargate-upgrade/"},{title:"Enable IBC Transfers",frontmatter:{description:""},regularPath:"/governance/proposals/2021-03-enable-ibc-transfers/",relativePath:"governance/proposals/2021-03-enable-ibc-transfers/README.md",key:"v-725866d9",path:"/governance/proposals/2021-03-enable-ibc-transfers/",headers:[{level:2,title:"Security Model",slug:"security-model"},{level:2,title:"IBC",slug:"ibc"},{level:2,title:"Incentive Security Extensions",slug:"incentive-security-extensions"}]},{title:"Parameter change: lower minimum proposal deposit amount",frontmatter:{description:""},regularPath:"/governance/proposals/2021-04-lower-deposit-requirement/",relativePath:"governance/proposals/2021-04-lower-deposit-requirement/README.md",key:"v-230a9c4b",path:"/governance/proposals/2021-04-lower-deposit-requirement/",headers:[{level:2,title:"Summary",slug:"summary"},{level:2,title:"Objectives",slug:"objectives"},{level:2,title:"Background",slug:"background"},{level:2,title:"Proposers",slug:"proposers"},{level:2,title:"Proposed Parameter Change",slug:"proposed-parameter-change"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Alternatives",slug:"alternatives"},{level:2,title:"Governance Votes",slug:"governance-votes"}]},{title:"ATOM 🤝 Osmosis: Allocate Community Pool to ATOM Liquidity Incentives",frontmatter:{description:""},regularPath:"/governance/proposals/2021-07-atom-liquidity-incentives/",relativePath:"governance/proposals/2021-07-atom-liquidity-incentives/README.md",key:"v-2dfd010b",path:"/governance/proposals/2021-07-atom-liquidity-incentives/"},{title:"⚛️ Make the Cosmos Hub the IBC Router ⚛️",frontmatter:{description:""},regularPath:"/governance/proposals/2021-09-hub-ibc-router/",relativePath:"governance/proposals/2021-09-hub-ibc-router/README.md",key:"v-37169a5a",path:"/governance/proposals/2021-09-hub-ibc-router/"},{title:"Proposals",frontmatter:{description:"",order:1,parent:{order:8}},regularPath:"/governance/proposals/",relativePath:"governance/proposals/README.md",key:"v-b8864dea",path:"/governance/proposals/"},{title:"[Proposal][Draft] Proposal Title",frontmatter:{description:""},regularPath:"/governance/proposals/proposal-template.html",relativePath:"governance/proposals/proposal-template.md",key:"v-68a68850",path:"/governance/proposals/proposal-template.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Authors and Credit",slug:"authors-and-credit"},{level:2,title:"Status",slug:"status"},{level:2,title:"Proposal",slug:"proposal"},{level:2,title:"Context",slug:"context"},{level:2,title:"Governance Votes",slug:"governance-votes"},{level:2,title:"Conclusion",slug:"conclusion"},{level:2,title:"References",slug:"references"}]},{frontmatter:{description:""},regularPath:"/gtm-interchain.html",relativePath:"gtm-interchain.md",key:"v-768a4c68",path:"/gtm-interchain.html"},{title:"Cosmos Hub",frontmatter:{description:"",order:!1,parent:{order:1}},regularPath:"/hub-overview/",relativePath:"hub-overview/README.md",key:"v-780264ab",path:"/hub-overview/"},{title:"Introduction",frontmatter:{description:"",order:1,title:"Introduction"},regularPath:"/hub-overview/overview.html",relativePath:"hub-overview/overview.md",key:"v-ac3ab000",path:"/hub-overview/overview.html",headers:[{level:3,title:"v13 Upgrade",slug:"v13-upgrade"},{level:2,title:"The ATOM",slug:"the-atom"},{level:2,title:"Cosmos Hub Wallets",slug:"cosmos-hub-wallets"},{level:2,title:"Metamask Snaps",slug:"metamask-snaps"},{level:2,title:"Cosmos Hub Explorers",slug:"cosmos-hub-explorers"},{level:2,title:"Cosmos Hub CLI",slug:"cosmos-hub-cli"},{level:2,title:"Running a full-node on the Cosmos Hub Mainnet",slug:"running-a-full-node-on-the-cosmos-hub-mainnet"},{level:2,title:"Join the Community",slug:"join-the-community"}]},{title:"Live Upgrade Tutorial",frontmatter:{description:"",order:6,title:"Upgrading the Chain"},regularPath:"/hub-tutorials/live-upgrade-tutorial.html",relativePath:"hub-tutorials/live-upgrade-tutorial.md",key:"v-51aac6a0",path:"/hub-tutorials/live-upgrade-tutorial.html"},{title:"Gaia Tutorials",frontmatter:{description:"",order:!1,parent:{order:3}},regularPath:"/hub-tutorials/",relativePath:"hub-tutorials/README.md",key:"v-273748bf",path:"/hub-tutorials/"},{title:"Upgrade Your Node",frontmatter:{description:"",order:4,title:"Upgrading Your Node"},regularPath:"/hub-tutorials/upgrade-node.html",relativePath:"hub-tutorials/upgrade-node.md",key:"v-20bfb9fc",path:"/hub-tutorials/upgrade-node.html",headers:[{level:2,title:"Cosmovisor",slug:"cosmovisor"},{level:3,title:"Setup",slug:"setup"},{level:3,title:"Preparing an Upgrade",slug:"preparing-an-upgrade"},{level:2,title:"Manual Software Upgrade",slug:"manual-software-upgrade"},{level:2,title:"Upgrade Genesis File",slug:"upgrade-genesis-file"},{level:3,title:"Fetching from a Trusted Source",slug:"fetching-from-a-trusted-source"},{level:3,title:"Exporting State to a New Genesis Locally",slug:"exporting-state-to-a-new-genesis-locally"},{level:2,title:"Reset Data",slug:"reset-data"}]},{frontmatter:{description:"",parent:{order:!1}},regularPath:"/images/",relativePath:"images/README.md",key:"v-414999cb",path:"/images/"},{title:"Gaia Documentation",frontmatter:{description:""},regularPath:"/ko/",relativePath:"ko/README.md",key:"v-3169ddcb",path:"/ko/",headers:[{level:2,title:"코스모스 퍼블릭 테스트넷에 참가하세요",slug:"코스모스-퍼블릭-테스트넷에-참가하세요"},{level:2,title:"자체 gaia 테스트넷 세팅하기",slug:"자체-gaia-테스트넷-세팅하기"},{level:2,title:"추가 리소스",slug:"추가-리소스"}]},{frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/installation.html",relativePath:"ko/gaia-tutorials/installation.md",key:"v-15244044",path:"/ko/gaia-tutorials/installation.html",headers:[{level:2,title:"Gaia 설치하기",slug:"gaia-설치하기"},{level:3,title:"Go 설치하기",slug:"go-설치하기"},{level:3,title:"바이너리 설치하기",slug:"바이너리-설치하기"},{level:3,title:"빌드 태그",slug:"빌드-태그"},{level:3,title:"snap을 사용해 바이너리 설치하기 (리눅스에만 해당)",slug:"snap을-사용해-바이너리-설치하기-리눅스에만-해당"},{level:2,title:"개발자 워크플로우",slug:"개발자-워크플로우"},{level:3,title:"다음 절차",slug:"다음-절차"}]},{title:"최신 퍼블릭 테스트넷에 참가하기",frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/join-testnet.html",relativePath:"ko/gaia-tutorials/join-testnet.md",key:"v-59c05d68",path:"/ko/gaia-tutorials/join-testnet.html",headers:[{level:2,title:"새로운 노드 세팅하기",slug:"새로운-노드-세팅하기"},{level:2,title:"과거 테스트넷에서 업그레이드 하기",slug:"과거-테스트넷에서-업그레이드-하기"},{level:3,title:"데이터 리셋",slug:"데이터-리셋"},{level:3,title:"소프트웨어 업그레이드",slug:"소프트웨어-업그레이드"},{level:2,title:"제네시스와 시드",slug:"제네시스와-시드"},{level:3,title:"제네시스 파일 복사하기",slug:"제네시스-파일-복사하기"},{level:3,title:"시드 노드 추가하기",slug:"시드-노드-추가하기"},{level:2,title:"풀노드 운영하기",slug:"풀노드-운영하기"},{level:2,title:"상태 내보내기(Export State)",slug:"상태-내보내기-export-state"},{level:2,title:"밸리데이터 노드로 업그레이드 하기",slug:"밸리데이터-노드로-업그레이드-하기"}]},{title:"Gaia는 무엇인가요?",frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/what-is-gaia.html",relativePath:"ko/gaia-tutorials/what-is-gaia.md",key:"v-77046140",path:"/ko/gaia-tutorials/what-is-gaia.html"},{title:"Gaia 제네시스 상태",frontmatter:{description:""},regularPath:"/ko/genesis-state.html",relativePath:"ko/genesis-state.md",key:"v-1916440a",path:"/ko/genesis-state.html",headers:[{level:2,title:"계정(Accounts)",slug:"계정-accounts"}]},{title:"키",frontmatter:{description:""},regularPath:"/ko/keys.html",relativePath:"ko/keys.md",key:"v-25a92840",path:"/ko/keys.html"},{title:"글을 마무리 하며",frontmatter:{description:""},regularPath:"/ko/launch/blog-2-kr.html",relativePath:"ko/launch/blog-2-kr.md",key:"v-79b59060",path:"/ko/launch/blog-2-kr.html",headers:[{level:2,title:"메인넷 후 개발 로드맵과 유저들을 위한 필수 정보",slug:"메인넷-후-개발-로드맵과-유저들을-위한-필수-정보"}]},{title:"HD 지갑",frontmatter:{description:""},regularPath:"/ko/resources/hd-wallets.html",relativePath:"ko/resources/hd-wallets.md",key:"v-aee924c0",path:"/ko/resources/hd-wallets.html"},{title:"노드 업그레이드 하기",frontmatter:{description:""},regularPath:"/ko/upgrade-node.html",relativePath:"ko/upgrade-node.md",key:"v-5c94f8c0",path:"/ko/upgrade-node.html",headers:[{level:2,title:"소프트웨어 업그레이드",slug:"소프트웨어-업그레이드"},{level:2,title:"제네시스 파일 업그레이드하기",slug:"제네시스-파일-업그레이드하기"},{level:3,title:"신뢰하는 소스에서 받기",slug:"신뢰하는-소스에서-받기"},{level:3,title:"로컬 환경에서 새로운 제네시스 내보내기",slug:"로컬-환경에서-새로운-제네시스-내보내기"},{level:2,title:"데이터 리셋하기",slug:"데이터-리셋하기"},{level:2,title:"노드 다시 시작하기",slug:"노드-다시-시작하기"}]},{title:"검증인(밸리데이터) 개요",frontmatter:{description:""},regularPath:"/ko/validators/overview.html",relativePath:"ko/validators/overview.md",key:"v-3254b154",path:"/ko/validators/overview.html",headers:[{level:2,title:"소개",slug:"소개"},{level:2,title:"하드웨어",slug:"하드웨어"},{level:2,title:"웹사이트 세팅하기",slug:"웹사이트-세팅하기"},{level:2,title:"법적 검토",slug:"법적-검토"},{level:2,title:"검증인 커뮤니티",slug:"검증인-커뮤니티"}]},{frontmatter:{description:""},regularPath:"/ko/validators/security.html",relativePath:"ko/validators/security.md",key:"v-bfd7ad74",path:"/ko/validators/security.html",headers:[{level:2,title:"검증인 보안",slug:"검증인-보안"},{level:2,title:"키 관리 - HSM",slug:"키-관리-hsm"},{level:2,title:"센트리노드 (DDOS 방어)",slug:"센트리노드-ddos-방어"},{level:2,title:"환경 변수",slug:"환경-변수"}]},{frontmatter:{description:"",parent:{order:!1}},regularPath:"/launch/",relativePath:"launch/README.md",key:"v-7b5c086b",path:"/launch/"},{title:"In Closing",frontmatter:{description:""},regularPath:"/launch/blog-2-en.html",relativePath:"launch/blog-2-en.md",key:"v-48a7c4e6",path:"/launch/blog-2-en.html",headers:[{level:2,title:"Post-Mainnet Development Roadmap & Expectations for Users",slug:"post-mainnet-development-roadmap-expectations-for-users"},{level:2,title:"State Reversions and Mainnet launch",slug:"state-reversions-and-mainnet-launch"}]},{title:"Migration Instructions",frontmatter:{description:"",order:!1,parent:{title:"Migration Instructions",order:9}},regularPath:"/migration/",relativePath:"migration/README.md",key:"v-45ad53dd",path:"/migration/"},{title:"Gaia Modules",frontmatter:{description:""},regularPath:"/modules/",relativePath:"modules/README.md",key:"v-a3068aaa",path:"/modules/",headers:[{level:2,title:"New Modules in Rho V8",slug:"new-modules-in-rho-v8"}]},{title:"Resources",frontmatter:{description:"",order:!1,parent:{title:"Resources",order:8}},regularPath:"/resources/",relativePath:"resources/README.md",key:"v-071e366f",path:"/resources/"},{title:"Cosmos Hub Archives",frontmatter:{description:"",order:2,title:"Cosmos Hub Archives"},regularPath:"/resources/archives.html",relativePath:"resources/archives.md",key:"v-b9e98ed4",path:"/resources/archives.html",headers:[{level:3,title:"Big Dipper",slug:"big-dipper"}]},{title:"HD Wallets",frontmatter:{description:"",order:3,title:"HD Wallets"},regularPath:"/resources/hd-wallets.html",relativePath:"resources/hd-wallets.md",key:"v-7df08ab4",path:"/resources/hd-wallets.html"},{title:"Build Gaia Deterministically",frontmatter:{description:"",order:5,title:"Building Gaia Deterministically"},regularPath:"/resources/reproducible-builds.html",relativePath:"resources/reproducible-builds.md",key:"v-0d07c820",path:"/resources/reproducible-builds.html",headers:[{level:2,title:"Prerequisites",slug:"prerequisites"},{level:2,title:"Build",slug:"build"}]},{title:"The Cosmos Hub Roadmap",frontmatter:{description:""},regularPath:"/roadmap/cosmos-hub-roadmap-2.0.html",relativePath:"roadmap/cosmos-hub-roadmap-2.0.md",key:"v-0110ec16",path:"/roadmap/cosmos-hub-roadmap-2.0.html"},{title:"Validators",frontmatter:{description:"",order:!1,parent:{title:"Validators",order:5}},regularPath:"/validators/",relativePath:"validators/README.md",key:"v-79617eab",path:"/validators/"},{title:"KMS - Key Management System",frontmatter:{description:"",order:5},regularPath:"/validators/kms/kms.html",relativePath:"validators/kms/kms.md",key:"v-6d897402",path:"/validators/kms/kms.html",headers:[{level:2,title:"Building",slug:"building"},{level:2,title:"Configuration",slug:"configuration"},{level:3,title:"Using a YubiHSM",slug:"using-a-yubihsm"},{level:3,title:"Using a Ledger device running the Tendermint app",slug:"using-a-ledger-device-running-the-tendermint-app"}]},{title:"Setting up Tendermint KMS + Ledger",frontmatter:{description:"",order:6},regularPath:"/validators/kms/kms_ledger.html",relativePath:"validators/kms/kms_ledger.md",key:"v-37d38700",path:"/validators/kms/kms_ledger.html",headers:[{level:2,title:"Tendermint Validator app (for Ledger devices)",slug:"tendermint-validator-app-for-ledger-devices"},{level:2,title:"KMS configuration",slug:"kms-configuration"},{level:3,title:"Config file",slug:"config-file"},{level:3,title:"Generate secret key",slug:"generate-secret-key"},{level:3,title:"Retrieve validator key",slug:"retrieve-validator-key"},{level:2,title:"Gaia configuration",slug:"gaia-configuration"}]},{title:"Validators Overview",frontmatter:{description:"",order:1,title:"Overview"},regularPath:"/validators/overview.html",relativePath:"validators/overview.md",key:"v-4da7b8c0",path:"/validators/overview.html",headers:[{level:2,title:"Introduction",slug:"introduction"},{level:2,title:"Hardware",slug:"hardware"},{level:2,title:"Create a Validator Website",slug:"create-a-validator-website"},{level:2,title:"Seek Legal Advice",slug:"seek-legal-advice"},{level:2,title:"Community",slug:"community"}]},{title:"Validator Security",frontmatter:{description:"",order:4,title:"Validator Security"},regularPath:"/validators/security.html",relativePath:"validators/security.md",key:"v-3bacdca0",path:"/validators/security.html",headers:[{level:2,title:"Key Management - HSM",slug:"key-management-hsm"},{level:2,title:"Sentry Nodes (DDOS Protection)",slug:"sentry-nodes-ddos-protection"},{level:2,title:"Environment Variables",slug:"environment-variables"}]},{title:"Running a Validator",frontmatter:{description:"",order:2,title:"Running a Validator"},regularPath:"/validators/validator-setup.html",relativePath:"validators/validator-setup.md",key:"v-c519eab8",path:"/validators/validator-setup.html",headers:[{level:2,title:"What is a Validator?",slug:"what-is-a-validator"},{level:2,title:"Create Your Validator",slug:"create-your-validator"},{level:2,title:"Edit Validator Description",slug:"edit-validator-description"},{level:2,title:"View Validator Description",slug:"view-validator-description"},{level:2,title:"Track Validator Signing Information",slug:"track-validator-signing-information"},{level:2,title:"Unjail Validator",slug:"unjail-validator"},{level:2,title:"Confirm Your Validator is Running",slug:"confirm-your-validator-is-running"},{level:2,title:"Halting Your Validator",slug:"halting-your-validator"},{level:2,title:"Advanced configuration",slug:"advanced-configuration"},{level:2,title:"Common Problems",slug:"common-problems"},{level:3,title:"Problem #1: My validator has voting_power: 0",slug:"problem-1-my-validator-has-voting-power-0"},{level:3,title:"Problem #2: My gaiad crashes because of too many open files",slug:"problem-2-my-gaiad-crashes-because-of-too-many-open-files"}]},{title:"gaia文档",frontmatter:{description:""},regularPath:"/zh/",relativePath:"zh/README.md",key:"v-1813a4ea",path:"/zh/",headers:[{level:2,title:"加入Cosmos Hub主网",slug:"加入cosmos-hub主网"},{level:2,title:"加入Cosmos Hub公共测试网",slug:"加入cosmos-hub公共测试网"},{level:2,title:"部署你自己的gaia测试网络",slug:"部署你自己的gaia测试网络"},{level:2,title:"额外资源",slug:"额外资源"}]},{frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/installation.html",relativePath:"zh/gaia-tutorials/installation.md",key:"v-4cbea1b0",path:"/zh/gaia-tutorials/installation.html",headers:[{level:2,title:"安装 Gaia",slug:"安装-gaia"},{level:3,title:"安装 Go",slug:"安装-go"},{level:3,title:"安装二进制执行程序",slug:"安装二进制执行程序"},{level:3,title:"接下来",slug:"接下来"}]},{frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/join-mainnet.html",relativePath:"zh/gaia-tutorials/join-mainnet.md",key:"v-ec326d3c",path:"/zh/gaia-tutorials/join-mainnet.html",headers:[{level:2,title:"加入主网",slug:"加入主网"},{level:2,title:"创建一个新节点",slug:"创建一个新节点"},{level:2,title:"Genesis & Seeds",slug:"genesis-seeds"},{level:3,title:"复制genesis文件",slug:"复制genesis文件"},{level:3,title:"添加种子节点",slug:"添加种子节点"},{level:2,title:"设置minimum-gas-prices",slug:"设置minimum-gas-prices"},{level:2,title:"运行一个全节点",slug:"运行一个全节点"},{level:2,title:"导出状态",slug:"导出状态"},{level:2,title:"升级成为验证人节点",slug:"升级成为验证人节点"}]},{title:"Gaia是什么",frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/what-is-gaia.html",relativePath:"zh/gaia-tutorials/what-is-gaia.md",key:"v-07cf9e68",path:"/zh/gaia-tutorials/what-is-gaia.html"},{title:"加入公共测试网",frontmatter:{description:""},regularPath:"/zh/gaia-tutorials/join-testnet.html",relativePath:"zh/gaia-tutorials/join-testnet.md",key:"v-dd4a8258",path:"/zh/gaia-tutorials/join-testnet.html",headers:[{level:2,title:"创建一个新节点",slug:"创建一个新节点"},{level:2,title:"升级之前的 Testnet",slug:"升级之前的-testnet"},{level:3,title:"重置数据",slug:"重置数据"},{level:3,title:"升级软件",slug:"升级软件"}]},{title:"Gaia 创世状态(Genesis State)",frontmatter:{description:""},regularPath:"/zh/genesis-state.html",relativePath:"zh/genesis-state.md",key:"v-5c30b8f6",path:"/zh/genesis-state.html",headers:[{level:2,title:"账户(Accounts)",slug:"账户-accounts"}]},{title:"**Cosmos主网上线三部曲**",frontmatter:{description:""},regularPath:"/zh/launch/blog-2-cn.html",relativePath:"zh/launch/blog-2-cn.md",key:"v-a4aa1cc0",path:"/zh/launch/blog-2-cn.html",headers:[{level:2,title:"🚨第一阶段:网络逐步趋于稳定🚨",slug:"🚨第一阶段-网络逐步趋于稳定🚨"},{level:2,title:"第二阶段:链上交易开启",slug:"第二阶段-链上交易开启"},{level:2,title:"第三阶段:启用IBC协议",slug:"第三阶段-启用ibc协议"},{level:2,title:"验证人提示: 提交您的主网gentx文件",slug:"验证人提示-提交您的主网gentx文件"},{level:2,title:"总结",slug:"总结"}]},{title:"Ledger Nano支持",frontmatter:{description:""},regularPath:"/zh/resources/ledger.html",relativePath:"zh/resources/ledger.md",key:"v-621d6140",path:"/zh/resources/ledger.html",headers:[{level:2,title:"关于HD钱包",slug:"关于hd钱包"},{level:2,title:"Ledger支持HD钱包",slug:"ledger支持hd钱包"}]},{title:"验证人安全",frontmatter:{description:""},regularPath:"/zh/validators/security.html",relativePath:"zh/validators/security.md",key:"v-1731e69c",path:"/zh/validators/security.html",headers:[{level:2,title:"密钥管理 - HSM",slug:"密钥管理-hsm"},{level:2,title:"哨兵节点(DDOS防御)",slug:"哨兵节点-ddos防御"},{level:2,title:"环境变量",slug:"环境变量"}]},{title:"验证人概览",frontmatter:{description:""},regularPath:"/zh/validators/overview.html",relativePath:"zh/validators/overview.md",key:"v-f2b0d680",path:"/zh/validators/overview.html",headers:[{level:2,title:"介绍",slug:"介绍"},{level:2,title:"硬件",slug:"硬件"},{level:2,title:"创建一个网站",slug:"创建一个网站"},{level:2,title:"寻求法律建议",slug:"寻求法律建议"},{level:2,title:"社区",slug:"社区"}]},{title:"在主网上运行一个验证人",frontmatter:{description:""},regularPath:"/zh/validators/validator-setup.html",relativePath:"zh/validators/validator-setup.md",key:"v-feb36d80",path:"/zh/validators/validator-setup.html",headers:[{level:2,title:"什么是验证人?",slug:"什么是验证人"},{level:2,title:"创建你的验证人",slug:"创建你的验证人"},{level:2,title:"以初始验证人的形式加入到genesis文件",slug:"以初始验证人的形式加入到genesis文件"},{level:2,title:"编辑验证人的描述信息",slug:"编辑验证人的描述信息"},{level:2,title:"查看验证人的描述信息",slug:"查看验证人的描述信息"},{level:2,title:"跟踪验证人的签名信息",slug:"跟踪验证人的签名信息"},{level:2,title:"unjail验证人",slug:"unjail验证人"},{level:2,title:"确认你的验证人节点正在运行",slug:"确认你的验证人节点正在运行"},{level:2,title:"常见问题",slug:"常见问题"},{level:3,title:"问题 #1 : 我的验证人的voting_power: 0",slug:"问题-1-我的验证人的voting-power-0"},{level:3,title:"问题 #2 : 我的gaiad由于too many open files而崩溃",slug:"问题-2-我的gaiad由于too-many-open-files而崩溃"}]},{title:"ADR 002: Globalfee Module",frontmatter:{description:""},regularPath:"/architecture/adr-002-globalfee.html",relativePath:"architecture/adr-002-globalfee.md",key:"v-8fd705a0",path:"/architecture/adr-002-globalfee.html",headers:[{level:2,title:"Changelog",slug:"changelog"},{level:2,title:"Status",slug:"status"},{level:2,title:"Context",slug:"context"},{level:2,title:"Decision",slug:"decision"},{level:3,title:"ZeroCoins in MinimumGasPricesParam",slug:"zerocoins-in-minimumgaspricesparam"},{level:3,title:"Bypass Message Types",slug:"bypass-message-types"},{level:3,title:"Fee Checks in DeliverTx",slug:"fee-checks-in-delivertx"},{level:2,title:"Consequences",slug:"consequences"},{level:3,title:"Positive",slug:"positive"},{level:3,title:"Negative",slug:"negative"},{level:2,title:"References",slug:"references"}]},{title:"Delegator FAQ",frontmatter:{description:"",order:2,title:"Delegator FAQ"},regularPath:"/delegators/delegator-faq.html",relativePath:"delegators/delegator-faq.md",key:"v-f385361c",path:"/delegators/delegator-faq.html",headers:[{level:2,title:"What is a delegator?",slug:"what-is-a-delegator"},{level:2,title:"Choosing a validator",slug:"choosing-a-validator"},{level:2,title:"Directives of delegators",slug:"directives-of-delegators"},{level:2,title:"Revenue",slug:"revenue"},{level:2,title:"Validator Commission",slug:"validator-commission"},{level:2,title:"Liquid Staking",slug:"liquid-staking"},{level:3,title:"Toggling the ability to tokenize shares",slug:"toggling-the-ability-to-tokenize-shares"},{level:2,title:"Risks",slug:"risks"}]},{title:"Delegator Security",frontmatter:{description:"",order:3,title:"Delegator Security"},regularPath:"/delegators/delegator-security.html",relativePath:"delegators/delegator-security.md",key:"v-39ba7ec0",path:"/delegators/delegator-security.html",headers:[{level:2,title:"Social Engineering",slug:"social-engineering"},{level:2,title:"Key Management",slug:"key-management"},{level:2,title:"Software Vulnerabilities",slug:"software-vulnerabilities"},{level:2,title:"Verifying Transactions",slug:"verifying-transactions"},{level:2,title:"Account Security",slug:"account-security"},{level:2,title:"Supply Chain Attacks",slug:"supply-chain-attacks"},{level:2,title:"Disclaimer",slug:"disclaimer"}]},{title:"Únase a la red principal del Cosmos Hub",frontmatter:{description:"",order:3},regularPath:"/es/gaia-tutorials/join-mainnet.html",relativePath:"es/gaia-tutorials/join-mainnet.md",key:"v-b0f4e33c",path:"/es/gaia-tutorials/join-mainnet.html",headers:[{level:2,title:"Configurando un nuevo nodo",slug:"configurando-un-nuevo-nodo"},{level:2,title:"Génesis y semillas",slug:"genesis-y-semillas"},{level:3,title:"Copie el archivo génesis",slug:"copie-el-archivo-genesis"},{level:3,title:"Añada los nodos semilla",slug:"anada-los-nodos-semilla"},{level:2,title:"Nota sobre el Fee y el Gas",slug:"nota-sobre-el-fee-y-el-gas"},{level:2,title:"Establezca minimum-gas-prices",slug:"establezca-minimum-gas-prices"},{level:2,title:"Reducción del Estado",slug:"reduccion-del-estado"},{level:2,title:"Ejecute un nodo completo",slug:"ejecute-un-nodo-completo"},{level:2,title:"Exportar el estado",slug:"exportar-el-estado"},{level:2,title:"Verifica la red principal",slug:"verifica-la-red-principal"},{level:2,title:"Actualice a un nodo validador",slug:"actualice-a-un-nodo-validador"}]},{title:"Off-Chain Proposal Process",frontmatter:{description:"",order:3},regularPath:"/governance/best-practices.html",relativePath:"governance/best-practices.md",key:"v-27ea8460",path:"/governance/best-practices.html",headers:[{level:2,title:"Engage directly with the voting community and seek feedback",slug:"engage-directly-with-the-voting-community-and-seek-feedback"},{level:2,title:"Stage 1: Your Idea",slug:"stage-1-your-idea"},{level:3,title:"Not yet confident about your idea?",slug:"not-yet-confident-about-your-idea"},{level:3,title:"Confident with your idea?",slug:"confident-with-your-idea"},{level:3,title:"Are you ready to draft a governance proposal?",slug:"are-you-ready-to-draft-a-governance-proposal"},{level:2,title:"Stage 2: Your Draft Proposal",slug:"stage-2-your-draft-proposal"},{level:3,title:"Proposal Elements",slug:"proposal-elements"},{level:3,title:"Begin with a well-considered draft proposal",slug:"begin-with-a-well-considered-draft-proposal"},{level:3,title:"Engage the community with your draft proposal",slug:"engage-the-community-with-your-draft-proposal"},{level:3,title:"Submit your proposal to the testnet",slug:"submit-your-proposal-to-the-testnet"},{level:2,title:"Stage 3: Your On-Chain Proposal",slug:"stage-3-your-on-chain-proposal"},{level:3,title:"The Deposit Period",slug:"the-deposit-period"},{level:3,title:"The Voting Period",slug:"the-voting-period"}]},{title:"Formatting a Proposal",frontmatter:{description:"",order:4},regularPath:"/governance/formatting.html",relativePath:"governance/formatting.md",key:"v-fd3648c0",path:"/governance/formatting.html",headers:[{level:2,title:"Text",slug:"text"},{level:3,title:"Real example",slug:"real-example"},{level:2,title:"Community Pool Spend",slug:"community-pool-spend"},{level:3,title:"Real example",slug:"real-example-2"},{level:2,title:"Param Change",slug:"param-change"},{level:3,title:"Real example",slug:"real-example-3"}]},{title:"`gov` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Governance.html",relativePath:"governance/proposal-types/params-change/Governance.md",key:"v-6c706790",path:"/governance/proposal-types/params-change/Governance.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"depositparams",slug:"depositparams"},{level:3,title:"votingparams",slug:"votingparams"},{level:3,title:"tallyparams",slug:"tallyparams"}]},{title:"`distribution` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Distribution.html",relativePath:"governance/proposal-types/params-change/Distribution.md",key:"v-7cd69f68",path:"/governance/proposal-types/params-change/Distribution.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"communitytax",slug:"communitytax"},{level:3,title:"baseproposerreward",slug:"baseproposerreward"},{level:3,title:"bonusproposerreward",slug:"bonusproposerreward"},{level:3,title:"withdrawaddrenabled",slug:"withdrawaddrenabled"},{level:2,title:"Known Bug",slug:"known-bug"}]},{title:"`slashing` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Slashing.html",relativePath:"governance/proposal-types/params-change/Slashing.md",key:"v-16a2b68a",path:"/governance/proposal-types/params-change/Slashing.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"SignedBlocksWindow",slug:"signedblockswindow"},{level:3,title:"MinSignedPerWindow",slug:"minsignedperwindow"},{level:3,title:"DowntimeJailDuration",slug:"downtimejailduration"},{level:3,title:"SlashFractionDoubleSign",slug:"slashfractiondoublesign"},{level:3,title:"SlashFractionDowntime",slug:"slashfractiondowntime"},{level:3,title:"MaxEvidenceAge",slug:"maxevidenceage"}]},{title:"`mint` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Mint.html",relativePath:"governance/proposal-types/params-change/Mint.md",key:"v-80c733e0",path:"/governance/proposal-types/params-change/Mint.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"MintDenom",slug:"mintdenom"},{level:3,title:"InflationRateChange",slug:"inflationratechange"},{level:3,title:"InflationMax",slug:"inflationmax"},{level:3,title:"InflationMin",slug:"inflationmin"},{level:3,title:"GoalBonded",slug:"goalbonded"},{level:3,title:"BlocksPerYear",slug:"blocksperyear"}]},{title:"`staking` subspace",frontmatter:{description:""},regularPath:"/governance/proposal-types/params-change/Staking.html",relativePath:"governance/proposal-types/params-change/Staking.md",key:"v-405c4ac0",path:"/governance/proposal-types/params-change/Staking.html",headers:[{level:2,title:"Governance notes on parameters",slug:"governance-notes-on-parameters"},{level:3,title:"UnbondingTime",slug:"unbondingtime"},{level:2,title:"MaxValidators",slug:"maxvalidators"},{level:3,title:"KeyMaxEntries",slug:"keymaxentries"},{level:3,title:"Notes",slug:"notes-3"},{level:3,title:"BondDenom",slug:"bonddenom"},{level:3,title:"HistoricalEntries",slug:"historicalentries"}]},{title:"Proposal 34: Luna Mission - Funding $ATOM",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-atom2021_marketing/",relativePath:"governance/proposals/2021-01-atom2021_marketing/README.md",key:"v-5d13e021",path:"/governance/proposals/2021-01-atom2021_marketing/"},{title:"Stargate Upgrade- Second time is a charm",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-stargate-upgrade-b/",relativePath:"governance/proposals/2021-01-stargate-upgrade-b/README.md",key:"v-23577189",path:"/governance/proposals/2021-01-stargate-upgrade-b/",headers:[{level:2,title:"by Iqlusion",slug:"by-iqlusion"},{level:2,title:"Key Results",slug:"key-results"},{level:2,title:"Context",slug:"context"},{level:3,title:"Aborting of Proposal 35",slug:"aborting-of-proposal-35"},{level:2,title:"The Stargate Plan",slug:"the-stargate-plan"},{level:2,title:"Stargate Plan Results",slug:"stargate-plan-results"},{level:3,title:"1. Ecoystem Participation",slug:"_1-ecoystem-participation"},{level:3,title:"2. Critical Partner Support",slug:"_2-critical-partner-support"},{level:3,title:"3. Documentation and Self-Certification",slug:"_3-documentation-and-self-certification"},{level:3,title:"Conclusion",slug:"conclusion"},{level:3,title:"Cosmos Stargate Integration Success",slug:"cosmos-stargate-integration-success"},{level:2,title:"Prop 29",slug:"prop-29"},{level:2,title:"Stargate Upgrade Steps",slug:"stargate-upgrade-steps"},{level:2,title:"Time of the Upgrade",slug:"time-of-the-upgrade"},{level:2,title:"The git commit of Gaia that we are upgrading to",slug:"the-git-commit-of-gaia-that-we-are-upgrading-to"},{level:2,title:"What we're doing while voting is happening",slug:"what-we-re-doing-while-voting-is-happening"},{level:2,title:"What is the upgrade abort process",slug:"what-is-the-upgrade-abort-process"}]},{title:"Cosmos Stargate Hub Upgrade Proposal 2: Time to Upgrade",frontmatter:{description:""},regularPath:"/governance/proposals/2021-01-stargate-upgrade/",relativePath:"governance/proposals/2021-01-stargate-upgrade/README.md",key:"v-183e9cb3",path:"/governance/proposals/2021-01-stargate-upgrade/",headers:[{level:2,title:"by Iqlusion",slug:"by-iqlusion"},{level:2,title:"Key Results",slug:"key-results"},{level:2,title:"Context",slug:"context"},{level:2,title:"The Stargate Plan",slug:"the-stargate-plan"},{level:2,title:"Stargate Plan Results",slug:"stargate-plan-results"},{level:3,title:"1. Ecoystem Participation",slug:"_1-ecoystem-participation"},{level:3,title:"2. Critical Partner Support",slug:"_2-critical-partner-support"},{level:3,title:"3. Documentation and Self-Certification",slug:"_3-documentation-and-self-certification"},{level:3,title:"Conclusion",slug:"conclusion"},{level:3,title:"Cosmos Stargate Integration Success",slug:"cosmos-stargate-integration-success"},{level:2,title:"Prop 29",slug:"prop-29"},{level:2,title:"Stargate Upgrade Steps",slug:"stargate-upgrade-steps"},{level:2,title:"Time of the Upgrade",slug:"time-of-the-upgrade"},{level:2,title:"The git commit of Gaia that we are upgrading to",slug:"the-git-commit-of-gaia-that-we-are-upgrading-to"},{level:2,title:"What we're doing while voting is happening",slug:"what-we-re-doing-while-voting-is-happening"},{level:2,title:"What is the upgrade abort process",slug:"what-is-the-upgrade-abort-process"}]},{title:"Advancing Ethermint - Governance Proposal: GTM and Engineering Plan for the Ethermint Chain",frontmatter:{description:""},regularPath:"/governance/proposals/2021-04-advancing-ethermint/",relativePath:"governance/proposals/2021-04-advancing-ethermint/README.md",key:"v-b74fdc6a",path:"/governance/proposals/2021-04-advancing-ethermint/",headers:[{level:3,title:"Author",slug:"author"},{level:2,title:"Summary",slug:"summary"},{level:2,title:"Governance Votes",slug:"governance-votes"},{level:2,title:"Multisig and release of funds",slug:"multisig-and-release-of-funds"},{level:2,title:"Product commitment",slug:"product-commitment"},{level:3,title:"Hard Commitments",slug:"hard-commitments"},{level:2,title:"Soft Commitments",slug:"soft-commitments"},{level:2,title:"Conclusion",slug:"conclusion"}]},{title:"Proposal 46: Extend Luna Mission to Fund ATOM Marketing",frontmatter:{description:""},regularPath:"/governance/proposals/2021-04-prop34-continuation/",relativePath:"governance/proposals/2021-04-prop34-continuation/README.md",key:"v-bd8534ea",path:"/governance/proposals/2021-04-prop34-continuation/",headers:[{level:2,title:"PROPOSAL 46 REQUEST:",slug:"proposal-46-request"},{level:2,title:"SECTION I OVERVIEW",slug:"section-i-overview"},{level:3,title:"Spend Overview",slug:"spend-overview"},{level:2,title:"SECTION II - HISTORY",slug:"section-ii-history"},{level:2,title:"SECTION III - DELIVERABLES",slug:"section-iii-deliverables"},{level:2,title:"SECTION IV - Public Relations",slug:"section-iv-public-relations"},{level:2,title:"SECTION V - MEME Competition 2021",slug:"section-v-meme-competition-2021"}]},{title:"Signaling Proposal - Deployment of Gravity Bridge on the Cosmos Hub",frontmatter:{description:""},regularPath:"/governance/proposals/2021-05-gravity-bridge-deployment/",relativePath:"governance/proposals/2021-05-gravity-bridge-deployment/README.md",key:"v-2e2517eb",path:"/governance/proposals/2021-05-gravity-bridge-deployment/",headers:[{level:2,title:"Summary",slug:"summary"},{level:2,title:"Vision",slug:"vision"},{level:2,title:"Cosmos, Ethereum, and Gravity",slug:"cosmos-ethereum-and-gravity"},{level:2,title:"How do validators support the Gravity Bridge?",slug:"how-do-validators-support-the-gravity-bridge"},{level:3,title:"Cosmos to Ethereum:",slug:"cosmos-to-ethereum"},{level:3,title:"Ethereum to Cosmos:",slug:"ethereum-to-cosmos"},{level:3,title:"Slashing Conditions Spec",slug:"slashing-conditions-spec"},{level:2,title:"How does it work?",slug:"how-does-it-work"},{level:3,title:"Gravity.sol",slug:"gravity-sol"},{level:3,title:"Gravity Cosmos Module",slug:"gravity-cosmos-module"},{level:3,title:"Orchestrator",slug:"orchestrator"},{level:3,title:"Market of Relayers",slug:"market-of-relayers"},{level:2,title:"Security assumptions",slug:"security-assumptions"},{level:2,title:"Ongoing work",slug:"ongoing-work"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Audit:",slug:"audit"},{level:3,title:"Conclusion:",slug:"conclusion"},{level:2,title:"Proposers",slug:"proposers"},{level:2,title:"Governance Votes",slug:"governance-votes"},{level:2,title:"Appendix",slug:"appendix"},{level:3,title:"FAQ",slug:"faq"},{level:3,title:"Is running the Gravity Module difficult for Cosmos Validators?",slug:"is-running-the-gravity-module-difficult-for-cosmos-validators"},{level:3,title:"Is the Gravity bridge secure?",slug:"is-the-gravity-bridge-secure"},{level:3,title:"Are slashing conditions a problem for validators?",slug:"are-slashing-conditions-a-problem-for-validators"},{level:3,title:"What about peg zones?",slug:"what-about-peg-zones"},{level:3,title:"Why not use IBC to create a bridge to Ethereum?",slug:"why-not-use-ibc-to-create-a-bridge-to-ethereum"}]},{title:"Submitting a Proposal",frontmatter:{description:"",order:5},regularPath:"/governance/submitting.html",relativePath:"governance/submitting.md",key:"v-69e7af00",path:"/governance/submitting.html",headers:[{level:2,title:"Hosting supplementary materials",slug:"hosting-supplementary-materials"},{level:2,title:"Formatting the JSON file for the governance proposal",slug:"formatting-the-json-file-for-the-governance-proposal"},{level:2,title:"Sending the transaction that submits your governance proposal",slug:"sending-the-transaction-that-submits-your-governance-proposal"},{level:3,title:"Walkthrough example",slug:"walkthrough-example"},{level:3,title:"Verifying your transaction",slug:"verifying-your-transaction"},{level:3,title:"Troubleshooting a failed transaction",slug:"troubleshooting-a-failed-transaction"},{level:3,title:"Depositing funds after a proposal has been submitted",slug:"depositing-funds-after-a-proposal-has-been-submitted"},{level:3,title:"Submitting your proposal to the testnet",slug:"submitting-your-proposal-to-the-testnet"}]},{title:"Join the Cosmos Hub Public Testnet",frontmatter:{description:"",order:3,title:"Joining Testnet"},regularPath:"/hub-tutorials/join-testnet.html",relativePath:"hub-tutorials/join-testnet.md",key:"v-4aec61d8",path:"/hub-tutorials/join-testnet.html",headers:[{level:2,title:"Background",slug:"background"},{level:3,title:"Version History",slug:"version-history"},{level:2,title:"How to Join",slug:"how-to-join"},{level:2,title:"Sync Options",slug:"sync-options"},{level:2,title:"Step-by-Step Setup",slug:"step-by-step-setup"},{level:3,title:"Build Tools",slug:"build-tools"},{level:3,title:"Installation & Configuration",slug:"installation-configuration"},{level:3,title:"Cosmovisor Setup (Optional)",slug:"cosmovisor-setup-optional"},{level:3,title:"Create Service File",slug:"create-service-file"},{level:3,title:"Start the Service",slug:"start-the-service"},{level:2,title:"Create a Validator (Optional)",slug:"create-a-validator-optional"},{level:2,title:"Upgrading Your Node",slug:"upgrading-your-node"}]},{title:"최신 퍼블릭 테스트넷에 참가하기",frontmatter:{description:""},regularPath:"/ko/gaia-tutorials/join-mainnet.html",relativePath:"ko/gaia-tutorials/join-mainnet.md",key:"v-524c67f6",path:"/ko/gaia-tutorials/join-mainnet.html",headers:[{level:2,title:"새로운 노드 세팅하기",slug:"새로운-노드-세팅하기"},{level:2,title:"제네시스와 시드",slug:"제네시스와-시드"},{level:3,title:"제네시스 파일 복사하기",slug:"제네시스-파일-복사하기"},{level:3,title:"시드 노드 추가하기",slug:"시드-노드-추가하기"},{level:3,title:"가스와 수수료에 대해서",slug:"가스와-수수료에-대해서"},{level:2,title:"최소 가스 가격(minimum-gas-prices) 설정하기",slug:"최소-가스-가격-minimum-gas-prices-설정하기"},{level:2,title:"풀노드 운영하기",slug:"풀노드-운영하기"},{level:2,title:"상태 내보내기(Export State)",slug:"상태-내보내기-export-state"},{level:2,title:"메인넷 검증하기",slug:"메인넷-검증하기"},{level:2,title:"검증인 노드로 업그레이드 하기",slug:"검증인-노드로-업그레이드-하기"}]},{title:"코스모스 허브 메인넷의 시작",frontmatter:{description:""},regularPath:"/ko/launch/blog-1-kr.html",relativePath:"ko/launch/blog-1-kr.md",key:"v-5d40e180",path:"/ko/launch/blog-1-kr.html",headers:[{level:2,title:"런칭을 위해 남은 마일스톤",slug:"런칭을-위해-남은-마일스톤"},{level:3,title:"5: 코스모스 SDK 보안 감사 ✔",slug:"_5-코스모스-sdk-보안-감사-✔"},{level:3,title:"4: 코스모스 SDK 기능 동결 (feature freeze)",slug:"_4-코스모스-sdk-기능-동결-feature-freeze"},{level:3,title:"3: 게임 오브 스테이크 완료",slug:"_3-게임-오브-스테이크-완료"},{level:3,title:"2: 제네시스 트랜잭션 모으기",slug:"_2-제네시스-트랜잭션-모으기"},{level:3,title:"1: 코스모스 허브 메인넷 런칭 🔥 🚀 🌔🔥",slug:"_1-코스모스-허브-메인넷-런칭-🔥-🚀-🌔🔥"},{level:2,title:"공식 코스모스 소통 채널",slug:"공식-코스모스-소통-채널"},{level:2,title:"메인넷 런칭때 안전할 수 있는 방법은?",slug:"메인넷-런칭때-안전할-수-있는-방법은"},{level:2,title:"다음은 코스모스 메인넷 런칭 준비 유의사항입니다",slug:"다음은-코스모스-메인넷-런칭-준비-유의사항입니다"}]},{title:"지원",frontmatter:{description:""},regularPath:"/ko/resources/ledger.html",relativePath:"ko/resources/ledger.md",key:"v-4251c2a0",path:"/ko/resources/ledger.html",headers:[{level:2,title:"Gaia CLI + Ledger Nano",slug:"gaia-cli-ledger-nano"},{level:3,title:"시작하기 전에",slug:"시작하기-전에"},{level:3,title:"렛저 키 추가하기",slug:"렛저-키-추가하기"},{level:3,title:"주소 확인하기",slug:"주소-확인하기"},{level:3,title:"풀노드에 연결하기",slug:"풀노드에-연결하기"},{level:3,title:"트랜잭션 서명하기",slug:"트랜잭션-서명하기"},{level:3,title:"자산 받기",slug:"자산-받기"},{level:3,title:"추가 참고 문서",slug:"추가-참고-문서"},{level:3,title:"기기 연결하기",slug:"기기-연결하기"},{level:3,title:"주소 확인하기",slug:"주소-확인하기-2"}]},{title:"퍼블릭 테스트넷에서 밸리데이터 운영하기",frontmatter:{description:""},regularPath:"/ko/validators/validator-setup.html",relativePath:"ko/validators/validator-setup.md",key:"v-63a66800",path:"/ko/validators/validator-setup.html",headers:[{level:2,title:"밸리데이터란 무엇인가?",slug:"밸리데이터란-무엇인가"},{level:2,title:"밸리데이터 생성하기",slug:"밸리데이터-생성하기"},{level:2,title:"밸리데이터로써 제네시스 참가하기",slug:"밸리데이터로써-제네시스-참가하기"},{level:3,title:"제네시스 파일 복사, 제네시스 트랜잭션 처리하기",slug:"제네시스-파일-복사-제네시스-트랜잭션-처리하기"},{level:2,title:"검증인 설명 수정하기",slug:"검증인-설명-수정하기"},{level:2,title:"밸리데이터 설명 확인하기",slug:"밸리데이터-설명-확인하기"},{level:2,title:"밸리데이터 서명 정보 추적하기",slug:"밸리데이터-서명-정보-추적하기"},{level:2,title:"밸리데이터 석방(Unjail)하기",slug:"밸리데이터-석방-unjail-하기"},{level:2,title:"밸리데이터 작동상태 확인",slug:"밸리데이터-작동상태-확인"},{level:2,title:"흔히 발생하는 문제들",slug:"흔히-발생하는-문제들"},{level:3,title:"문제 #1: 내 검증인의 보팅 파워가 0 입니다",slug:"문제-1-내-검증인의-보팅-파워가-0-입니다"},{level:3,title:"문제 #2: too many open files때문에 gaiad가 강제 종료됩니다",slug:"문제-2-too-many-open-files때문에-gaiad가-강제-종료됩니다"}]},{title:"Cosmos Hub to Launch Mainnet",frontmatter:{description:""},regularPath:"/launch/blog-1-en.html",relativePath:"launch/blog-1-en.md",key:"v-e9d91d38",path:"/launch/blog-1-en.html",headers:[{level:2,title:"Pre-launch Dependencies & How to Safely Claim Your Atoms",slug:"pre-launch-dependencies-how-to-safely-claim-your-atoms"},{level:2,title:"Remaining Milestones for Launch",slug:"remaining-milestones-for-launch"},{level:3,title:"5 Cosmos-SDK Security Audits ✔",slug:"_5-cosmos-sdk-security-audits-✔"},{level:3,title:"4 Cosmos SDK Feature Freeze",slug:"_4-cosmos-sdk-feature-freeze"},{level:3,title:"3 Game of Stakes Completed",slug:"_3-game-of-stakes-completed"},{level:3,title:"2 Genesis Transactions Collected",slug:"_2-genesis-transactions-collected"},{level:3,title:"1 Cosmos Hub Mainnet Launch",slug:"_1-cosmos-hub-mainnet-launch"},{level:2,title:"Official Cosmos Communication Channels",slug:"official-cosmos-communication-channels"},{level:2,title:"Staying Safe (and Secure!) for Mainnet Launch",slug:"staying-safe-and-secure-for-mainnet-launch"}]},{title:"Cosmos Hub 2 Upgrade Instructions",frontmatter:{description:"",title:"Cosmos Hub 2 Upgrade",order:6},regularPath:"/migration/cosmoshub-2/cosmoshub-2.html",relativePath:"migration/cosmoshub-2/cosmoshub-2.md",key:"v-d8722040",path:"/migration/cosmoshub-2/cosmoshub-2.html",headers:[{level:2,title:"Preliminary",slug:"preliminary"},{level:2,title:"Major Updates",slug:"major-updates"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Recovery",slug:"recovery"},{level:2,title:"Upgrade Procedure",slug:"upgrade-procedure"},{level:2,title:"Notes for Service Providers",slug:"notes-for-service-providers"}]},{title:"스테이트 싱크",frontmatter:{description:"",order:!1},regularPath:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html",relativePath:"migration/cosmoshub-3/cosmoshub-3[KR_kr].md",key:"v-3a6c3c60",path:"/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.html",headers:[{level:2,title:"사전 정보",slug:"사전-정보"},{level:2,title:"주요 업데이트",slug:"주요-업데이트"},{level:2,title:"위험 고지",slug:"위험-고지"},{level:2,title:"복구",slug:"복구"},{level:2,title:"업그레이드",slug:"업그레이드"},{level:2,title:"서비스 제공자를 위한 정보",slug:"서비스-제공자를-위한-정보"}]},{title:"State Sync",frontmatter:{description:"",order:!1},regularPath:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html",relativePath:"migration/cosmoshub-3/cosmoshub-3[ES_es].md",key:"v-78add710",path:"/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.html",headers:[{level:2,title:"Preliminares",slug:"preliminares"},{level:2,title:"Principales actualizaciones",slug:"principales-actualizaciones"},{level:2,title:"Riesgos",slug:"riesgos"},{level:2,title:"Recuperación",slug:"recuperacion"},{level:2,title:"Procedimiento de actualización",slug:"procedimiento-de-actualizacion"},{level:2,title:"Notas para los proveedores de servicios",slug:"notas-para-los-proveedores-de-servicios"}]},{title:"Cosmos Hub 4, Delta Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Delta Upgrade",order:1},regularPath:"/migration/cosmoshub-4-delta-upgrade.html",relativePath:"migration/cosmoshub-4-delta-upgrade.md",key:"v-76ff3f40",path:"/migration/cosmoshub-4-delta-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place July 12, 2021",slug:"upgrade-will-take-place-july-12-2021"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Public testnet",slug:"public-testnet"},{level:3,title:"Current runtime, cosmoshub-4 (pre-Delta upgrade) is running Gaia v4.2.1",slug:"current-runtime-cosmoshub-4-pre-delta-upgrade-is-running-gaia-v4-2-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-Delta upgrade) will run Gaia v5.0.0",slug:"target-runtime-cosmoshub-4-post-delta-upgrade-will-run-gaia-v5-0-0"},{level:2,title:"Delta upgrade steps",slug:"delta-upgrade-steps"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"FAQ",slug:"faq"}]},{title:"Cosmos Hub 4, v10 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, v10 Upgrade",order:6},regularPath:"/migration/cosmoshub-4-v10-upgrade.html",relativePath:"migration/cosmoshub-4-v10-upgrade.md",key:"v-69a7e640",path:"/migration/cosmoshub-4-v10-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v10 upgrade) is running Gaia v9.1.1",slug:"current-runtime-cosmoshub-4-pre-v10-upgrade-is-running-gaia-v9-1-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-v10 upgrade) will run Gaia v10.0.1",slug:"target-runtime-cosmoshub-4-post-v10-upgrade-will-run-gaia-v10-0-1"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Gaia v12 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Gaia v12 Upgrade",order:8},regularPath:"/migration/cosmoshub-4-v12-upgrade.html",relativePath:"migration/cosmoshub-4-v12-upgrade.md",key:"v-15fddba0",path:"/migration/cosmoshub-4-v12-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Liquid Staking",slug:"liquid-staking"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime",slug:"current-runtime"},{level:3,title:"Target runtime",slug:"target-runtime"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Gaia v11 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Gaia v11 Upgrade",order:7},regularPath:"/migration/cosmoshub-4-v11-upgrade.html",relativePath:"migration/cosmoshub-4-v11-upgrade.md",key:"v-1ed61780",path:"/migration/cosmoshub-4-v11-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime",slug:"current-runtime"},{level:3,title:"Target runtime",slug:"target-runtime"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Gaia v13 Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Gaia v13 Upgrade",order:8},regularPath:"/migration/cosmoshub-4-v13-upgrade.html",relativePath:"migration/cosmoshub-4-v13-upgrade.md",key:"v-3b66c300",path:"/migration/cosmoshub-4-v13-upgrade.html",headers:[{level:2,title:"Instructions",slug:"instructions"},{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade date",slug:"upgrade-date"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime",slug:"current-runtime"},{level:3,title:"Target runtime",slug:"target-runtime"},{level:2,title:"Upgrade steps",slug:"upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the binary",slug:"manually-preparing-the-binary"},{level:3,title:"Auto-Downloading the Gaia binary",slug:"auto-downloading-the-gaia-binary"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, v8-Rho Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Rho Upgrade",order:4},regularPath:"/migration/cosmoshub-4-v8-Rho-upgrade.html",relativePath:"migration/cosmoshub-4-v8-Rho-upgrade.md",key:"v-fc555fcc",path:"/migration/cosmoshub-4-v8-Rho-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place Feb 16, 2023",slug:"upgrade-will-take-place-feb-16-2023"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v8-Rho upgrade) is running Gaia v7.1.1",slug:"current-runtime-cosmoshub-4-pre-v8-rho-upgrade-is-running-gaia-v7-1-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-v8-Rho upgrade) will run Gaia v8.0.0",slug:"target-runtime-cosmoshub-4-post-v8-rho-upgrade-will-run-gaia-v8-0-0"},{level:2,title:"v8-Rho upgrade steps",slug:"v8-rho-upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the Gaia v8.0.0 binary",slug:"manually-preparing-the-gaia-v8-0-0-binary"},{level:3,title:"Auto-Downloading the Gaia v8.0.0 binary (not recommended!)",slug:"auto-downloading-the-gaia-v8-0-0-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, v7-Theta Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Theta Upgrade",order:3},regularPath:"/migration/cosmoshub-4-v7-Theta-upgrade.html",relativePath:"migration/cosmoshub-4-v7-Theta-upgrade.md",key:"v-08131412",path:"/migration/cosmoshub-4-v7-Theta-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place April 12, 2022",slug:"upgrade-will-take-place-april-12-2022"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v7-Theta upgrade) is running Gaia v6.0.x",slug:"current-runtime-cosmoshub-4-pre-v7-theta-upgrade-is-running-gaia-v6-0-x"},{level:3,title:"Target runtime, cosmoshub-4 (post-v7-Theta upgrade) will run Gaia v7.0.0",slug:"target-runtime-cosmoshub-4-post-v7-theta-upgrade-will-run-gaia-v7-0-0"},{level:2,title:"v7-Theta upgrade steps",slug:"v7-theta-upgrade-steps"},{level:3,title:"Method I: manual upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: upgrade using Cosmovisor by manually preparing the Gaia v7.0.0 binary",slug:"method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v7-0-0-binary"},{level:3,title:"Method III: upgrade using Cosmovisor by auto-downloading the Gaia v7.0.0 binary (not recommended!)",slug:"method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v7-0-0-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, v9-Lambda Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Lambda Upgrade",order:5},regularPath:"/migration/cosmoshub-4-v9-Lambda-upgrade.html",relativePath:"migration/cosmoshub-4-v9-Lambda-upgrade.md",key:"v-c184b540",path:"/migration/cosmoshub-4-v9-Lambda-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place March 14-16, 2023",slug:"upgrade-will-take-place-march-14-16-2023"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-v9-Lambda upgrade) is running Gaia v8.0.1",slug:"current-runtime-cosmoshub-4-pre-v9-lambda-upgrade-is-running-gaia-v8-0-1"},{level:3,title:"Target runtime, cosmoshub-4 (post-v9-Lambda upgrade) will run Gaia v9.0.0",slug:"target-runtime-cosmoshub-4-post-v9-lambda-upgrade-will-run-gaia-v9-0-0"},{level:2,title:"v9-Lambda upgrade steps",slug:"v9-lambda-upgrade-steps"},{level:3,title:"Method I: Manual Upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: Upgrade using Cosmovisor",slug:"method-ii-upgrade-using-cosmovisor"},{level:3,title:"Manually preparing the Gaia v9.0.0 binary",slug:"manually-preparing-the-gaia-v9-0-0-binary"},{level:3,title:"Auto-Downloading the Gaia v9.0.0 binary (not recommended!)",slug:"auto-downloading-the-gaia-v9-0-0-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Cosmos Hub 4, Vega Upgrade, Instructions",frontmatter:{description:"",title:"Cosmos Hub 4, Vega Upgrade",order:2},regularPath:"/migration/cosmoshub-4-vega-upgrade.html",relativePath:"migration/cosmoshub-4-vega-upgrade.md",key:"v-77c0d338",path:"/migration/cosmoshub-4-vega-upgrade.html",headers:[{level:2,title:"On-chain governance proposal attains consensus",slug:"on-chain-governance-proposal-attains-consensus"},{level:2,title:"Upgrade will take place December 14, 2021",slug:"upgrade-will-take-place-december-14-2021"},{level:2,title:"Chain-id will remain the same",slug:"chain-id-will-remain-the-same"},{level:2,title:"Preparing for the upgrade",slug:"preparing-for-the-upgrade"},{level:3,title:"System requirement",slug:"system-requirement"},{level:3,title:"Backups",slug:"backups"},{level:3,title:"Testing",slug:"testing"},{level:3,title:"Current runtime, cosmoshub-4 (pre-Vega upgrade) is running Gaia v5.0.0",slug:"current-runtime-cosmoshub-4-pre-vega-upgrade-is-running-gaia-v5-0-0"},{level:3,title:"Target runtime, cosmoshub-4 (post-Vega upgrade) will run Gaia v6.0.4",slug:"target-runtime-cosmoshub-4-post-vega-upgrade-will-run-gaia-v6-0-4"},{level:2,title:"Vega upgrade steps",slug:"vega-upgrade-steps"},{level:3,title:"Method I: manual upgrade",slug:"method-i-manual-upgrade"},{level:3,title:"Method II: upgrade using Cosmovisor by manually preparing the Gaia v6.0.4 binary",slug:"method-ii-upgrade-using-cosmovisor-by-manually-preparing-the-gaia-v6-0-4-binary"},{level:3,title:"Method III: upgrade using Cosmovisor by auto-downloading the Gaia v6.0.4 binary (not recommended!)",slug:"method-iii-upgrade-using-cosmovisor-by-auto-downloading-the-gaia-v6-0-4-binary-not-recommended"},{level:2,title:"Upgrade duration",slug:"upgrade-duration"},{level:2,title:"Rollback plan",slug:"rollback-plan"},{level:2,title:"Communications",slug:"communications"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Reference",slug:"reference"}]},{title:"Gaia Fee and Fees Checks",frontmatter:{description:""},regularPath:"/modules/globalfee.html",relativePath:"modules/globalfee.md",key:"v-f8a9ba00",path:"/modules/globalfee.html",headers:[{level:2,title:"Fee Parameters",slug:"fee-parameters"},{level:2,title:"Globalfee module",slug:"globalfee-module"},{level:3,title:"Globalfee Params: MinimumGasPricesParam",slug:"globalfee-params-minimumgaspricesparam"},{level:3,title:"Globalfee Params: BypassMinFeeMsgTypes and MaxTotalBypassMinFeeMsgGasUsage",slug:"globalfee-params-bypassminfeemsgtypes-and-maxtotalbypassminfeemsggasusage"},{level:2,title:"Minimum-gas-prices (local fee requirement)",slug:"minimum-gas-prices-local-fee-requirement"},{level:2,title:"Fee AnteHandler Behaviour",slug:"fee-antehandler-behaviour"},{level:2,title:"Queries",slug:"queries"},{level:2,title:"Setting Up Globalfee Params via Gov Proposals",slug:"setting-up-globalfee-params-via-gov-proposals"},{level:2,title:"Examples",slug:"examples"},{level:3,title:"Case 1",slug:"case-1"},{level:3,title:"Case 2",slug:"case-2"},{level:3,title:"Case 3",slug:"case-3"},{level:3,title:"Case 4",slug:"case-4"},{level:3,title:"Case 5",slug:"case-5"},{level:3,title:"Case 6",slug:"case-6"},{level:3,title:"Case 7",slug:"case-7"},{level:3,title:"Case 8",slug:"case-8"},{level:2,title:"References",slug:"references"}]},{title:"Ledger Nano Support",frontmatter:{description:"",order:4,title:"Ledger Support"},regularPath:"/resources/ledger.html",relativePath:"resources/ledger.md",key:"v-611af834",path:"/resources/ledger.html",headers:[{level:2,title:"Install the Cosmos Ledger application",slug:"install-the-cosmos-ledger-application"},{level:2,title:"Keplr + Ledger Nano",slug:"keplr-ledger-nano"},{level:3,title:"(Optional) Confirm your address",slug:"optional-confirm-your-address"},{level:2,title:"Gaia CLI + Ledger Nano",slug:"gaia-cli-ledger-nano"},{level:3,title:"Before you Begin",slug:"before-you-begin"},{level:3,title:"Add your Ledger key",slug:"add-your-ledger-key"},{level:3,title:"Confirm your address",slug:"confirm-your-address"},{level:3,title:"Connect to a full node",slug:"connect-to-a-full-node"},{level:3,title:"Sign a transaction",slug:"sign-a-transaction"},{level:3,title:"Receive funds",slug:"receive-funds"},{level:3,title:"Further documentation",slug:"further-documentation"},{level:2,title:"The Cosmos Standard Transaction",slug:"the-cosmos-standard-transaction"},{level:2,title:"Support",slug:"support"}]},{title:"Previous Releases",frontmatter:{description:"",order:!1,parent:{title:"Previous Releases",order:7}},regularPath:"/roadmap/",relativePath:"roadmap/README.md",key:"v-75000dc1",path:"/roadmap/",headers:[{level:2,title:"Cosmos Hub Release Details",slug:"cosmos-hub-release-details"},{level:3,title:"Delta Upgrade (Completed July 12, 2021)",slug:"delta-upgrade-completed-july-12-2021"},{level:3,title:"Vega Upgrade (Completed December 14, 2021)",slug:"vega-upgrade-completed-december-14-2021"},{level:3,title:"v7-Theta Upgrade (Completed March 25, 2022)",slug:"v7-theta-upgrade-completed-march-25-2022"},{level:3,title:"v8-Rho Upgrade (expected Q1 2023)",slug:"v8-rho-upgrade-expected-q1-2023"},{level:3,title:"v9-Lambda Upgrade (expected Q1 2023)",slug:"v9-lambda-upgrade-expected-q1-2023"},{level:2,title:"Cosmos Hub Summary",slug:"cosmos-hub-summary"}]},{title:"Service Providers",frontmatter:{description:"",order:6,title:"Service Providers"},regularPath:"/resources/service-providers.html",relativePath:"resources/service-providers.md",key:"v-55d7a0e0",path:"/resources/service-providers.html",headers:[{level:2,title:"Connection Options",slug:"connection-options"},{level:2,title:"Running a Full Node",slug:"running-a-full-node"},{level:3,title:"What is a Full Node?",slug:"what-is-a-full-node"},{level:3,title:"Installation and Configuration",slug:"installation-and-configuration"},{level:2,title:"Command-Line Interface",slug:"command-line-interface"},{level:3,title:"Available Commands",slug:"available-commands"},{level:3,title:"Remote Access to gaiad",slug:"remote-access-to-gaiad"},{level:3,title:"Create a Key Pair",slug:"create-a-key-pair"},{level:3,title:"Check your Balance",slug:"check-your-balance"},{level:2,title:"REST API",slug:"rest-api"},{level:3,title:"Listen for Incoming Transactions",slug:"listen-for-incoming-transactions"}]},{title:"Cosmos Hub主网上线计划",frontmatter:{description:""},regularPath:"/zh/launch/blog-1-cn.html",relativePath:"zh/launch/blog-1-cn.md",key:"v-dd937a80",path:"/zh/launch/blog-1-cn.html",headers:[{level:2,title:"主网启动的里程碑",slug:"主网启动的里程碑"},{level:2,title:"Cosmos官方交流渠道",slug:"cosmos官方交流渠道"},{level:2,title:"在主网启动期间确保资产安全可靠",slug:"在主网启动期间确保资产安全可靠"},{level:2,title:"安全规则",slug:"安全规则"}]},{title:"创世(Genesis)文件",frontmatter:{description:""},regularPath:"/zh/resources/genesis.html",relativePath:"zh/resources/genesis.md",key:"v-29e61a5c",path:"/zh/resources/genesis.html",headers:[{level:2,title:"什么是创世文件",slug:"什么是创世文件"},{level:2,title:"Genesis 时间和链ID",slug:"genesis-时间和链id"},{level:2,title:"共识参数",slug:"共识参数"},{level:2,title:"应用程序状态",slug:"应用程序状态"},{level:3,title:"创世账号",slug:"创世账号"},{level:3,title:"银行(Bank)",slug:"银行-bank"},{level:3,title:"权益(Staking)",slug:"权益-staking"},{level:3,title:"挖矿(Mint)",slug:"挖矿-mint"},{level:3,title:"分配(Distribution)",slug:"分配-distribution"},{level:3,title:"治理(Governance)",slug:"治理-governance"},{level:3,title:"惩罚(Slashing )",slug:"惩罚-slashing"},{level:3,title:"创世交易(Genesis Transactions)",slug:"创世交易-genesis-transactions"}]},{title:"Especificaciones técnicas",frontmatter:{description:""},regularPath:"/es/governance/params-change/Governance.html",relativePath:"es/governance/params-change/Governance.md",key:"v-2acc3e00",path:"/es/governance/params-change/Governance.html",headers:[{level:2,title:"1. depositparams",slug:"_1-depositparams"},{level:2,title:"mindeposit",slug:"mindeposit"},{level:3,title:"El depósito mínimo requerido para que una propuesta entre en el período de votación, en micro-ATOMs",slug:"el-deposito-minimo-requerido-para-que-una-propuesta-entre-en-el-periodo-de-votacion-en-micro-atoms"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias"},{level:2,title:"maxdepositperiod",slug:"maxdepositperiod"},{level:3,title:"La cantidad máxima de tiempo que una propuesta puede aceptar contribuciones de depósito antes de expirar, en nanosegundos",slug:"la-cantidad-maxima-de-tiempo-que-una-propuesta-puede-aceptar-contribuciones-de-deposito-antes-de-expirar-en-nanosegundos"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-2"},{level:2,title:"2. votingparams",slug:"_2-votingparams"},{level:2,title:"votingperiod",slug:"votingperiod"},{level:3,title:"La cantidad máxima de tiempo que una propuesta puede aceptar votos antes de que concluya el período de votación, en nanosegundos",slug:"la-cantidad-maxima-de-tiempo-que-una-propuesta-puede-aceptar-votos-antes-de-que-concluya-el-periodo-de-votacion-en-nanosegundos"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-3"},{level:2,title:"2. tallyparams",slug:"_2-tallyparams"},{level:2,title:"quorum",slug:"quorum"},{level:3,title:"La proporción mínima de poder de voto de la red que se requiere para que el resultado de una propuesta de gobierno se considere válido",slug:"la-proporcion-minima-de-poder-de-voto-de-la-red-que-se-requiere-para-que-el-resultado-de-una-propuesta-de-gobierno-se-considere-valido"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-4"},{level:2,title:"threshold",slug:"threshold"},{level:3,title:"La proporción mínima del poder de voto necesario para que se apruebe una propuesta de gobierno",slug:"la-proporcion-minima-del-poder-de-voto-necesario-para-que-se-apruebe-una-propuesta-de-gobierno"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-5"},{level:2,title:"veto",slug:"veto"},{level:3,title:"La proporción mínima de poder de voto de los participantes para vetar (es decir, rechazar) una propuesta de gobierno",slug:"la-proporcion-minima-de-poder-de-voto-de-los-participantes-para-vetar-es-decir-rechazar-una-propuesta-de-gobierno"},{level:3,title:"Posibles consecuencias",slug:"posibles-consecuencias-6"},{level:2,title:"Parámetros de Génesis (aka lanzamiento)",slug:"parametros-de-genesis-aka-lanzamiento"},{level:2,title:"Parámetros actuales",slug:"parametros-actuales"},{level:2,title:"Futuro",slug:"futuro"}]},{title:"제네시스 파일",frontmatter:{description:""},regularPath:"/ko/resources/genesis.html",relativePath:"ko/resources/genesis.md",key:"v-a8848234",path:"/ko/resources/genesis.html",headers:[{level:2,title:"제네시스 파일은 무엇인가?",slug:"제네시스-파일은-무엇인가"},{level:2,title:"제네시스 시간과 체인 아이디",slug:"제네시스-시간과-체인-아이디"},{level:2,title:"컨센서스 파라미터",slug:"컨센서스-파라미터"},{level:2,title:"애플리케이션 상태",slug:"애플리케이션-상태"},{level:3,title:"제네시스 계정",slug:"제네시스-계정"},{level:3,title:"뱅크(Bank)",slug:"뱅크-bank"},{level:3,title:"스테이킹(Staking)",slug:"스테이킹-staking"},{level:3,title:"민트(mint)",slug:"민트-mint"},{level:3,title:"분배(distribution)",slug:"분배-distribution"},{level:3,title:"거버넌스(governance)",slug:"거버넌스-governance"},{level:3,title:"슬래싱(slashing)",slug:"슬래싱-slashing"},{level:3,title:"제네시스 트랜잭션(genesis transactions)",slug:"제네시스-트랜잭션-genesis-transactions"}]},{title:"State Sync",frontmatter:{description:"",title:"Cosmos Hub 3 Upgrade",order:5},regularPath:"/migration/cosmoshub-3/cosmoshub-3.html",relativePath:"migration/cosmoshub-3/cosmoshub-3.md",key:"v-68a36ea0",path:"/migration/cosmoshub-3/cosmoshub-3.html",headers:[{level:2,title:"Preliminary",slug:"preliminary"},{level:2,title:"Major Updates",slug:"major-updates"},{level:2,title:"Risks",slug:"risks"},{level:2,title:"Recovery",slug:"recovery"},{level:2,title:"Upgrade Procedure",slug:"upgrade-procedure"},{level:2,title:"Notes for Service Providers",slug:"notes-for-service-providers"}]},{title:"Genesis File",frontmatter:{description:"",order:1,title:"The Genesis File"},regularPath:"/resources/genesis.html",relativePath:"resources/genesis.md",key:"v-91b151c0",path:"/resources/genesis.html",headers:[{level:2,title:"What is a Genesis File",slug:"what-is-a-genesis-file"},{level:2,title:"Genesis Time and Chain_id",slug:"genesis-time-and-chain-id"},{level:2,title:"Consensus Parameters",slug:"consensus-parameters"},{level:2,title:"Application State",slug:"application-state"},{level:3,title:"Genesis Accounts",slug:"genesis-accounts"},{level:3,title:"Bank",slug:"bank"},{level:3,title:"Staking",slug:"staking"},{level:3,title:"Mint",slug:"mint"},{level:3,title:"Distribution",slug:"distribution"},{level:3,title:"Governance",slug:"governance"},{level:3,title:"Slashing",slug:"slashing"},{level:3,title:"Genesis Transactions",slug:"genesis-transactions"}]},{title:"委托人指南 (CLI)",frontmatter:{description:""},regularPath:"/zh/delegator/delegator-guide-cli.html",relativePath:"zh/delegator/delegator-guide-cli.md",key:"v-3cb8cfc8",path:"/zh/delegator/delegator-guide-cli.html",headers:[{level:2,title:"目录",slug:"目录"},{level:2,title:"安装 gaiad",slug:"安装-gaiad"},{level:2,title:"Cosmos账户",slug:"cosmos账户"},{level:3,title:"通过募资人恢复一个账户",slug:"通过募资人恢复一个账户"},{level:3,title:"创建一个账户",slug:"创建一个账户"},{level:2,title:"访问Cosmos Hub网络",slug:"访问cosmos-hub网络"},{level:3,title:"运行您自己的全节点",slug:"运行您自己的全节点"},{level:3,title:"连接到一个远程全节点",slug:"连接到一个远程全节点"},{level:2,title:"设置 gaiad",slug:"设置-gaiad"},{level:2,title:"状态查询",slug:"状态查询"},{level:2,title:"发起交易",slug:"发起交易"},{level:3,title:"关于gas费和手续费",slug:"关于gas费和手续费"},{level:3,title:"抵押Atom通证 & 提取奖励",slug:"抵押atom通证-提取奖励"},{level:2,title:"参与链上治理",slug:"参与链上治理"},{level:3,title:"从一台离线电脑上签署交易",slug:"从一台离线电脑上签署交易"}]},{title:"Gaia客户端",frontmatter:{description:""},regularPath:"/zh/resources/gaiad.html",relativePath:"zh/resources/gaiad.md",key:"v-26ead5fe",path:"/zh/resources/gaiad.html",headers:[{level:2,title:"Gaia CLI",slug:"gaia-cli"},{level:3,title:"配置 gaiad",slug:"配置-gaiad"},{level:3,title:"Key",slug:"key"},{level:3,title:"Tx 广播",slug:"tx-广播"},{level:3,title:"Fees 和 Gas",slug:"fees-和-gas"},{level:3,title:"账户",slug:"账户"},{level:3,title:"查询交易",slug:"查询交易"},{level:3,title:"Slashing",slug:"slashing"},{level:3,title:"Staking",slug:"staking"},{level:3,title:"治理",slug:"治理"},{level:3,title:"费用分配",slug:"费用分配"},{level:3,title:"多签交易",slug:"多签交易"},{level:2,title:"shell 自动补全脚本",slug:"shell-自动补全脚本"}]},{title:"验证人相关问题",frontmatter:{description:""},regularPath:"/zh/validators/validator-faq.html",relativePath:"zh/validators/validator-faq.md",key:"v-1d21baa0",path:"/zh/validators/validator-faq.html",headers:[{level:2,title:"基本概念",slug:"基本概念"},{level:3,title:"什么是验证人?",slug:"什么是验证人"},{level:3,title:"什么是'抵押'?",slug:"什么是-抵押"},{level:3,title:"什么是全节点?",slug:"什么是全节点"},{level:3,title:"什么是委托人?",slug:"什么是委托人"},{level:2,title:"成为一个验证人",slug:"成为一个验证人"},{level:3,title:"如何成为一个验证人?",slug:"如何成为一个验证人"},{level:2,title:"测试网",slug:"测试网"},{level:3,title:"我要怎样加入到测试网?",slug:"我要怎样加入到测试网"},{level:3,title:"密钥的不同类型?",slug:"密钥的不同类型"},{level:3,title:"验证人可以具有哪些不同的状态",slug:"验证人可以具有哪些不同的状态"},{level:3,title:"什么是self-bond?怎样增加我的self-bond?有水龙头吗?",slug:"什么是self-bond-怎样增加我的self-bond-有水龙头吗"},{level:3,title:"成为一个活跃的(=bonded)验证人必须要抵押最小数量的Atom吗?",slug:"成为一个活跃的-bonded-验证人必须要抵押最小数量的atom吗"},{level:2,title:"责任",slug:"责任"},{level:3,title:"验证人需要公开表明身份吗?",slug:"验证人需要公开表明身份吗"},{level:3,title:"一个验证人要担负哪些责任?",slug:"一个验证人要担负哪些责任"},{level:3,title:'"参与治理"需要?',slug:"参与治理-需要"},{level:3,title:"抵押是指?",slug:"抵押是指"},{level:3,title:"验证人可以卷走委托人的Atom跑路吗?",slug:"验证人可以卷走委托人的atom跑路吗"},{level:3,title:"一个验证人多久被选择提议下一个区块?会随着抵押的Atom数量上升吗?",slug:"一个验证人多久被选择提议下一个区块-会随着抵押的atom数量上升吗"},{level:3,title:"Cosmos Hub的验证人需要去验证Cosmos生态中的其他分区吗?",slug:"cosmos-hub的验证人需要去验证cosmos生态中的其他分区吗"},{level:2,title:"激励",slug:"激励"},{level:3,title:"抵押有什么激励?",slug:"抵押有什么激励"},{level:3,title:"运行一个验证人有什么激励?",slug:"运行一个验证人有什么激励"},{level:3,title:"什么是验证人的佣金?",slug:"什么是验证人的佣金"},{level:3,title:"区块增发奖励怎么分配?",slug:"区块增发奖励怎么分配"},{level:3,title:"交易手续费怎么分配?",slug:"交易手续费怎么分配"},{level:3,title:"遭到削减处罚的原因?",slug:"遭到削减处罚的原因"},{level:3,title:"验证人需要去自抵押一些Atom吗?",slug:"验证人需要去自抵押一些atom吗"},{level:3,title:"怎样预防股权集中到少数的验证人手中?",slug:"怎样预防股权集中到少数的验证人手中"},{level:2,title:"技术要求",slug:"技术要求"},{level:3,title:"对硬件的要求是什么?",slug:"对硬件的要求是什么"},{level:3,title:"对软件有什么要求?",slug:"对软件有什么要求"},{level:3,title:"对带宽有什么要求?",slug:"对带宽有什么要求"},{level:3,title:"运行一个验证人节点意味着什么?",slug:"运行一个验证人节点意味着什么"},{level:3,title:"怎样去进行密钥管理?",slug:"怎样去进行密钥管理"},{level:3,title:"在操作上我们期望验证人可以做到哪些?",slug:"在操作上我们期望验证人可以做到哪些"},{level:3,title:"维护需要什么?",slug:"维护需要什么"},{level:3,title:"验证人怎样保护自己免于DDOS攻击?",slug:"验证人怎样保护自己免于ddos攻击"}]},{title:"Delegator Guide (CLI)",frontmatter:{description:"",order:1,title:"Delegator Guide (CLI)"},regularPath:"/delegators/delegator-guide-cli.html",relativePath:"delegators/delegator-guide-cli.md",key:"v-b5fc8180",path:"/delegators/delegator-guide-cli.html",headers:[{level:2,title:"Table of Contents",slug:"table-of-contents"},{level:2,title:"Installing gaiad",slug:"installing-gaiad"},{level:2,title:"Cosmos Accounts",slug:"cosmos-accounts"},{level:3,title:"Restoring an Account from the Fundraiser",slug:"restoring-an-account-from-the-fundraiser"},{level:3,title:"Creating an Account",slug:"creating-an-account"},{level:2,title:"Accessing the Cosmos Hub Network",slug:"accessing-the-cosmos-hub-network"},{level:3,title:"Running Your Own Full-Node",slug:"running-your-own-full-node"},{level:3,title:"Connecting to a Remote Full-Node",slug:"connecting-to-a-remote-full-node"},{level:2,title:"Setting Up gaiad",slug:"setting-up-gaiad"},{level:2,title:"Querying the State",slug:"querying-the-state"},{level:2,title:"Sending Transactions",slug:"sending-transactions"},{level:3,title:"A Note on Gas and Fees",slug:"a-note-on-gas-and-fees"},{level:3,title:"Sending Tokens",slug:"sending-tokens"},{level:3,title:"Bonding Atoms and Withdrawing Rewards",slug:"bonding-atoms-and-withdrawing-rewards"},{level:2,title:"Participating in Governance",slug:"participating-in-governance"},{level:3,title:"Signing Transactions From an Offline Computer",slug:"signing-transactions-from-an-offline-computer"}]},{title:"State of Cosmos Governance 2021",frontmatter:{description:"",order:9},regularPath:"/governance/state-of-cosmos-governance-2021.html",relativePath:"governance/state-of-cosmos-governance-2021.md",key:"v-56618330",path:"/governance/state-of-cosmos-governance-2021.html",headers:[{level:2,title:"Cosmos View of Governance",slug:"cosmos-view-of-governance"},{level:3,title:"Emphasis on Self-governance and Sovereignty",slug:"emphasis-on-self-governance-and-sovereignty"},{level:3,title:"Flexibility through On-chain Parameters",slug:"flexibility-through-on-chain-parameters"},{level:3,title:"Development of Governance Processes Over Time",slug:"development-of-governance-processes-over-time"},{level:2,title:"On- and off-chain Governance Structure",slug:"on-and-off-chain-governance-structure"},{level:3,title:"Communication",slug:"communication"},{level:3,title:"Decision-making and Discussion Venues",slug:"decision-making-and-discussion-venues"},{level:3,title:"Roles and Stakeholders",slug:"roles-and-stakeholders"},{level:2,title:"Review of Governance processes",slug:"review-of-governance-processes"},{level:3,title:"Cosmos Hub on-chain governance",slug:"cosmos-hub-on-chain-governance"},{level:3,title:"User Story: Chain-Wide Governance",slug:"user-story-chain-wide-governance"},{level:3,title:"Process overview",slug:"process-overview"},{level:3,title:"Process owners",slug:"process-owners"},{level:3,title:"Process maturity",slug:"process-maturity"},{level:2,title:"Cosmos Improvement Proposals (CIPs)",slug:"cosmos-improvement-proposals-cips"},{level:3,title:"User Story: Governing Technical Direction",slug:"user-story-governing-technical-direction"},{level:3,title:"Process overview",slug:"process-overview-2"},{level:3,title:"Process owners",slug:"process-owners-2"},{level:3,title:"Process maturity",slug:"process-maturity-2"},{level:2,title:"Cosmos SDK Architecture Decision Records (ADR)",slug:"cosmos-sdk-architecture-decision-records-adr"},{level:3,title:"Process overview",slug:"process-overview-3"},{level:3,title:"Process owners",slug:"process-owners-3"},{level:3,title:"Process maturity",slug:"process-maturity-3"},{level:2,title:"Tendermint Request for Comments (RFC)",slug:"tendermint-request-for-comments-rfc"},{level:3,title:"Process overview",slug:"process-overview-4"},{level:3,title:"Process owners",slug:"process-owners-4"},{level:3,title:"Process maturity",slug:"process-maturity-4"},{level:2,title:"Interchain Standards (ICS)",slug:"interchain-standards-ics"},{level:3,title:"Process overview",slug:"process-overview-5"},{level:3,title:"Process owners",slug:"process-owners-5"},{level:3,title:"Process maturity",slug:"process-maturity-5"},{level:2,title:"Observations and Discussion",slug:"observations-and-discussion"},{level:3,title:"On-chain processes",slug:"on-chain-processes"},{level:3,title:"Off-chain processes",slug:"off-chain-processes"}]},{title:"Gaia Client",frontmatter:{description:"",order:5,title:"Interacting with Gaiad (CLI)"},regularPath:"/hub-tutorials/gaiad.html",relativePath:"hub-tutorials/gaiad.md",key:"v-f4d75640",path:"/hub-tutorials/gaiad.html",headers:[{level:2,title:"Gaia Daemon",slug:"gaia-daemon"},{level:3,title:"Setting up gaiad",slug:"setting-up-gaiad"},{level:3,title:"Keys",slug:"keys"},{level:3,title:"Tx Broadcasting",slug:"tx-broadcasting"},{level:3,title:"Fees & Gas",slug:"fees-gas"},{level:3,title:"Account",slug:"account"},{level:3,title:"Send Tokens",slug:"send-tokens"},{level:3,title:"Query Transactions",slug:"query-transactions"},{level:3,title:"Slashing",slug:"slashing"},{level:3,title:"Minting",slug:"minting"},{level:3,title:"Staking",slug:"staking"},{level:3,title:"Governance",slug:"governance"},{level:3,title:"Fee Distribution",slug:"fee-distribution"},{level:3,title:"Multisig Transactions",slug:"multisig-transactions"},{level:2,title:"Shells Completion Scripts",slug:"shells-completion-scripts"}]},{title:"Join the Cosmos Hub Mainnet",frontmatter:{description:"",order:2,title:"Joining Mainnet"},regularPath:"/hub-tutorials/join-mainnet.html",relativePath:"hub-tutorials/join-mainnet.md",key:"v-398eb7e6",path:"/hub-tutorials/join-mainnet.html",headers:[{level:3,title:"Overview",slug:"overview"},{level:3,title:"Background",slug:"background"},{level:2,title:"Explorers",slug:"explorers"},{level:2,title:"Getting Started",slug:"getting-started"},{level:2,title:"Hardware",slug:"hardware"},{level:2,title:"General Configuration",slug:"general-configuration"},{level:3,title:"Initialize Chain",slug:"initialize-chain"},{level:3,title:"Genesis File",slug:"genesis-file"},{level:3,title:"Seeds & Peers",slug:"seeds-peers"},{level:3,title:"Gas & Fees",slug:"gas-fees"},{level:3,title:"Pruning of State",slug:"pruning-of-state"},{level:3,title:"REST API",slug:"rest-api"},{level:3,title:"GRPC",slug:"grpc"},{level:2,title:"Sync Options",slug:"sync-options"},{level:3,title:"Blocksync",slug:"blocksync"},{level:3,title:"State Sync",slug:"state-sync"},{level:3,title:"Quicksync",slug:"quicksync"},{level:2,title:"Snapshots",slug:"snapshots"},{level:2,title:"Releases & Upgrades",slug:"releases-upgrades"},{level:2,title:"Cosmovisor",slug:"cosmovisor"},{level:2,title:"Running via Background Process",slug:"running-via-background-process"},{level:2,title:"Exporting State",slug:"exporting-state"},{level:2,title:"Verify Mainnet",slug:"verify-mainnet"}]},{title:"Gaia 클라이언트",frontmatter:{description:""},regularPath:"/ko/resources/gaiad.html",relativePath:"ko/resources/gaiad.md",key:"v-7e931cdc",path:"/ko/resources/gaiad.html",headers:[{level:2,title:"Gaia CLI",slug:"gaia-cli"},{level:3,title:"gaiad 설정하기",slug:"gaiad-설정하기"},{level:3,title:"키(Keys)",slug:"키-keys"},{level:3,title:"트랜잭션 전파",slug:"트랜잭션-전파"},{level:3,title:"수수료와 가스",slug:"수수료와-가스"},{level:3,title:"계정",slug:"계정"},{level:3,title:"토큰 전송하기",slug:"토큰-전송하기"},{level:3,title:"트랜잭션 조회하기",slug:"트랜잭션-조회하기"},{level:3,title:"슬래싱",slug:"슬래싱"},{level:3,title:"민팅",slug:"민팅"},{level:3,title:"스테이킹",slug:"스테이킹"},{level:3,title:"거버넌스",slug:"거버넌스"},{level:3,title:"스테이킹 리워드 분배",slug:"스테이킹-리워드-분배"},{level:3,title:"멀티시그 트랜잭션",slug:"멀티시그-트랜잭션"},{level:2,title:"Shell 완료 스크립트",slug:"shell-완료-스크립트"}]},{title:"Validator FAQ",frontmatter:{description:"",order:3,title:"Validator FAQ"},regularPath:"/validators/validator-faq.html",relativePath:"validators/validator-faq.md",key:"v-143a889c",path:"/validators/validator-faq.html",headers:[{level:2,title:"General Concepts",slug:"general-concepts"},{level:3,title:"What is a Cosmos validator?",slug:"what-is-a-cosmos-validator"},{level:3,title:"What is staking?",slug:"what-is-staking"},{level:3,title:"What is a full node?",slug:"what-is-a-full-node"},{level:3,title:"What is a delegator?",slug:"what-is-a-delegator"},{level:2,title:"Becoming a Validator",slug:"becoming-a-validator"},{level:3,title:"How to become a validator?",slug:"how-to-become-a-validator"},{level:2,title:"Testnet",slug:"testnet"},{level:3,title:"How can I join the testnet?",slug:"how-can-i-join-the-testnet"},{level:2,title:"Additional Concepts",slug:"additional-concepts"},{level:3,title:"What are the different types of keys?",slug:"what-are-the-different-types-of-keys"},{level:3,title:"What are the different states a validator can be in?",slug:"what-are-the-different-states-a-validator-can-be-in"},{level:3,title:"What is self-delegation? How can I increase my self-delegation?",slug:"what-is-self-delegation-how-can-i-increase-my-self-delegation"},{level:3,title:"What is validator bond? How can I increase my validator bond?",slug:"what-is-validator-bond-how-can-i-increase-my-validator-bond"},{level:3,title:"Is there a minimum amount of ATOM that must be delegated to be an active (bonded) validator?",slug:"is-there-a-minimum-amount-of-atom-that-must-be-delegated-to-be-an-active-bonded-validator"},{level:3,title:"How do delegators choose their validators?",slug:"how-do-delegators-choose-their-validators"},{level:2,title:"Responsibilities",slug:"responsibilities"},{level:3,title:"Do validators need to be publicly identified?",slug:"do-validators-need-to-be-publicly-identified"},{level:3,title:"What are the responsibilities of a validator?",slug:"what-are-the-responsibilities-of-a-validator"},{level:3,title:"What does 'participate in governance' entail?",slug:"what-does-participate-in-governance-entail"},{level:3,title:"What does staking imply?",slug:"what-does-staking-imply"},{level:3,title:"Can a validator run away with their delegators' ATOM?",slug:"can-a-validator-run-away-with-their-delegators-atom"},{level:3,title:"How often is a validator chosen to propose the next block? Does frequency increase with the quantity of bonded ATOM?",slug:"how-often-is-a-validator-chosen-to-propose-the-next-block-does-frequency-increase-with-the-quantity-of-bonded-atom"},{level:3,title:"Are validators of the Cosmos Hub required to validate other zones in the Cosmos ecosystem?",slug:"are-validators-of-the-cosmos-hub-required-to-validate-other-zones-in-the-cosmos-ecosystem"},{level:3,title:"How can a validator safely quit validating on the Cosmos Hub?",slug:"how-can-a-validator-safely-quit-validating-on-the-cosmos-hub"},{level:2,title:"Incentives",slug:"incentives"},{level:3,title:"What is the incentive to stake?",slug:"what-is-the-incentive-to-stake"},{level:3,title:"What is a validator commission?",slug:"what-is-a-validator-commission"},{level:3,title:"What is the incentive to run a validator?",slug:"what-is-the-incentive-to-run-a-validator"},{level:3,title:"How are block rewards distributed?",slug:"how-are-block-rewards-distributed"},{level:3,title:"How are fees distributed?",slug:"how-are-fees-distributed"},{level:3,title:"What are the slashing conditions?",slug:"what-are-the-slashing-conditions"},{level:3,title:"Are validators required to self-delegate ATOM?",slug:"are-validators-required-to-self-delegate-atom"},{level:3,title:"How to prevent concentration of stake in the hands of a few top validators?",slug:"how-to-prevent-concentration-of-stake-in-the-hands-of-a-few-top-validators"},{level:2,title:"Liquid Staking Module",slug:"liquid-staking-module"},{level:3,title:"What is the liquid staking module?",slug:"what-is-the-liquid-staking-module"},{level:3,title:"Who can validator bond?",slug:"who-can-validator-bond"},{level:3,title:"How can I validator bond?",slug:"how-can-i-validator-bond"},{level:3,title:"How does a delegator or validator mark their delegation as a validator bond?",slug:"how-does-a-delegator-or-validator-mark-their-delegation-as-a-validator-bond"},{level:3,title:"Are validator bonds subject to additional slashing conditions?",slug:"are-validator-bonds-subject-to-additional-slashing-conditions"},{level:3,title:"Can I unbond my validator bond?",slug:"can-i-unbond-my-validator-bond"},{level:3,title:"Can I validator bond some of my tokens and delegate the remaining portion normally?",slug:"can-i-validator-bond-some-of-my-tokens-and-delegate-the-remaining-portion-normally"},{level:2,title:"Technical Requirements",slug:"technical-requirements"},{level:3,title:"What are hardware requirements?",slug:"what-are-hardware-requirements"},{level:3,title:"What are software requirements?",slug:"what-are-software-requirements"},{level:3,title:"What are bandwidth requirements?",slug:"what-are-bandwidth-requirements"},{level:3,title:"How to handle key management?",slug:"how-to-handle-key-management"},{level:3,title:"What can validators expect in terms of operations?",slug:"what-can-validators-expect-in-terms-of-operations"},{level:3,title:"What are the maintenance requirements?",slug:"what-are-the-maintenance-requirements"},{level:3,title:"How can validators protect themselves from denial-of-service attacks?",slug:"how-can-validators-protect-themselves-from-denial-of-service-attacks"}]},{title:"Previous proposals",frontmatter:{description:""},regularPath:"/governance/proposals/previous-proposals/",relativePath:"governance/proposals/previous-proposals/README.md",key:"v-17b4aa2d",path:"/governance/proposals/previous-proposals/",headers:[{level:2,title:"1 Adjustment of blocksperyear to come aligned with actual block time",slug:"_1-adjustment-of-blocks-per-year-to-come-aligned-with-actual-block-time"},{level:2,title:"2 ATOM Transfer Enablement",slug:"_2-atom-transfer-enablement"},{level:2,title:"3 ATOM Transfer Enablement v2",slug:"_3-atom-transfer-enablement-v2"},{level:2,title:"4 Proposal for issuance of fungible tokens directly on the Cosmos Hub",slug:"_4-proposal-for-issuance-of-fungible-tokens-directly-on-the-cosmos-hub"},{level:2,title:"5 Expedited Cosmos Upgrade Proposal",slug:"_5-expedited-cosmos-upgrade-proposal"},{level:2,title:"6 Don't Burn Deposits for Rejected Governance Proposals Unless Vetoed",slug:"_6-don-t-burn-deposits-for-rejected-governance-proposals-unless-vetoed"},{level:2,title:"7 Activate the Community Pool",slug:"_7-activate-the-community-pool"},{level:2,title:"8 Notification for Security Critical Hard Fork at Block 482100",slug:"_8-notification-for-security-critical-hard-fork-at-block-482100"},{level:2,title:"10 Increase Max Validator Set Size to 125",slug:"_10-increase-max-validator-set-size-to-125"},{level:2,title:"12 Are Validators Charging 0% Commission Harmful to the Success of the Cosmos Hub?",slug:"_12-are-validators-charging-0-commission-harmful-to-the-success-of-the-cosmos-hub"},{level:2,title:"13 Cosmos Hub 3 Upgrade Proposal A",slug:"_13-cosmos-hub-3-upgrade-proposal-a"},{level:2,title:"14 Cosmos Hub 3 Upgrade Proposal B",slug:"_14-cosmos-hub-3-upgrade-proposal-b"},{level:2,title:"16 Cosmos Hub 3 Upgrade Proposal D",slug:"_16-cosmos-hub-3-upgrade-proposal-d"},{level:2,title:"19 Cosmos Hub 3 Upgrade Proposal E",slug:"_19-cosmos-hub-3-upgrade-proposal-e"},{level:2,title:"23 Cosmos Governance Working Group - Q1 2020",slug:"_23-cosmos-governance-working-group-q1-2020"},{level:2,title:"25 CosmWasm Integration 1 - Permissions and Upgrades",slug:"_25-cosmwasm-integration-1-permissions-and-upgrades"},{level:2,title:"26 Takeoff Proposal from Cyber to Cosmos",slug:"_26-takeoff-proposal-from-cyber-to-cosmos"},{level:2,title:"27 Stargate Upgrade Proposal 1",slug:"_27-stargate-upgrade-proposal-1"},{level:2,title:"29 Genesis fund recovery proposal on behalf of fundraiser participants unable to access their ATOMs",slug:"_29-genesis-fund-recovery-proposal-on-behalf-of-fundraiser-participants-unable-to-access-their-atoms"},{level:2,title:"31 Governance Split Votes",slug:"_31-governance-split-votes"},{level:2,title:"32 Funding for Development of Governance Split Votes",slug:"_32-funding-for-development-of-governance-split-votes"},{level:2,title:"34 Luna Mission - Funding $ATOM",slug:"_34-luna-mission-funding-atom"},{level:2,title:"35 Cosmos Stargate Hub Upgrade Proposal 2: Time to Upgrade.",slug:"_35-cosmos-stargate-hub-upgrade-proposal-2-time-to-upgrade"},{level:2,title:"36 Delay of Hub Stargate Upgrade for approximately 2 weeks",slug:"_36-delay-of-hub-stargate-upgrade-for-approximately-2-weeks"},{level:2,title:"37 Stargate Upgrade- Second time is a charm!",slug:"_37-stargate-upgrade-second-time-is-a-charm"}]},{title:"Contributing",frontmatter:{description:""},regularPath:"/guidelines/code-guidelines.html",relativePath:"guidelines/code-guidelines.md",key:"v-0ee0b71e",path:"/guidelines/code-guidelines.html",headers:[{level:2,title:"Maintainability",slug:"maintainability"},{level:2,title:"Run tests",slug:"run-tests"},{level:2,title:"Guidelines",slug:"guidelines"},{level:2,title:"Project organization",slug:"project-organization"},{level:2,title:"How to test this project locally",slug:"how-to-test-this-project-locally"},{level:3,title:"Unit Tests",slug:"unit-tests"},{level:3,title:"End-to-End Tests",slug:"end-to-end-tests"},{level:3,title:"Upgrade Test",slug:"upgrade-test"},{level:2,title:"Guidelines",slug:"guidelines-2"},{level:3,title:"Line Length",slug:"line-length"},{level:3,title:"Doc Comments",slug:"doc-comments"},{level:3,title:"Declaring Empty Slices",slug:"declaring-empty-slices"},{level:3,title:"Indent Error Flow",slug:"indent-error-flow"},{level:3,title:"Unnecessary Else",slug:"unnecessary-else"},{level:3,title:"Named Result Parameters",slug:"named-result-parameters"},{level:3,title:"Package Comments",slug:"package-comments"},{level:3,title:"Package Names",slug:"package-names"},{level:3,title:"Function Names",slug:"function-names"},{level:2,title:"Pointers",slug:"pointers"},{level:3,title:"Receiver Names",slug:"receiver-names"},{level:3,title:"Variable Names",slug:"variable-names"},{level:3,title:"Zero-value Mutexes",slug:"zero-value-mutexes"},{level:3,title:"Copy Slices and Maps at Boundaries",slug:"copy-slices-and-maps-at-boundaries"},{level:3,title:"Errors",slug:"errors"},{level:3,title:"Handle Type Assertion Failures",slug:"handle-type-assertion-failures"},{level:3,title:"Avoid Embedding Types in Public Structs",slug:"avoid-embedding-types-in-public-structs"},{level:3,title:"Avoid init()",slug:"avoid-init"},{level:2,title:"Performance",slug:"performance"},{level:3,title:"Function Grouping and Ordering",slug:"function-grouping-and-ordering"},{level:3,title:"Reduce Nesting",slug:"reduce-nesting"},{level:3,title:"Writing Tests",slug:"writing-tests"},{level:3,title:"Avoid writing directly in the stdout",slug:"avoid-writing-directly-in-the-stdout"},{level:3,title:"Avoid panic",slug:"avoid-panic"}]},{title:"위임자 가이드라인 (CLI)",frontmatter:{description:""},regularPath:"/ko/delegators/delegator-guide-cli.html",relativePath:"ko/delegators/delegator-guide-cli.md",key:"v-9a504180",path:"/ko/delegators/delegator-guide-cli.html",headers:[{level:2,title:"목차",slug:"목차"},{level:2,title:"gaiad 설치하기",slug:"gaiad-설치하기"},{level:2,title:"코스모스 계정",slug:"코스모스-계정"},{level:3,title:"펀드레이저 계정 복구하기",slug:"펀드레이저-계정-복구하기"},{level:3,title:"계정 생성하기",slug:"계정-생성하기"},{level:2,title:"코스모스 허브 네트워크 사용하기",slug:"코스모스-허브-네트워크-사용하기"},{level:3,title:"직접 풀노드 운영하기",slug:"직접-풀노드-운영하기"},{level:3,title:"원격 풀노드 연결하기",slug:"원격-풀노드-연결하기"},{level:2,title:"gaiad 설정하기",slug:"gaiad-설정하기"},{level:2,title:"블록체인 상태 조회하기",slug:"블록체인-상태-조회하기"},{level:2,title:"트랜잭션 전송하기",slug:"트랜잭션-전송하기"},{level:3,title:"가스와 수수료에 대해서",slug:"가스와-수수료에-대해서"},{level:3,title:"토큰 전송하기",slug:"토큰-전송하기"},{level:3,title:"아톰 위임하기 / 리워드 수령하기",slug:"아톰-위임하기-리워드-수령하기"},{level:2,title:"거버넌스 참가하기",slug:"거버넌스-참가하기"},{level:3,title:"거버넌스에 대해서",slug:"거버넌스에-대해서"},{level:3,title:"거버넌스 참여하기",slug:"거버넌스-참여하기"},{level:2,title:"오프라인 컴퓨터에서 트랜잭션 서명하기",slug:"오프라인-컴퓨터에서-트랜잭션-서명하기"}]},{title:"검증인 FAQ",frontmatter:{description:""},regularPath:"/ko/validators/validator-faq.html",relativePath:"ko/validators/validator-faq.md",key:"v-7cf7c3e0",path:"/ko/validators/validator-faq.html",headers:[{level:2,title:"기본 개념",slug:"기본-개념"},{level:3,title:"검증인이란 무엇인가?",slug:"검증인이란-무엇인가"},{level:3,title:"'스테이킹'은 무엇인가?",slug:"스테이킹-은-무엇인가"},{level:3,title:"풀노드는 무엇인가?",slug:"풀노드는-무엇인가"},{level:3,title:"위임인은 무엇인가?",slug:"위임인은-무엇인가"},{level:2,title:"검증인 되기",slug:"검증인-되기"},{level:3,title:"어떻게 검증인이 되는가?",slug:"어떻게-검증인이-되는가"},{level:2,title:"테스트넷",slug:"테스트넷"},{level:3,title:"어떻게 테스트넷에 참여할 수 있나요?",slug:"어떻게-테스트넷에-참여할-수-있나요"},{level:3,title:"어떤 종류들의 '키'가 있나요?",slug:"어떤-종류들의-키-가-있나요"},{level:3,title:"밸리데이터들의 '상태(state)'에는 어떤 것들이 있나요?",slug:"밸리데이터들의-상태-state-에는-어떤-것들이-있나요"},{level:3,title:"셀프본딩은 무엇이며 어떻게 셀프본딩을 늘릴 수 있나요?",slug:"셀프본딩은-무엇이며-어떻게-셀프본딩을-늘릴-수-있나요"},{level:3,title:"테스트넷 토큰은 어떻게 받을 수 있나요?",slug:"테스트넷-토큰은-어떻게-받을-수-있나요"},{level:3,title:"활성화된 검증인이 되기 위해서 최소 필요한 아톰 수량이 있나요?",slug:"활성화된-검증인이-되기-위해서-최소-필요한-아톰-수량이-있나요"},{level:3,title:"위임인들은 어떻게 검증인들을 선택하나요?",slug:"위임인들은-어떻게-검증인들을-선택하나요"},{level:2,title:"검증인들의 책임",slug:"검증인들의-책임"},{level:3,title:"검증인을 하기 위해서는 신원을 밝혀야 하나요?",slug:"검증인을-하기-위해서는-신원을-밝혀야-하나요"},{level:3,title:"검증인들이 되기 위해서는 어떤 책임이 있나요?",slug:"검증인들이-되기-위해서는-어떤-책임이-있나요"},{level:3,title:"'거버넌스에 참여'한다는 것은 무슨 뜻인가요?",slug:"거버넌스에-참여-한다는-것은-무슨-뜻인가요"},{level:3,title:"스테이킹은 어떤 의미를 가지나요?",slug:"스테이킹은-어떤-의미를-가지나요"},{level:3,title:"검증인은 위임인들의 위임된 아톰을 탈취할 수 있나요?",slug:"검증인은-위임인들의-위임된-아톰을-탈취할-수-있나요"},{level:3,title:"검증인들은 얼마나 자주 블록 생성 제안을 할 수 있는건가요? 확률은 스테이킹된 아톰에 비례해서 올라가나요?",slug:"검증인들은-얼마나-자주-블록-생성-제안을-할-수-있는건가요-확률은-스테이킹된-아톰에-비례해서-올라가나요"},{level:3,title:"코스모스 허브의 검증인은 코스모스 생태계 내 다른 존을 검증해야될 수도 있나요?",slug:"코스모스-허브의-검증인은-코스모스-생태계-내-다른-존을-검증해야될-수도-있나요"},{level:2,title:"인센티브",slug:"인센티브"},{level:3,title:"스테이킹을 할 인센티브는 무엇이 있나요?",slug:"스테이킹을-할-인센티브는-무엇이-있나요"},{level:3,title:"검증인을 운영할 인센티브는 무엇이 있나요?",slug:"검증인을-운영할-인센티브는-무엇이-있나요"},{level:3,title:"검증인 커미션은 무엇인가요?",slug:"검증인-커미션은-무엇인가요"},{level:3,title:"블록 생성 보상은 어떻게 나누어지나요?",slug:"블록-생성-보상은-어떻게-나누어지나요"},{level:3,title:"수수료는 어떻게 나누어지나요?",slug:"수수료는-어떻게-나누어지나요"},{level:3,title:"슬래싱 페널티를 발생하는 경우는 무엇이 있나요?",slug:"슬래싱-페널티를-발생하는-경우는-무엇이-있나요"},{level:3,title:"검증인은 꼭 자체 위임(셀프본딩)을 해야하나요?",slug:"검증인은-꼭-자체-위임-셀프본딩-을-해야하나요"},{level:3,title:"상위 검증인에게 스테이킹이 몰리는 현상은 어떻게 막을 수 있나요?",slug:"상위-검증인에게-스테이킹이-몰리는-현상은-어떻게-막을-수-있나요"},{level:2,title:"기술적 요건",slug:"기술적-요건"},{level:3,title:"필요한 하드웨어 장비는 무엇인가요?",slug:"필요한-하드웨어-장비는-무엇인가요"},{level:3,title:"필요한 소프트웨어는 무엇인가요?",slug:"필요한-소프트웨어는-무엇인가요"},{level:3,title:"필요한 대역폭은 어느 정도 인가요?",slug:"필요한-대역폭은-어느-정도-인가요"},{level:3,title:"검증인을 하는 것은 운영 측면에서 어떤가요?",slug:"검증인을-하는-것은-운영-측면에서-어떤가요"},{level:3,title:"키 관리는 어떻게 하는 것이 바람직한가요?",slug:"키-관리는-어떻게-하는-것이-바람직한가요"},{level:3,title:"운영 측면에서 어떤 요소들이 있나요?",slug:"운영-측면에서-어떤-요소들이-있나요"},{level:3,title:"보수 측면에서 어떤 것들이 요구되나요?",slug:"보수-측면에서-어떤-것들이-요구되나요"},{level:3,title:"검증인은 어떻게 DDoS 공격에 방어를 할 수 있을까요?",slug:"검증인은-어떻게-ddos-공격에-방어를-할-수-있을까요"}]}],themeConfig:{docsRepo:"cosmos/gaia",docsBranch:"main",docsDir:"docs",editLinks:!0,label:"hub",currentParameters:{auth:{MaxMemoCharacters:"512",SigVerifyCostED25519:"590",SigVerifyCostSecp256k1:"1000",TxSigLimit:"7",TxSizeCostPerByte:"10"},bank:{DefaultSendEnabled:!0,SendEnabled:[]},baseapp:{BlockParams:{max_bytes:"200000",max_gas:"40000000"},EvidenceParams:{max_age_duration:"172800000000000",max_age_num_blocks:"1000000",max_bytes:"50000"},ValidatorParams:{pub_key_types:["ed25519"]}},crisis:{ConstantFee:{amount:"1333000000",denom:"uatom"}},distribution:{baseproposerreward:"0.010000000000000000",bonusproposerreward:"0.040000000000000000",communitytax:"0.020000000000000000",withdrawaddrenabled:!0},gov:{depositparams:{max_deposit_period:"1209600000000000",min_deposit:[{amount:"64000000",denom:"uatom"}]},tallyparams:{quorum:"0.400000000000000000",threshold:"0.500000000000000000",veto_threshold:"0.334000000000000000"},votingparams:{voting_period:"1209600000000000"}},liquidity:{CircuitBreakerEnabled:!1,InitPoolCoinMintAmount:"1000000",MaxOrderAmountRatio:"0.100000000000000000",MaxReserveCoinAmount:"0",MinInitDepositAmount:"1000000",PoolCreationFee:[{amount:"40000000",denom:"uatom"}],PoolTypes:[{description:"Standard liquidity pool with pool price function X/Y, ESPM constraint, and two kinds of reserve coins",id:1,max_reserve_coin_num:2,min_reserve_coin_num:2,name:"StandardLiquidityPool"}],SwapFeeRate:"0.003000000000000000",UnitBatchHeight:1,WithdrawFeeRate:"0.000000000000000000"},mint:{BlocksPerYear:"4360000",GoalBonded:"0.670000000000000000",InflationMax:"0.200000000000000000",InflationMin:"0.070000000000000000",InflationRateChange:"1.000000000000000000",MintDenom:"uatom"},slashing:{DowntimeJailDuration:"600000000000",MinSignedPerWindow:"0.050000000000000000",SignedBlocksWindow:"10000",SlashFractionDoubleSign:"0.050000000000000000",SlashFractionDowntime:"0.000100000000000000"},staking:{BondDenom:"uatom",HistoricalEntries:1e4,MaxEntries:7,MaxValidators:125,UnbondingTime:"1814400000000000"},transfer:{ReceiveEnabled:!0,SendEnabled:!0}},topbar:{banner:!1},sidebar:{nav:[{title:"Resources",children:[{title:"Tutorials",path:"https://tutorials.cosmos.network"},{title:"SDK API Reference",path:"https://godoc.org/github.com/cosmos/cosmos-sdk"},{title:"REST API Spec",path:"https://cosmos.network/rpc/"},{title:"REST API Spec ABC",path:"https://cosmos.network/rpc/"}]}]},gutter:{editLink:!0},footer:{question:{text:"Chat with Cosmos developers in Discord or reach out on the SDK Developer Forum to learn more."},logo:"/logo-bw.svg",textLink:{text:"cosmos.network",url:"https://cosmos.network"},services:[{service:"medium",url:"https://blog.cosmos.network/"},{service:"twitter",url:"https://twitter.com/cosmos"},{service:"github",url:"https://github.com/cosmos/gaia"},{service:"reddit",url:"https://reddit.com/r/cosmosnetwork"},{service:"telegram",url:"https://t.me/cosmosproject"},{service:"youtube",url:"https://www.youtube.com/c/CosmosProject"}],smallprint:"This website is maintained by Interchain Foundation/Informal Systems. The contents and opinions of this website are those of Interchain Foundation/Informal Systems.",links:[{title:"Documentation",children:[]},{title:"Community",children:[{title:"Cosmos blog",url:"https://blog.cosmos.network/"},{title:"Forum",url:"https://forum.cosmos.network/"}]},{title:"Contributing",children:[{title:"Contributing to the docs",url:"https://github.com/cosmos/gaia/blob/main/docs/DOCS_README.md"},{title:"Source code on GitHub",url:"https://github.com/cosmos/gaia/"}]}]}},locales:{"/":{selectText:"Languages",label:"English",lang:"en-US",path:"/"},"/es/":{selectText:"Idiomas",label:"español",lang:"es",path:"/es/"},"/ko/":{selectText:"언어 선택",label:"한국어",lang:"ko",path:"/ko/"},"/zh/":{selectText:"选择语言",label:"中文(简体)",lang:"zh-CN",path:"/zh/"}}};var ts=n(21),ns=n(14),rs=n.n(ns);n(392);jo.component("home",()=>n.e(27).then(n.bind(null,457))),jo.component("CardBanner",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,481))),jo.component("Homepage",()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,480))),jo.component("IconArrow",()=>n.e(29).then(n.bind(null,479))),jo.component("IconCircleCross",()=>n.e(30).then(n.bind(null,478))),jo.component("IconSearch",()=>n.e(31).then(n.bind(null,477))),jo.component("IconSpaceship",()=>n.e(32).then(n.bind(null,476))),jo.component("IconWindow",()=>n.e(33).then(n.bind(null,475))),jo.component("ImageLetter",()=>n.e(34).then(n.bind(null,474))),jo.component("LayoutDefault",()=>Promise.all([n.e(0),n.e(7)]).then(n.bind(null,456))),jo.component("LogoCore",()=>n.e(35).then(n.bind(null,472))),jo.component("LogoCoreText",()=>n.e(36).then(n.bind(null,471))),jo.component("LogoHubText",()=>n.e(38).then(n.bind(null,639))),jo.component("LogoHub",()=>n.e(37).then(n.bind(null,626))),jo.component("LogoSdk",()=>n.e(39).then(n.bind(null,624))),jo.component("LogoSdkText",()=>n.e(40).then(n.bind(null,623))),jo.component("SectionSearch",()=>Promise.all([n.e(0),n.e(8)]).then(n.bind(null,455))),jo.component("TmAside",()=>Promise.all([n.e(0),n.e(9)]).then(n.bind(null,454))),jo.component("TmBreadcrumbs",()=>Promise.all([n.e(0),n.e(10)]).then(n.bind(null,453))),jo.component("TmCodeBlock",()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,452))),jo.component("TmContentCards",()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,451))),jo.component("TmFooter",()=>Promise.all([n.e(0),n.e(12)]).then(n.bind(null,450))),jo.component("TmFooterLinks",()=>Promise.all([n.e(0),n.e(13)]).then(n.bind(null,459))),jo.component("TmHelpSupport",()=>Promise.all([n.e(0),n.e(14)]).then(n.bind(null,449))),jo.component("TmIconBasics",()=>n.e(41).then(n.bind(null,612))),jo.component("TmIconCore",()=>n.e(42).then(n.bind(null,543))),jo.component("TmIconDash",()=>n.e(43).then(n.bind(null,482))),jo.component("TmIconEdit",()=>Promise.all([n.e(0),n.e(15)]).then(n.bind(null,473))),jo.component("TmIconHex",()=>n.e(44).then(n.bind(null,622))),jo.component("TmIconInterfaces",()=>n.e(45).then(n.bind(null,619))),jo.component("TmIconIntroduction",()=>n.e(46).then(n.bind(null,618))),jo.component("TmIconMenu",()=>n.e(47).then(n.bind(null,617))),jo.component("TmIconModules",()=>n.e(48).then(n.bind(null,616))),jo.component("TmIconOutbound",()=>n.e(49).then(n.bind(null,615))),jo.component("TmIconPaperPen",()=>n.e(50).then(n.bind(null,458))),jo.component("TmIconSpecifications",()=>n.e(51).then(n.bind(null,613))),jo.component("TmLogoChat",()=>n.e(52).then(n.bind(null,627))),jo.component("TmLogoCore",()=>n.e(53).then(n.bind(null,469))),jo.component("TmLogoCosmos",()=>n.e(54).then(n.bind(null,625))),jo.component("TmLogoHub",()=>n.e(55).then(n.bind(null,468))),jo.component("TmLogoIbc",()=>n.e(56).then(n.bind(null,467))),jo.component("TmLogoSdk",()=>n.e(57).then(n.bind(null,466))),jo.component("TmLogoTendermint",()=>n.e(58).then(n.bind(null,621))),jo.component("TmNewsletterForm",()=>Promise.all([n.e(0),n.e(16)]).then(n.bind(null,620))),jo.component("TmSearch",()=>Promise.all([n.e(0),n.e(17)]).then(n.bind(null,465))),jo.component("TmSelectLanguage",()=>Promise.all([n.e(0),n.e(18)]).then(n.bind(null,464))),jo.component("TmSelectVersion",()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,463))),jo.component("TmSidebar",()=>Promise.all([n.e(0),n.e(20)]).then(n.bind(null,462))),jo.component("TmSidebarContent",()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,461))),jo.component("TmSidebarTree",()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,460))),jo.component("TmTocMenu",()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,448))),jo.component("TmTopBanner",()=>Promise.all([n.e(0),n.e(24)]).then(n.bind(null,470))),jo.component("TmTopBar",()=>Promise.all([n.e(0),n.e(25)]).then(n.bind(null,611)));var os=n(149),is=n.n(os),as=[({Vue:e})=>{e.component("df",ts.c),e.mixin({methods:{md:e=>`
${new rs.a({html:!0,linkify:!0}).renderInline(e)}
`}}),n(391)},{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},({router:e})=>{var t,n,r,o,i,a;"undefined"!=typeof window&&(t=window,n=document,r="script",o="ga",t.GoogleAnalyticsObject=o,t.ga=t.ga||function(){(t.ga.q=t.ga.q||[]).push(arguments)},t.ga.l=1*new Date,i=n.createElement(r),a=n.getElementsByTagName(r)[0],i.async=1,i.src="https://www.google-analytics.com/analytics.js",a.parentNode.insertBefore(i,a),ga("create","UA-51029217-2","auto"),ga("set","anonymizeIp",!0),e.afterEach((function(t){ga("set","page",e.app.$withBase(t.fullPath)),ga("send","pageview")})))},({Vue:e})=>e.use(is.a)],ss=[];class ls extends class{constructor(){this.store=new jo({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){jo.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(ls.prototype,{getPageAsyncComponent:qa,getLayoutAsyncComponent:$a,getAsyncComponent:za,getVueComponent:Ba});var us={install(e){const t=new ls;e.$vuepress=t,e.prototype.$vuepress=t}};function cs(e,t){const n=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var ps={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;var n,r;return n="pageKey",r=t,"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[n]=r),jo.component(t)||jo.component(t,qa(t)),jo.component(t)?e(t):e("")}},ds={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:n})=>e("div",{class:["content__"+t.slotKey]},n()[t.slotKey])},hs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},fs=(n(393),n(394),n(1)),vs=Object(fs.a)(hs,(function(){var e=this.$createElement,t=this._self._c||e;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[t("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),t("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports,gs={functional:!0,render(e,{parent:t,children:n}){if(t._isMounted)return n;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};jo.config.productionTip=!1,jo.use(wa),jo.use(us),jo.mixin(function(e,t,n=jo){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),n.$vuepress.$set("siteData",t);const r=new(e(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((e,t)=>(t.startsWith("$")&&(e[t]=o[t].get),e),i),{computed:i}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,n;for(const r in e)"/"===r?n=e[r]:0===this.$page.path.indexOf(r)&&(t=e[r]);return t||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const n=this.$siteTitle,r=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let n=0;nn||(e.hash?!jo.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,n,r)=>{if(cs(e,t.path))r();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const n=t.path.replace(/\/$/,"")+".html";cs(e,n)?r(n):r()}else r();else{const n=t.path+"/",o=t.path+".html";cs(e,o)?r(o):cs(e,n)?r(n):r()}})}(n);const r={};try{await Promise.all(as.filter(e=>"function"==typeof e).map(t=>t({Vue:jo,options:r,router:n,siteData:es,isServer:e})))}catch(e){console.error(e)}return{app:new jo(Object.assign(r,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},ss.map(t=>e(t)))])})),router:n}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})}]); \ No newline at end of file diff --git a/main/delegators/delegator-faq.html b/main/delegators/delegator-faq.html index 96ea1ac69b1..0d4f94ec8b1 100644 --- a/main/delegators/delegator-faq.html +++ b/main/delegators/delegator-faq.html @@ -8,7 +8,7 @@ - + @@ -16,6 +16,6 @@ Copy gaiad tx staking disable-tokenize-shares --from mykey

When tokenization is disabled, a lock is placed on the account, effectively preventing the tokenization of any delegations. Re-enabling tokenization would initiate the removal of the lock, but the process is not immediate. The lock removal is queued, with the lock itself persisting throughout the unbonding period. Following the completion of the unbonding period, the lock would be completely removed, restoring the account's ablility to tokenize. For liquid staking protocols that enable the lock, this delay better positions the base layer to coordinate a recovery in the event of an exploit.

# Risks

Staking Atoms is not free of risk. First, staked Atoms are locked up, and retrieving them requires a 3 week waiting period called unbonding period. Additionally, if a validator misbehaves, a portion of their total stake can be slashed (i.e. destroyed). This includes the stake of their delegators.

There is one main slashing condition:

  • Double signing: If someone reports on that a validator signed two different blocks with the same chain ID at the same height, this validator will get slashed.

This is why Atom holders should perform careful due diligence on validators before delegating. It is also important that delegators actively monitor the activity of their validators. If a validator behaves suspiciously or is too often offline, delegators can choose to unbond from them or switch to another validator. **Delegators can also mitigate risk by distributing their stake across multiple validators.**s

- + diff --git a/main/delegators/delegator-guide-cli.html b/main/delegators/delegator-guide-cli.html index cd7c973e559..4c735c44bc9 100644 --- a/main/delegators/delegator-guide-cli.html +++ b/main/delegators/delegator-guide-cli.html @@ -8,7 +8,7 @@ - + @@ -216,6 +216,6 @@ Copy gaiad tx broadcast signedTx.json
- + diff --git a/main/delegators/delegator-security.html b/main/delegators/delegator-security.html index d09c5c576e9..87403d55309 100644 --- a/main/delegators/delegator-security.html +++ b/main/delegators/delegator-security.html @@ -8,11 +8,11 @@ - +

# Delegator Security

The launch of any public blockchain is an incredibly exciting time, and it's definitely one that malicious actors may try to take advantage of for their own personal gain. Owning and having access to cryptocurrency can make you a valuable target for an attacker, but there are many things you can do to improve your personal security and reduce or eliminate security risks.

# Social Engineering

Social engineering (opens new window) has existed for about as long as human beings have been on the planet, and in the technical era, it usually takes in the form of phishing (opens new window) or spearphishing (opens new window) . Both of these attacks are wildly successful forms of trickery that are responsible for over 95% of account security breaches, and they don't just happen via email: these days, opportunistic and targeted phishing attempts take place anywhere that you have an inbox (opens new window) . It doesn't matter if you're using Signal, Telegram, SMS, Twitter, or just checking your DMs on forums or social networks, attackers have a plethora of opportunities (opens new window) to gain foothold in your digital life in effort to separate you from valuable information and assets that you most definitely don't want to lose. If a deal pops up that sounds too good to be true (opens new window) , or a message shows up asking for information that should never, ever be shared with someone else, you can always verify it before engaging with it by navigating to our official website or an official Cosmos communication channel on your own.

  • Be skeptical of unexpected attachments, or emails that ask you to visit a suspicious or unfamiliar website in the context of blockchains or cryptocurrency. An attacker may attempt to lure you to a compromised site (opens new window) designed to steal sensitive information from your computer. If you're a Gmail user, test your resilience against the latest email-based phishing tactics here (opens new window) .

  • Do your due diligence before purchasing ATOM. Neither the Tendermint team nor the Interchain Foundation will be selling ATOM at launch, so if you see social media posts or emails advertising a token sale from us, they're not real and should be dismissed immediately. If you're on the hunt for ATOM, make sure that you've researched the seller or exchange to confirm that the tokens are coming from a trustworthy source.

  • No one from Cosmos, the Tendermint team or the Interchain Foundation will ever send an email that asks for you to share any kind of account credentials or your 12 words with us, and we will always use our official Twitter, Medium, and Github accounts to communicate important news directly to the Cosmos community.

If you receive an email or tweet that sounds too good to be true, is likely to be a scam.

# Key Management

The best way to minimize the risk of theft or loss of ATOM is to have a strong storage and backup strategy for your private keys. The safest way to store your keys is offline, either in a cryptocurrency wallet or on a device that you never connect to the internet. The best backup strategy for your k yes is to ensure that you have multiple copies of them stored in safe places, and to take specific measures to protect at least one copy of your keys from any kind of natural disaster that is a likely possibility in your part of the world.

To protect your ATOM, do not share your 12 words with anyone. The only person who should ever need to know them is you. You do not need to share your private keys if you're delegating ATOM to a validator on the network or to use custodial services. If anyone asks for your key material,

# Software Vulnerabilities

To protect yourself and ensure you're using the safest code is to use the latest version of software available, and to update immediately (or as soon as you can) after a security advisory is released. This is important for your laptops, mobile devices, cryptocurrency wallets, and anything else that may be linked to your identity or your cryptocurrency.

To protect your ATOM, you should only download software directly from official sources, and make sure that you're always using the latest, most secure version of gaiad when you're doing anything that involves your 12 words. The latest versions of Tendermint, the Cosmos-SDK, and gaiad will always be available from our official Github repositories.

No one from Cosmos, the Tendermint team or the Interchain Foundation will ever send an email that asks for you to download a software attachment after sending out a security advisory or making a patch available.

# Verifying Transactions

Be skeptical of technical advice, especially advice that comes from people you do not know in forums and on group chat channels. Familiarize yourself with important commands, especially those that will help you carry out high-risk actions, and consult our official documentation to make sure that you're not being tricked into doing something that will harm you or your validator.

When sending transactions or doing anything that may spend coins, you should always verify those transactions before hitting send. While address strings are long, it is important to visually comparing them in blocks of 4 characters at a time to ensure that you are sending them to the right place rather than into oblivion.

# Account Security

One of the most important things you can do to protect your cryptocurrency and eliminate risk is to harden all of your critical online accounts. Attackers will try to gain foothold wherever they can, and will use that foothold to pivot from one place to another. Unprotected accounts like email, social media, your Github account, the Cosmos Forum and anything in between could give an attacker an opportunities to gain foothold in your online life.

For people who hold cryptocurrency, there are two specific account security actions that can be taken to eliminate specific risks that come with being part of the blockchain world.

  • First, it is important to enable 2-factor authentication everywhere you can, and to make sure that you are using a code generator or U2F hardware key (opens new window) as a second factor.

  • Second, be mindful of account recovery methods used to regain access to your most important accounts and make sure that you do not use SMS as a recovery method. If you haven't done so yet, start using an authenticator app or a hardware key immediately for your personal email account and wherever else you manage your tokens, especially if you use online exchanges.

# Supply Chain Attacks

Whether you're buying a hardware or a hardware wallet, it is important to purchase whatever you need directly from the supplier or from a trusted source. This is the only way to completely eliminate the risk of a compromised device or chip from stealing your private keys, especially since there are reports of compromised wallets being sold on Amazon and through other popular online marketplaces.

# Disclaimer

Please note that this is highly experimental software. In these early days, we can expect to have issues, updates, and bugs. The existing tools require advanced technical skills and involve risks which are outside of the control of the Interchain Foundation and/or the Tendermint team (see also the risk section in the Interchain Cosmos Contribution Terms). Any use of this open source Apache 2.0 licensed software is done at your own risk and on a "AS IS" basis, without warranties or conditions of any kind, and any and all liability of the Interchain Foundation and/or the Tendermint team for damages arising in connection to the software is excluded. Please exercise extreme caution!`

- + diff --git a/main/delegators/index.html b/main/delegators/index.html index 85ac6a852a8..903b76eabe6 100644 --- a/main/delegators/index.html +++ b/main/delegators/index.html @@ -8,11 +8,11 @@ - +

# Delegators

This folder contains documentation relevant to delegators of the Cosmos Hub and other gaia blockchains.

- + diff --git a/main/es/gaia-tutorials/installation.html b/main/es/gaia-tutorials/installation.html index 2aa8a26fe2a..76b0fcc7b10 100644 --- a/main/es/gaia-tutorials/installation.html +++ b/main/es/gaia-tutorials/installation.html @@ -8,7 +8,7 @@ - + @@ -48,6 +48,6 @@ build_tags: netgo,ledger go: go version go1.12.5 darwin/amd64

# Tags para la construcción

Las etiquetas (tags) para la construcción indican opciones especiales que deben ser activadas en el binario.

Etiquetas Construcción Descripción
netgo La resolución del nombre usará código puro de Go
ledger Añade compatibilidad de dispositivos hardware (wallets físicas)

# Instalación de los binarios via snap (Linux solamente)

No use snap en este momento para instalar los binarios para producción hasta que tengamos un sistema binario reproducible.

# Workflow para el desarrollador

Para probar cualquier cambio hecho en el SDK o CometBFT, se debe agregar una cláusula de replace en go.mod proporcionando la ruta de entrada correcta.

  • Realice los cambios apropiados
  • Añada replace github.com/cosmos/cosmos-sdk => /ruta/a/clon/cosmos-sdk en go.mod
  • Ejecute make clean install o make clean build
  • Compruebe sus cambios

# Siguiente

Ahora puede unirse a la red principal, testnet o crear su propia testnet pública

- + diff --git a/main/es/gaia-tutorials/join-mainnet.html b/main/es/gaia-tutorials/join-mainnet.html index a77ee27b53e..7ce9bd1a0ee 100644 --- a/main/es/gaia-tutorials/join-mainnet.html +++ b/main/es/gaia-tutorials/join-mainnet.html @@ -8,7 +8,7 @@ - + @@ -79,6 +79,6 @@ gaiad tx crisis invariant-broken staking supply

Cuando se presenta una transacción inválida, no se deducen los tokens de honorarios de la transacción ya que la cadena de bloques se detendrá (también conocido como transacción gratuita).

# Actualice a un nodo validador

Ahora tienes un nodo completo activo. ¿Cuál es el siguiente paso? Puedes actualizar tu nodo completo para convertirte en un Validador del Cosmos. Los 120 mejores validadores tienen la capacidad de proponer nuevos bloques en el Hub de Cosmos. Continúe en la Configuración del Validador

- + diff --git a/main/es/gaia-tutorials/what-is-gaia.html b/main/es/gaia-tutorials/what-is-gaia.html index a2cd4fec84d..a0558e985e5 100644 --- a/main/es/gaia-tutorials/what-is-gaia.html +++ b/main/es/gaia-tutorials/what-is-gaia.html @@ -8,11 +8,11 @@ - +

# ¿Qué es Gaia?

gaia es el nombre de la aplicación de Cosmos SDK para el Hub de Cosmos. Viene con 2 opciones principales de entrada:

  • gaiad: El demonio de Gaia, ejecuta un full-node con la aplicacion gaia.
  • gaiad: Interface de línea de comandos de Gaia, la cual activa la interacción con en full-node de Gaia.

gaia es construida con el SDK de Cosmos usando los siguientes módulos:

  • x/auth: Cuentas y firmas.
  • x/bank: Transferencia de tokens.
  • x/staking: Lógica para el staking.
  • x/mint: Lógica para la inflacción.
  • x/distribution: Lógica para la distribución del FEE.
  • x/slashing: Lógica para la penalización.
  • x/gov: Lógica para la gobernanza.
  • ibc-go/modules: Transferencia entre blockchains.
  • x/params: Controla los parámetros del nivel de la aplicación.
  • x/capability:
  • x/crisis:
  • x/evidence:
  • x/genaccounts:
  • x/mint:
  • x/simulation:
  • x/upgrade:

Acerca del Hub de Cosmos: El Hub de Cosmos es el primer Hub en ser lanzado en la red de Cosmos. El propósito del Hub es facilitar las transferencias entre cadenas de bloques. Si una cadena de bloques se conecta a un Hub a través de IBC, automáticamente obtiene acceso a todas las otras cadenas de bloques que están conectadas a ella. El Hub del Cosmos es una cadena de participación pública. Su token de participación es llamado Atom.

Siguiente, aprenda como instalar Gaia

- + diff --git a/main/es/governance/community-pool-spend/index.html b/main/es/governance/community-pool-spend/index.html index cbfcd696d98..337f796c717 100644 --- a/main/es/governance/community-pool-spend/index.html +++ b/main/es/governance/community-pool-spend/index.html @@ -8,11 +8,11 @@ - +

# Cosmos Hub 3 y la Community Pool

La iniciativa Cosmos Hub 3 fue lanzada por parte de la comunidad el 11 de Diciembre de 2019, liberando así la posibilidad de que las personas con tokens puedan votar la aprobación de gastos desde la Community Pool.Esta documentación es un desarrollo en curso, por favor, de momento no te bases en esta información Puedes debatir este desarrollo aquí (opens new window).

# ¿Por qué crear una propuesta para utilizar fondos de la Community Pool?

Hay otras opciones de financiación, principalmente el programa de concesión de la Interchain Foundation. ¿Por qué crear una propuesta para gastos?

Como estrategia: puedes hacer ambas. Puedes enviar tu propuesta a la Interchain Foundation, pero también tienes la posibilidad sobre la cadena de forma pública. Si el Hub vota a favor, puedes retirar tu solicitud a la Interchain Foundation.

Como estrategia: la financiación es rápida. Aparte del tiempo que necesitas para enviar tu propuesta a la cadena, el único factor limitante es un periodo de votación fijo de 14 días. Tan pronto como la propuesta se apruebe, la cantidad total solicitada en tu propuesta será abonada en tu cuenta.

Para crear buenas relaciones. Involucrarse públicamente con la comunidad es la oportunidad para establecer relaciones con otras personas interesadas y mostrarles la importancia de tu trabajo. Podrían surgir colaboraciones inesperadas y la comunidad al completo podría valorar más tu trabajo si están involucrados como stakeholders.

Para ser más independiente. La Interchain Foundation (ICF) puede no ser capaz de financiar trabajo siempre. Tener una fuente de financiación más constante y con un canal directo a los stakeholders, significa que puedes usar tus buenas relaciones para tener la confianza de ser capaz de encontrar financiación segura sin depender únicamente de la ICF.

# Creación de una propuesta de gastos a la comunidad

Crear y enviar una propuesta es un proceso que lleva tiempo, atención y conlleva riesgo. El objetivo de esta documentación es hacer este proceso más fácil, preparando a los participantes para aquello en lo que deben prestar atención, la información que debe ser incluida en la propuesta, y cómo reducir el riesgo de perder depósitos. Idealmente, una propuesta que no sigue adelante debería ser solamente porque los votantes 1) son conscientes y están involucrados y 2) son capaces de tomar una decisión e informarla votando en la propuesta.

Si estás considerando realizar una propuesta, deberías conocer:

  1. Sobre la Community Pool
  2. Cómo funciona el mecanismo de voto y gobernanza
  3. Dónde y cómo involucrar a la comunidad de Cosmos acerca de tu idea
  4. Lo que la comunidad querrá saber sobre tu propuesta
  5. Cómo preparar tu borrador de propuesta final para ser enviada
  6. Cómo enviar tu propuesta al Cosmos Hub testnet & mainnet

# Sobre la Community Pool

# ¿Cómo está financiada la Community Pool?

El 2% de todas las delegaciones de fondos generadas (vía recompensa de bloques y tasas de transacción) es continuamente transferido y acumulado en la Community Pool. Por ejemplo, desde el 19 de Diciembre de 2019 hasta el 20 de Enero de 2020 (32 días), se generaron y añadieron a la pool un total de 28,726 ATOM.

# ¿Cómo puede cambiar la financiación de la Community Pool?

Aunque la tasa de financiación está actualmente fijada en el 2% de las delegaciones, la tasa más efectiva es dependiente de los fondos pertenecientes al Cosmos Hub, que puede cambiar con la inflacción y tiempos de bloque.

La tasa actual del 2% de financiación podría ser modificada con una propuesta de gobernanza y aprobaba de forma inmediata en cuanto la propuesta sea aprobada.

Actualmente, no se pueden enviar fondos a la Community Pool, pero esperamos que esto cambie con la siguiente actualización. Lee más sobre esta nueva funcionalidad aqui (opens new window). ¿Qué hace que esta funcionalidad sea importante?

  1. Los proyectos financiados que finalmente no se ejecuten deben devolver los fondos a la Community Pool;
  2. Las entidades podrían ayudar a aportar fondos a la Community Pool mediante aportación directa a la cuenta.

# ¿Cuál es el saldo de la Community Pool?

Puedes solicitar directamente al Cosmos Hub 3 el saldo de la Community Pool:

gaiad q distribution community-pool --chain-id cosmoshub-3 --node cosmos-node-1.figment.io:26657

De forma alternativa, los navegadores de Cosmos más populares como Mintscan (opens new window) y Big Dipper (opens new window) muestran la evolución del saldo de la Community Pool.

# ¿Cómo se pueden gastar los fondos de la Community Pool?

Los fondos de la Cosmos Community Pool pueden ser gastados a través de propuestas de gobernanza aprobadas.

# ¿Cómo se deberían gastar los fondos de la Community Pool?

No lo sabemos 🤷

La suposición principal es que los fondos deberían ser gastados de forma que aporte valor al Cosmos Hub. Sin embargo, hay debate entorno a cómo hacer el fondo sostenible. También hay algún debate acerca de cómo se debería recibir financiación. Por ejemplo, parte de la comunidad cree que los fondos solamente deberían ser utilizados por aquellas personas que más los necesiten. Otros temas de discusión son:

  • concesiones retroactivas
  • negociación de precio
  • desembolso de fondos (por ejemplo, pagos por fases; pagos fijos para reducir volatilidad)
  • revisión drástica de cómo los mecanimos de gastos de comunidad funcionan

Esperamos que todo esto tome forma a medida que las propuestas sean debatidas, aceptadas, y rechazadas por parte de la comunidad Cosmos Hub.

# ¿Cómo se desembolsan los fondos una vez que una prouesta de gastos de comunidad es aprobada?

Si una propuesta de gastos de comunidad es aprobada, el número de ATOM inluidos en la propuesta serán transferidos desde la community pool a la dirección especificada en la propuesta, y esto ocurrirá justo inmediatamente después de que el periodo de votación termine.

- + diff --git a/main/es/governance/params-change/Governance.html b/main/es/governance/params-change/Governance.html index 73e0887e623..2c73773b957 100644 --- a/main/es/governance/params-change/Governance.html +++ b/main/es/governance/params-change/Governance.html @@ -8,11 +8,11 @@ - +

# Módulo gov

El módulo gov es responsable de las propuestas de gobierno en cadena y la funcionalidad de la votación. Nótese que este módulo requiere una forma única de cambiar sus parámetros (opens new window). gov está activo en Cosmos Hub 3 y actualmente tiene tres parámetros con seis subkeys que pueden ser modificados por una propuesta de gobernanza:

  1. depositparams

  2. votingparams

  3. tallyparams

    • quorum - 0.400000000000000000 (proporción de la red)
    • threshold - 0.500000000000000000 (proporción del poder de voto)
    • veto - 0.334000000000000000 (proporción del poder de voto)

Los valores de lanzamiento de cada subkey de los parámetros están indicados arriba, pero puede verificarlos usted mismo.

Se están considerando algunas funciones adicionales para el desarrollo del módulo de gobernanza.

Si estás técnicamente preparado, estas son las especificaciones técnicas. Si quieres crear una propuesta para cambiar uno o más de estos parámetros, mira esta sección para el formato.

# 1. depositparams

# mindeposit

# El depósito mínimo requerido para que una propuesta entre en el período de votación, en micro-ATOMs

# cosmoshub-3 por defecto: 512000000 uatom

Antes de que una propuesta de gobierno entre en el período de votación (es decir, para que la propuesta sea votada), debe haber al menos un número mínimo de ATOMs depositados. Cualquiera puede contribuir a este depósito. Los depósitos de las propuestas aprobadas y fallidas se devuelven a los contribuyentes. Los depósitos se queman cuando las propuestas 1) expiran, 2) no alcanzan el quórum, o 3) son vetadas. El valor de subkey de este parámetro representa el depósito mínimo requerido para que una propuesta entre en el período de votación en micro-ATOMs, donde 512000000uatom equivalen a 512 ATOM.

# Posibles consecuencias

# Disminución del valor mindeposit

La disminución del valor de subkey mindeposit permitirá que las propuestas de gobernanza entren en el período de votación con menos ATOMs en juego. Es probable que esto aumente el volumen de nuevas propuestas de gobernanza.

# Aumentar el valor mindeposit

Para aumentar el valor de subkey mindeposit será necesario arriesgar un mayor número de ATOMs antes de que las propuestas de gobierno puedan entrar en el período de votación. Es probable que esto disminuya el volumen de nuevas propuestas de gobierno.

# maxdepositperiod

# La cantidad máxima de tiempo que una propuesta puede aceptar contribuciones de depósito antes de expirar, en nanosegundos

# cosmoshub-3 por defecto: 1209600000000000

Antes de que una propuesta de gobierno entre en el período de votación, debe haber al menos un número mínimo de ATOMs depositados. El valor de subkey de este parámetro representa la cantidad máxima de tiempo que la propuesta tiene para alcanzar la cantidad mínima de depósito antes de expirar. La cantidad máxima de tiempo que una propuesta puede aceptar contribuciones de depósito antes de expirar es actualmente de 1209600000000000 nanosegundos o 14 días. Si la propuesta expira, cualquier cantidad de depósito será quemada.

# Posibles consecuencias

# Disminución del valor maxdepositperiod

La disminución del valor de subkey maxdepositperiod reducirá el tiempo de depósito de las contribuciones a las propuestas de gobernanza. Es probable que esto disminuya el tiempo que algunas propuestas permanecen visibles y que disminuya la probabilidad de que entren en el período de votación. Esto puede aumentar la probabilidad de que las propuestas caduquen y se quemen sus depósitos.

# Aumentar el valor maxdepositperiod

El aumento del valor de subkey maxdepositperiod ampliará el plazo para las contribuciones de depósito a las propuestas de gobernanza. Es probable que esto aumente el tiempo en que algunas propuestas siguen siendo visibles y aumente potencialmente la probabilidad de que entren en el período de votación. Esto puede disminuir la probabilidad de que las propuestas caduquen y se quemen sus depósitos.

# Observaciones

Actualmente, la mayoría de los exploradores de la red (por ejemplo, Hubble, Big Dipper, Mintscan) dan la misma visibilidad a las propuestas en el período de depósito que a las del período de votación. Esto significa que una propuesta con un pequeño depósito (por ejemplo, 0.001 ATOM) tendrá la misma visibilidad que aquellas con un depósito completo de 512 ATOM en el período de votación.

# 2. votingparams

# votingperiod

# La cantidad máxima de tiempo que una propuesta puede aceptar votos antes de que concluya el período de votación, en nanosegundos

# cosmoshub-3 por defecto: 1209600000000000

Una vez que una propuesta de gobierno entra en el período de votación, hay un período máximo de tiempo que puede transcurrir antes de que concluya el período de votación. El valor de subkey de este parámetro representa la cantidad máxima de tiempo que la propuesta tiene para aceptar los votos, que actualmente es de 1209600000000000 nanosegundos o 14 días. Si la votación de la propuesta no alcanza el quórum (es decir, el 40% del poder de voto de la red participa) antes de este tiempo, se quemarán las cantidades depositadas y el resultado de la propuesta no se considerará válido. Los votantes pueden cambiar su voto tantas veces como quieran antes de que termine el período de votación. Este período de votación es actualmente el mismo para cualquier tipo de propuesta de gobierno.

# Posibles consecuencias

# Disminución del valor votingperiod

La disminución del valor de subkey votingperiod reducirá el tiempo de votación de las propuestas de gobernanza. Esto podría significar:

  1. disminuir la proporción de la red que participa en la votación, y
  2. disminución de la probabilidad de que se alcance el quórum.

# Aumentar el valor votingperiod

El aumento del valor de subkey votingperiod aumentará el tiempo de votación de las propuestas de gobernanza. Esto puede:

  1. aumentar la proporción de la red que participa en la votación, y
  2. aumentar la probabilidad de que se alcance el quórum.

# Observaciones

Históricamente, los debates y el compromiso fuera de la cadena parecen haber sido mayores durante el período de votación de una propuesta de gobernanza que cuando la propuesta se publica fuera de la cadena como un boceto. En la segunda semana del período de votación se ha votado una cantidad no trivial del poder de voto. Las propuestas 23, 19 y 13 tuvieron cada una aproximadamente un 80% de participación en la red o más.

# 2. tallyparams

# quorum

# La proporción mínima de poder de voto de la red que se requiere para que el resultado de una propuesta de gobierno se considere válido

# cosmoshub-3 por defecto: 0.400000000000000000

Se requiere quórum para que el resultado de la votación de una propuesta de gobierno se considere válido y para que los contribuyentes de depósitos recuperen sus cantidades depositadas, y el valor de subkey de este parámetro representa el valor mínimo para el quórum. El poder de voto, ya sea que respalde un voto de 'yes', 'abstain', 'no', or 'no-with-veto', cuenta para el quórum. Si la votación de la propuesta no alcanza el quórum (es decir, el 40% del poder de voto de la red participa) antes de este momento, se quemará cualquier cantidad depositada y el resultado de la propuesta no se considerará válido.

# Posibles consecuencias

# Disminución del valor quorum

La disminución del valor de subkey quorum permitirá que una proporción menor de la red legitime el resultado de una propuesta. Esto aumenta el riesgo de que se tome una decisión con una proporción menor de los participantes con ATOMs, al tiempo que disminuye el riesgo de que una propuesta se considere inválida. Esto probablemente disminuirá el riesgo de que el depósito de una propuesta se queme.

# Aumentar el valor quorum

El aumento del valor de subkey quorum requerirá una mayor proporción de la red para legitimar el resultado de una propuesta. Esto disminuye el riesgo de que se tome una decisión con una proporción menor de los participantes con ATOMs, al tiempo que aumenta el riesgo de que una propuesta se considere inválida. Es probable que esto aumente el riesgo de que se queme el depósito de una propuesta.

# threshold

# La proporción mínima del poder de voto necesario para que se apruebe una propuesta de gobierno

# cosmoshub-3 por defecto: 0.500000000000000000

Se requiere una mayoría simple de votos a favor (es decir, el 50% del poder de voto participativo) para que se apruebe una propuesta de gobierno. Aunque es necesario, un voto de mayoría simple 'yes' puede no ser suficiente para aprobar una propuesta en dos escenarios:

  1. No se alcanza un quórum del 40% de la capacidad de la red o
  2. Un voto de 'no-with-veto' del 33,4% del poder de voto o mayor.

Si se aprueba una propuesta de gobernanza, las cantidades depositadas se devuelven a los contribuyentes. Si se aprueba una propuesta basada en texto, nada se promulga automáticamente, pero existe una expectativa social de que los participantes se coordinen para promulgar los compromisos señalados en la propuesta. Si se aprueba una propuesta de cambio de parámetros, el parámetro de protocolo cambiará inmediatamente después de que termine el período de votación, y sin necesidad de ejecutar un nuevo software. Si se aprueba una propuesta de gasto comunitario, el saldo de la Reserva Comunitaria disminuirá en el número de ATOMs indicados en la propuesta y la dirección del destinatario aumentará en ese mismo número de ATOMs inmediatamente después de que termine el período de votación.

# Posibles consecuencias

# Disminución del valor threshold

La disminución del valor de subkey threshold disminuirá la proporción del poder de voto necesario para aprobar una propuesta. Esto puede:

  1. aumentará la probabilidad de que una propuesta sea aprobada, y
  2. aumentará la probabilidad de que un grupo minoritario realice cambios en la red.

# Aumentar el valor threshold

Aumentar el valor de subkey threshold aumentará la proporción de poder de voto necesario para aprobar una propuesta. Esto puede:

  1. disminuir la probabilidad de que una propuesta sea aprobada, y
  2. disminuir la probabilidad de que un grupo minoritario realice cambios en la red.

# veto

# La proporción mínima de poder de voto de los participantes para vetar (es decir, rechazar) una propuesta de gobierno

# cosmoshub-3 por defecto: 0.334000000000000000

Aunque se requiere un voto de 'yes' por mayoría simple (es decir, el 50% del poder de voto participante) para que se apruebe una propuesta de gobierno, un voto de 'no-with-veto' del 33,4% del poder de voto participante o superior puede anular este resultado y hacer que la propuesta fracase. Esto permite que un grupo minoritario que represente más de 1/3 del poder de voto pueda hacer fracasar una propuesta que de otro modo sería aprobada.

# Posibles consecuencias

# Disminución del valor veto

Disminuir el valor de subkey veto disminuirá la proporción de poder de voto de los participantes requerida para vetar. Esto puede:

  1. permiten a un grupo minoritario más pequeño evitar que las propuestas sean aprobadas, y
  2. disminuyen la probabilidad de que se aprueben propuestas controvertidas.

# Aumentar el valor veto

Aumentar el valor de subkey veto aumentará la proporción del poder de voto requerido para vetar. Esto requerirá un grupo minoritario más grande para evitar que las propuestas sean aprobadas, y probablemente aumentará la probabilidad de que se aprueben las propuestas controvertidas.

# Verificar los valores de los parámetros

# Parámetros de Génesis (aka lanzamiento)

Esto es útil si no tienes gaiad instalado y no tienes una razón para creer que el parámetro ha cambiado desde que se lanzó la cadena.

Cada parámetro puede ser verificado en el archivo génesis de la cadena, que encuentra aquí (opens new window). Estos son los parámetros con los que la última cadena del Hub de Cosmos se lanzó, y seguirá haciéndolo, a menos que una propuesta de gobierno los cambie. He resumido esos valores originales en la sección Especificaciones Técnicas.

El archivo génesis contiene texto y es grande. El esquema de nombres de los parámetros de génesis no es idéntico a los de la lista anterior, así que cuando busco, pongo un guión bajo entre los caracteres en mayúsculas y minúsculas, y luego convierto todos los caracteres a minúsculas.

Por ejemplo, si quiero buscar depositparams, buscaré en el génesis (opens new window) deposit_params.

# Parámetros actuales

Puede verificar los valores actuales de los parámetros (en caso de que hayan sido modificados mediante la propuesta de gobierno posterior al lanzamiento) con la aplicación de línea de comandos gaiad. Aquí están los comandos para cada uno:

  1. depositparams - gaiad q .. --> to do <--

# Futuro

La documentación actual sólo describe el producto mínimo viable para el módulo de gobernanza. Las mejoras futuras pueden incluir:

  • BountyProposals: Si es aceptada, un BountyProposal crea una recompensa abierta. El BountyProposal especifica cuántos átomos se entregarán al finalizar. Estos átomos serán tomados del reserve pool. Después de que un BountyProposal es aceptado por el gobierno, cualquiera puede presentar un SoftwareUpgradeProposal con el código para reclamar la recompensa. Tenga en cuenta que una vez que el BountyProposal es aceptado, los fondos correspondientes en la reserve pool se bloquean para que el pago siempre pueda ser cumplido. Para vincular un SoftwareUpgradeProposal con una recompensa abierta, el remitente del SoftwareUpgradeProposal utilizará el atributo Proposal.LinkedProposal. Si un SoftwareUpgradeProposal vinculado a una recompensa abierta es aceptado por la administración, los fondos reservados se transfieren automáticamente al autor de la propuesta.

  • Complex delegation: Los delegadores podrán elegir otros representantes además de sus validadores. En última instancia, la cadena de representantes siempre terminaría en un validador, pero los delegadores podrían heredar el voto de su representante elegido antes de heredar el voto de su validador. En otras palabras, sólo heredarían el voto de su validador si su otro representante designado no votara.

  • Mejor proceso de revisión de propuestas: La propuesta consta de dos partes de proposal.Deposit, uno para la lucha contra el correo basura (igual que en el MVP) y otro para recompensar a los auditores de terceros.

    origen (opens new window)

# Especificaciones técnicas

El módulo gov es responsable del sistema de gobierno de la cadena. En este sistema, los titulares del token nativo de la cadena pueden votar sobre las propuestas en una base de 1-token, 1-voto. A continuación hay una lista de las características que el módulo apoya actualmente:

  • Entrega de propuestas: Los usuarios pueden presentar propuestas con un depósito. Una vez que se alcanza el depósito mínimo, la propuesta entra en el período de votación.
  • Voto: Los participantes pueden votar sobre las propuestas que llegaron a MinDeposit.
  • Herencia y sanciones: Los delegadores heredan su voto de validación si no votan ellos mismos.
  • Reclamación del depósito: Los usuarios que depositaron en las propuestas pueden recuperar sus depósitos si la propuesta fue aceptada O si la propuesta nunca entró en el período de votación.

El módulo gov contiene los siguientes parámetros:

Key Type cosmoshub-3 genesis setting
depositparams object {"min_deposit":[{"denom":"uatom","amount":"512000000"}],"max_deposit_period":"1209600000000000"}
Subkeys
min_deposit array (coins) [{"denom":"uatom","amount":"512000000"}]
max_deposit_period string (time ns) "1209600000000000"
Key Type cosmoshub-3 genesis setting
votingparams object
Subkey
voting_period string (time ns) "1209600000000000"
Key Type cosmoshub-3 genesis setting
depositparams object {"min_deposit":[{"denom":"uatom","amount":"512000000"}],"max_deposit_period":"1209600000000000"}
Subkeys
quorum string (dec) "0.400000000000000000"
threshold string (dec) "0.500000000000000000"
veto string (dec) "0.334000000000000000"

Observación: El módulo de gobierno contiene parámetros que son objetos que no son como los demás módulos. Si sólo se desea modificar un subconjunto de parámetros, sólo hay que incluirlos y no toda la estructura de objetos de parámetros.

- + diff --git a/main/es/index.html b/main/es/index.html index 4808c15925b..f113876f472 100644 --- a/main/es/index.html +++ b/main/es/index.html @@ -8,11 +8,11 @@ - +

# Documentación para el Hub de Cosmos

Bienvenido a la documentación de la aplicación para el Hub de Cosmos: gaia

# ¿Qué es Gaia?

# Únase a la red principal del Hub de Cosmos

# Únase a la testnet pública del hub de Cosmos

# Prepare su propia Testnet de gaia

# Recursos adicionales

# Contribución

Consulte este archivo para conocer los detalles del proceso de elaboración y las consideraciones a la hora de hacer cambios.

# Versión

Esta documentación ha construida usando el siguiente commit:

- + diff --git a/main/getting-started/index.html b/main/getting-started/index.html index 362f69d5991..c67eae9dcb3 100644 --- a/main/getting-started/index.html +++ b/main/getting-started/index.html @@ -8,11 +8,11 @@ - +

# Getting Started

This folder contains tutorials related to the gaia application.

- + diff --git a/main/getting-started/installation.html b/main/getting-started/installation.html index 0e8b46662f7..34a3bea3c93 100644 --- a/main/getting-started/installation.html +++ b/main/getting-started/installation.html @@ -8,7 +8,7 @@ - + @@ -57,6 +57,6 @@ go: go version go1.20.3 linux/amd64

# Build Tags

Build tags indicate special features that have been enabled in the binary.

Build Tag Description
netgo Name resolution will use pure Go code
ledger Ledger devices are supported (hardware wallets)

# Work with a Cosmos SDK Clone

To work with your own modifications of the Cosmos SDK, make a fork of this repo, and add a replace clause to the go.mod file. The replace clause you add to go.mod must provide the correct import path:

  • Make appropriate changes
  • Add replace github.com/cosmos/cosmos-sdk => /path/to/clone/cosmos-sdk to go.mod
  • Run make clean install or make clean build
  • Test changes

# Next

Now you can join the mainnet, the public testnet.

- + diff --git a/main/getting-started/quickstart.html b/main/getting-started/quickstart.html index dfcc3c47313..8e8dee3bbf7 100644 --- a/main/getting-started/quickstart.html +++ b/main/getting-started/quickstart.html @@ -8,7 +8,7 @@ - + @@ -96,6 +96,6 @@ gaiad start --x-crisis-skip-assert-invariants
- + diff --git a/main/getting-started/what-is-gaia.html b/main/getting-started/what-is-gaia.html index 11598646e98..88441f6ccf9 100644 --- a/main/getting-started/what-is-gaia.html +++ b/main/getting-started/what-is-gaia.html @@ -8,11 +8,11 @@ - +

# What is Gaia?

gaia is the name of the Cosmos SDK application for the Cosmos Hub. It comes with 2 main entrypoints:

  • gaiad: The Gaia Daemon and command-line interface (CLI). runs a full-node of the gaia application.

gaia is built on the Cosmos SDK using the following modules:

  • x/auth: Accounts and signatures.
  • x/bank: Token transfers.
  • x/staking: Staking logic.
  • x/mint: Inflation logic.
  • x/distribution: Fee distribution logic.
  • x/slashing: Slashing logic.
  • x/gov: Governance logic.
  • ibc-go/modules: Inter-blockchain communication. Hosted in the cosmos/ibc-go repository.
  • x/params: Handles app-level parameters.

About the Cosmos Hub: The Cosmos Hub is the first Hub to be launched in the Cosmos Network. The role of a Hub is to facilitate transfers between blockchains. If a blockchain connects to a Hub via IBC, it automatically gains access to all the other blockchains that are connected to it. The Cosmos Hub is a public Proof-of-Stake chain. Its staking token is called the Atom.

Next, learn how to install Gaia.

- + diff --git a/main/governance/best-practices.html b/main/governance/best-practices.html index 5ccd4d180e3..a9836e66325 100644 --- a/main/governance/best-practices.html +++ b/main/governance/best-practices.html @@ -8,7 +8,7 @@ - + @@ -21,6 +21,6 @@
  • What are the specific deliverables? (be detailed).
  • When will each of these be delivered?
  • How will each of these be delivered?
  • What will happen if you do not deliver on time?
  • Do you have a plan to return the funds if you're under-budget or the project fails?
  • How will you be accountable to the Cosmos Hub stakeholders?
    • How will you communicate updates and how often?
    • How can the community observe your progress?
    • How can the community provide feedback?
  • How should the quality of deliverables be assessed? eg. metrics.
  • Relationships and disclosures.
    • Have you received or applied for grants or funding? for similar work? eg. from the Interchain Foundation.
    • How will you and/or your organization benefit?
    • Do you see this work continuing in the future and is there a plan?
    • What are the risks involved with this work?
    • Do you have conflicts of interest to declare?
  • # Begin with a well-considered draft proposal

    Ideally, a proposal is first sent to the forum in Markdown format so that it can be further edited and available for comments. A changelog is a great tool so that people can see how the idea has developed over time and in response to feedback.

    This Markdown-formatted post can eventually become the description text in a proposal sent on-chain.

    # Engage the community with your draft proposal

    1. Post a draft of your proposal as a topic in the appropriate category of the forum. Hub Proposals (opens new window) is a catch-all if you are not sure where to post, but there are categories for all types of proposals.

    2. Directly engage key members of the community for feedback. These could be large contributors, those likely to be most impacted by the proposal, and entities with high stake-backing (eg. high-ranked validators; large stakers).

    3. Alert the entire community to the draft proposal on other platforms such as Twitter, tagging accounts such as the Cosmos Hub account (opens new window), the Cosmos Governance account (opens new window), and other governance-focused groups.

    # Submit your proposal to the testnet

    Before going on mainnet, you can test your proposal on the testnet.

    This is a great way to make sure your proposal looks the way you want and refine it before heading to mainnet.

    # Stage 3: Your On-Chain Proposal

    A majority of the voting community should probably be aware of the proposal and have considered it before the proposal goes live on-chain. If you're taking a conservative approach, you should have reasonable confidence that your proposal will pass before risking deposit contributions. Make revisions to your draft proposal after each stage of engagement.

    See the submitting guide for more on submitting proposals.

    # The Deposit Period

    The deposit period currently lasts 14 days. If you submitted your transaction with the minimum deposit (250 ATOM), your proposal will immediately enter the voting period. If you didn't submit the minimum deposit amount (currently 250 ATOM), then this may be an opportunity for others to show their support by contributing (and risking) their ATOMs as a bond for your proposal. You can request contributions openly and also contact stakeholders directly (particularly stakeholders who are enthusiastic about your proposal). Remember that each contributor is risking their funds, and you can read more about the conditions for burning deposits here.

    This is a stage where proposals may begin to get broader attention. Some block explorers display proposals in the deposit period, while others don't show them until they hit voting period.

    A large cross-section of the blockchain/cryptocurrency community exists on Twitter. Having your proposal in the deposit period is a good time to engage the so-called 'crypto Twitter' Cosmos community to prepare validators to vote (eg. tag @cosmosvalidator (opens new window)) and ATOM-holders that are staking (eg. tag @cosmoshub (opens new window), @CosmosGov (opens new window)).

    # The Voting Period

    At this point you'll want to track which validator has voted and which has not. You'll want to re-engage directly with top stake-holders, ie. the highest-ranking validator operators, to ensure that:

    1. they are aware of your proposal;
    2. they can ask you any questions about your proposal; and
    3. they are prepared to vote.

    Remember that any voter may change their vote at any time before the voting period ends. That historically doesn't happen often, but there may be an opportunity to convince a voter to change their vote. The biggest risk is that stakeholders won't vote at all (for a number of reasons). Validator operators tend to need multiple reminders to vote. How you choose to contact validator operators, how often, and what you say is up to you--remember that no validator is obligated to vote, and that operators are likely occupied by competing demands for their attention. Take care not to stress any potential relationship with validator operators.

    - + diff --git a/main/governance/formatting.html b/main/governance/formatting.html index 8f1331765d7..8852bee3bb7 100644 --- a/main/governance/formatting.html +++ b/main/governance/formatting.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ "deposit": "100000uatom" }
    - + diff --git a/main/governance/index.html b/main/governance/index.html index 62ef39d60cf..4f506ba95ba 100644 --- a/main/governance/index.html +++ b/main/governance/index.html @@ -8,13 +8,13 @@ - +

    # Governance Overview

    The Cosmos Hub ("Gaia") has an on-chain governance mechanism for signaling, changing consensus parameters, and spending funds from the community pool.

    This repository provides background information on these different kinds of proposals and best-practices for drafting them and proposing them on-chain.

    # Community

    Cosmos governance is driven by the Cosmos community, and much of the documentation in this repo was funded by the community fund itself in Proposal 23 (opens new window) and Proposal 63 (opens new window). Governance discussions happens in a number of places moderated by diverse community members, including:

    - + diff --git a/main/governance/process.html b/main/governance/process.html index f9f8e5e6c66..99eb2960326 100644 --- a/main/governance/process.html +++ b/main/governance/process.html @@ -8,12 +8,12 @@ - +

    # On-Chain Proposal Process

    # Governance Parameters

    Several of the numbers involved in governance are parameters and can thus be changed by passing a parameter change proposal.

    • Minimum deposit: 250 ATOM
    • Maximum deposit period: 14 days
    • Voting period: 14 days
    • Quorum: 40% of participating voting power
    • Pass threshold: 50% of participating voting power
    • Veto threshold: 33.40% of participating voting power

    # 1. Deposit Period

    The deposit period lasts either 14 days or until the proposal deposit totals 250 ATOMs, whichever happens first.

    # Deposits

    Prior to a governance proposal entering the voting period (i.e., for the proposal to be voted upon), there must be at least a minimum number of ATOMs deposited (250). Anyone may contribute to this deposit, though it is usually filled by the proposal maker. Deposits of passed and failed proposals are returned to the contributors.

    In the past, different people have considered contributions amounts differently. There is some consensus that this should be a personal choice. There is also some consensus that this can be an opportunity for supporters to signal their support by adding to the deposit amount, so a proposer may choose to leave contribution room (i.e., a deposit below 250 ATOMs) so that others may participate. It is important to remember that any contributed ATOMs are at risk of being burned.

    # Burned deposits

    Deposits are burned only when proposals are vetoed as documented in the Cosmos SDK gov module spec (opens new window). Deposits are not burned for failing to meet quorum or for being rejected.

    # 2. Voting Period

    The voting period is currently a fixed 14-day period. During the voting period, participants may select a vote of either 'Yes', 'No', 'Abstain', or 'NoWithVeto'. Voters may change their vote at any time before the voting period ends.

    # What do the voting options mean?

    1. Abstain: The voter wishes to contribute to quorum without voting for or against a proposal.
    2. Yes: Approval of the proposal in its current form.
    3. No: Disapproval of the proposal in its current form.
    4. NoWithVeto: A ‘NoWithVeto’ vote indicates a proposal either (1) is deemed to be spam, i.e., irrelevant to Cosmos Hub, (2) disproportionately infringes on minority interests, or (3) violates or encourages violation of the rules of engagement as currently set out by Cosmos Hub governance.

    As accepted by the community in Proposal 75 (opens new window), voters are expected to vote 'NoWithVeto' for proposals that are spam, infringe on minority interests, or violate the rules of engagement (i.e., Social protocols which have passed governance and thus been accepted as rules on the Hub). This proposal was an extension of the ideas put forward in Proposal 6 (opens new window).

    Voting 'NoWithVeto' has no immediate additional financial cost to the voter - you do not directly risk your ATOM by using this option.

    # What determines whether or not a governance proposal passes?

    There are four criteria:

    1. Deposit is filled: A minimum deposit of 250 ATOM is required for the proposal to enter the voting period
      • anyone may contribute to this deposit
      • the deposit must be reached within 14 days (this is the deposit period)
    2. Quorum is reached: A minimum of 40% of the network's total voting power (staked ATOM) is required to participate
    3. Simple majority of 'Yes' votes: Greater than 50% of the participating voting power must back the 'Yes' vote by the end of the 14-day voting period
    4. Not vetoed: Less than 33.4% of participating voting power must have backed 'NoWithVeto' by the end of the 14-day voting period

    Currently, the criteria for submitting and passing/failing all proposal types is the same.

    # How is quorum determined?

    Voting power, whether backing a vote of 'Yes', 'Abstain', 'No', or 'NoWithVeto', counts toward quorum. Quorum is required for the outcome of a governance proposal vote to be considered valid and for deposit contributors to recover their deposit amounts.

    # How is voting tallied?

    • Total voting power refers to all staked ATOM at the end of the 14-day voting period. Liquid ATOMs are not part of the total voting power and thus cannot participate in voting.
    • Participating voting power refers to only the ATOM which have been used to cast a vote on a particular proposal. Quorum is set to 40% of the participating voting power.

    Validators not in the active set can cast a vote, but their voting power (including the backing of their delegators) will not count toward the vote if they are not in the active set when the voting period ends. That means that if ATOM is delegated to a validator that is jailed, tombstoned, or outside of the active set at the time that the voting period ends, that ATOM's stake-weight will not count in the vote.

    Though a simple majority 'Yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass, a 'NoWithVeto' vote of 33.4% of participating voting power or greater can override this outcome and cause the proposal to fail. This enables a minority group representing greater than 1/3 of participating voting power to fail a proposal that would otherwise pass.

    - + diff --git a/main/governance/proposal-types/community-pool-spend.html b/main/governance/proposal-types/community-pool-spend.html index d8486250f58..5c0007ce106 100644 --- a/main/governance/proposal-types/community-pool-spend.html +++ b/main/governance/proposal-types/community-pool-spend.html @@ -8,11 +8,11 @@ - +

    # Community Pool Spend

    Cosmos Hub launched with community-spend capabilities on December 11, 2019, effectively unlocking the potential for token-holders to vote to approve spending from the Community Pool.

    🇪🇸 Esta página también está disponible en español (opens new window).

    # Learn About the Community Pool

    # How is the Community Pool funded?

    2% of all staking rewards generated (via block rewards & transaction fees) are continually transferred to and accrue within the Community Pool. For example, from Dec 19, 2019 until Jan 20, 2020 (32 days), 28,726 ATOM were generated and added to the pool.

    # How can funding for the Community Pool change?

    Though the rate of funding is currently fixed at 2% of staking rewards, the effective rate is dependent upon the Cosmos Hub's staking rewards, which can change with inflation and block times.

    The current paramater Community Tax parameter of 2% may be modified with a governance proposal and enacted immediately after the proposal passes.

    # How much money is in the Community Pool?

    You may directly query the Cosmos Hub 4 for the balance of the Community Pool:

    gaiad q distribution community-pool --chain-id cosmoshub-4 --node https://rpc.cosmos.network:443

    Alternatively, popular Cosmos explorers such as Big Dipper (opens new window) and Mintscan (opens new window) display the ongoing Community Pool balance.

    # How can funds from the Community Pool be spent?

    Funds from the Cosmos Community Pool may be spent via successful governance proposal.

    # How should funds from the Community Pool be spent?

    We don't know 🤷

    The prevailing assumption is that funds should be spent in a way that brings value to the Cosmos Hub. However, there is debate about how to keep the fund sustainable. There is also some debate about who should receive funding. For example, part of the community believes that the funds should only be used for those who need funding most. Other topics of concern include:

    • retroactive grants
    • price negotiation
    • fund disbursal (eg. payments in stages; payments pegged to reduce volitiliy)
    • radical overhaul of how the community-spend mechanism functions

    We can expect this to take shape as proposals are discussed, accepted, and rejected by the Cosmos Hub community.

    # How are funds disbursed after a community-spend proposal is passed?

    If a community-spend proposal passes successfully, the number of ATOM encoded in the proposal will be transferred from the community pool to the address encoded in the proposal, and this will happen immediately after the voting period ends.

    # Why create a proposal to use Community Pool funds?

    There are other funding options, most notably the Interchain Foundation's grant program. Why create a community-spend proposal?

    As a strategy: you can do both. You can submit your proposal to the Interchain Foundation, but also consider submitting your proposal publicly on-chain. If the Hub votes in favour, you can withdraw your Interchain Foundation application.

    As a strategy: funding is fast. Besides the time it takes to push your proposal on-chain, the only other limiting factor is a fixed 14-day voting period. As soon as the proposal passes, your account will be credited the full amount of your proposal request.

    To build rapport. Engaging publicly with the community is the opportunity to develop relationships with stakeholders and to educate them about the importance of your work. Unforeseen partnerships could arise, and overall the community may value your work more if they are involved as stakeholders.

    To be more independent. The Interchain Foundation (ICF) may not always be able to fund work. Having a more consistently funded source and having a report with its stakeholders means you can use your rapport to have confidence in your ability to secure funding without having to be dependent upon the ICF alone.

    - + diff --git a/main/governance/proposal-types/index.html b/main/governance/proposal-types/index.html index 6447afd803c..51355b74fa5 100644 --- a/main/governance/proposal-types/index.html +++ b/main/governance/proposal-types/index.html @@ -8,11 +8,11 @@ - +

    # Proposal Types

    # Drafting a Proposal

    Drafting and submitting a proposal is a process that takes time, attention, and involves risk. The objective of this documentation is to make this process easier by preparing participants for what to pay attention to, the information that should be considered in a proposal, and how to reduce the risk of losing deposits.

    Ideally, a proposal should only fail to pass because voters are aware, engaged, and have made an informed decision to vote down the proposal.

    If you are considering drafting a proposal, you should first review the general background on drafting and submitting a proposal:

    1. How the voting process and governance mechanism works
    2. How to draft your proposal and engage with the Cosmos community about it
    3. How to format proposals
    4. How to submit your proposal

    You should also review details specific to each kind of proposal, listed in this section.

    - + diff --git a/main/governance/proposal-types/param-change.html b/main/governance/proposal-types/param-change.html index df006a050ad..030b9d5eef0 100644 --- a/main/governance/proposal-types/param-change.html +++ b/main/governance/proposal-types/param-change.html @@ -8,7 +8,7 @@ - + @@ -21,6 +21,6 @@ max_validators: 180 unbonding_time: 1814400s

    If a parameter-change proposal is successful, the change takes effect immediately upon completion of the voting period.

    Note: You cannot currently query the bank module's parameter, which is sendenabled. You also cannot query the crisis module's parameters.

    # Why create a parameter change proposal?

    Parameters are what govern many aspects of the chain's behaviour. As circumstances and attitudes change, sometimes you might want to change a parameter to bring the chain's behaviour in line with community opinion. For example, the Cosmos Hub launched with 100 active validators and there have been 4 proposals to date that have increased the MaxValidators parameter. At the time of writing, the active set contains 180 validators.

    The Cosmos Hub has been viewed as a slow-moving, highly secure chain and that is reflected in some of its other parameters, such as a 21 day unbonding period and 14 day voting period. These are quite long compared to other chains in the Cosmos Ecosystem

    # Risks in parameter change proposals

    Because parameters dictate some of the ways in which the chain operates, changing them can have an impact beyond what is immediately obvious.

    For example, reducing the unbonding period might seem like the only effect is in how quickly delegators can liquidate their assets. It might also have a much greater impact on the overall security of the network that would be hard to realize at first glance.

    This is one of the reasons that having a thorough discussion before going on-chain is so important - talking through the impacts of a proposal is a great way to avoid unintended effects.

    # Credits

    This documentation was originally created by Gavin Birch (Figment Networks (opens new window)). Its development was supported by funding approved on January 29, 2020 by the Cosmos Hub via Community Spend Proposal 23 (opens new window) (full Proposal PDF here (opens new window)). In late 2021 and early 2022 significant updates were made by Hypha Worker Co-op (opens new window), especially @dcwalk and @lexaMichaelides. 🙏

    Special thanks to the following for providing credible information:

    - + diff --git a/main/governance/proposal-types/params-change/Auth.html b/main/governance/proposal-types/params-change/Auth.html index f1ee63977ed..b0d940d7a10 100644 --- a/main/governance/proposal-types/params-change/Auth.html +++ b/main/governance/proposal-types/params-change/Auth.html @@ -8,12 +8,12 @@ - +

    # auth subspace

    The auth module is responsible for authenticating accounts and transactions. It has the following parameters:

    Key Value
    MaxMemoCharacters 512
    SigVerifyCostED25519 590
    SigVerifyCostSecp256k1 1000
    TxSigLimit 7
    TxSizeCostPerByte 10

    The auth module is responsible for specifying the base transaction and account types for an application, since the SDK itself is agnostic to these particulars. It contains the ante handler, where all basic transaction validity checks (signatures, nonces, auxiliary fields) are performed, and exposes the account keeper, which allows other modules to read, write, and modify accounts.

    # Governance notes on parameters

    # MaxMemoCharacters

    The character limit for each transaction memo.

    There is an option to include a "memo," or additional information (data) to Cosmos Hub transactions, whether sending funds, delegating, voting, or other transaction types. This parameter limits the number of characters that may be included in the memo line of each transaction.

    • on-chain value: 512
    • cosmoshub-4 genesis: 512
    • cosmoshub-3 genesis: 512

    # Decreasing the value of MaxMemoCharacters

    Decreasing the value of MaxMemoCharacters will decrease the character limit for each transaction memo. This may break the functionality of applications that rely upon the data in the memo field. For example, an exchange may use a common deposit address for all of its users, and then individualize account deposits using the memo field. If the memo field suddenly decreased, the exchange may no longer automatically sort its users' transactions.

    # Increasing the value of MaxMemoCharacters

    Increasing the value of MaxMemoCharacters will increase the character limit for each transaction memo. This may enable new functionality for applications that use transaction memos. It may also enable an increase in the amount of data in each block, leading to an increased storage need for the blockchain and state bloat (opens new window).

    # TxSigLimit

    The max number of signatures per transaction

    Users and applications may create multisignature (aka multisig) accounts. These accounts require more than one signature to generate a transaction. This parameter limits the number of signatures in a transaction.

    • on-chain value: 7
    • cosmoshub-4 genesis: 7
    • cosmoshub-3 genesis: 7

    # Decreasing the value of TxSigLimit

    Decreasing the value of TxSigLimit will decrease the maximum number of signatures possible. This may constrain stakeholders that want to use as many as seven signatures to authorize a transaction. It will also break the functionality of entities or applications dependent upon up to seven transactions, meaning that those transactions will no longer be able to be authorized. In this case, funds and functions controlled by a multisignature address will no longer be accessible, and funds may become stranded.

    # Increasing the value of TxSigLimit

    Increasing the value of TxSigLimit will increase the maximum number of signatures possible. As this value increases, the network becomes more likely to be susceptible to attacks that slow block production, due to the burden of computational cost when verifying more signatures (since signature verification is costlier than other operations).

    # TxSizeCostPerByte

    Sets the cost of transactions, in units of gas.

    TxSizeCostPerByte is used to compute the gas-unit consumption for each transaction.

    • on-chain value: 10
    • cosmoshub-4 genesis: 10
    • cosmoshub-3 genesis: 10

    # Decreasing the value of TxSizeCostPerByte

    Decreasing the value of TxSizeCostPerByte will reduce the number of gas units used per transaction. This may also reduce the fees that validators earn for processing transactions. There may be other effects that have not been detailed here.

    # Increasing the value of TxSizeCostPerByte

    Increasing the value of TxSizeCostPerByte will raise the number of gas units used per transaction. This may also increase the fees that validators earn for processing transactions. There may be other effects that have not been detailed here.

    # SigVerifyCostED25519

    The cost for verifying ED25519 signatures, in units of gas.

    Ed25519 is the EdDSA cryptographic signature scheme (using SHA-512 (SHA-2) and Curve25519) that is used by Cosmos Hub validators. SigVerifyCostED25519 is the gas (ie. computational) cost for verifying ED25519 signatures, and ED25519-based transactions are not currently accepted by the Cosmos Hub.

    • on-chain value: 590
    • cosmoshub-4 genesis: 590
    • cosmoshub-3 genesis: 590

    # Decreasing the value of SigVerifyCostED25519

    Decreasing the value of SigVerifyCostED25519 will decrease the amount of gas that is consumed by transactions that require Ed25519 signature verifications. Since Ed25519-signed transactions are not currently accepted by Cosmos Hub, changing this parameter is unlikely to affect stakeholders at this time.

    # Increasing the value of SigVerifyCostED25519

    Increasing the value of SigVerifyCostED25519 will increase the amount of gas that is consumed by transactions that require Ed25519 signature verifications. Since Ed25519 signature transactions are not currently accepted by Cosmos Hub, changing this parameter is unlikely to affect stakeholders at this time.

    # Notes

    Ed25519 signatures are not currently being accepted by the Cosmos Hub. Ed25519 signatures will be verified and can be considered valid, so the gas to verify them will be consumed. However, the transaction itself will be rejected. It could be that these signatures will be used for transactions a later time, such as after inter-blockchain communication (IBC) evidence upgrades happen.

    # SigVerifyCostSecp256k1

    The cost for verifying Secp256k1 signatures, in units of gas.

    Secp256k1 is an elliptic curve domain parameter for cryptographic signatures used by user accounts in the Cosmos Hub. SigVerifyCostSecp256k1 is the gas (ie. computational) cost for verifying Secp256k1 signatures. Practically all Cosmos Hub transactions require Secp256k1 signature verifications.

    • on-chain value: 1000
    • cosmoshub-4 default: 1000
    • cosmoshub-3 default: 1000

    # Decreasing the value of SigVerifyCostSecp256k1

    Decreasing the value of SigVerifyCostSecp256k1 will decrease the amount of gas that is consumed by practically all Cosmos Hub transactions, which require Secp256k1 signature verifications. Decreasing this parameter may have unintended effects on how the Cosmos Hub operates, since the computational cost of verifying a transaction may be greater than what the system's assumption is.

    # Increasing the value of SigVerifyCostSecp256k1

    Increasing the value of SigVerifyCostSecp256k1 will increase the amount of gas that is consumed by practically all Cosmos Hub transactions, which require Secp256k1 signature verifications. Increasing this parameter may have unintended effects on how the Cosmos Hub operates, since the computational cost of verifying a transaction may be less than what the system's assumption is.

    # Notes

    There should be a better understanding of what the potential implications are for changing SigVerifyCostSecp256k1. For example, gas calculations are important because blocks have a gas limit. Transactions could be rejected for exceeding the block gas limit, breaking application functionality or perhaps preventing addresses controlled by multiple signatures from moving funds.

    - + diff --git a/main/governance/proposal-types/params-change/Bank.html b/main/governance/proposal-types/params-change/Bank.html index 5a84f0ccc52..d99ee6a3ca0 100644 --- a/main/governance/proposal-types/params-change/Bank.html +++ b/main/governance/proposal-types/params-change/Bank.html @@ -8,11 +8,11 @@ - + -

    # bank subspace

    The bank module is responsible for token transfer functionalities. It has the following parameters:

    Key Value
    DefaultSendEnabled true
    SendEnabled []

    # Governance notes on parameters

    # SendEnabled

    Token transfer functionality.

    The Cosmos Hub (cosmoshub-1) launched without transfer functionality enabled. Users were able to stake and earn rewards, but were unable to transfer ATOMs between accounts until the cosmoshub-2 chain launched. Transfer functionality may be disabled and enabled via governance proposal.

    • on-chain value: SendEnabled: []
    • on-chain value: DefaultSendEnabled: true
    • cosmoshub-4 added DefaultSendEnabled: true
    • cosmoshub-3 default: true

    # Enabling sendenabled

    Setting the sendenabled parameter to true will enable ATOMs to be transferred between accounts. This capability was first enabled when the cosmoshub-2 chain launched.

    # Disabling sendenabled

    Setting the sendenabled parameter to false will prevent ATOMs from being transferred between accounts. ATOMs may still be staked and earn rewards. This is how the cosmoshub-1 chain launched.

    # Notes

    The cosmoshub-1 chain launched with sendenabled set to false and with withdrawaddrenabled set to false. Staking was enabled on cosmoshub-1, so setting withdrawaddrenabled to false was necessary to prevent a loophole that would enable ATOM transfer via diverting staking rewards to a designated address.

    - +

    # bank subspace

    The bank module is responsible for token transfer functionalities. It has the following parameters:

    Key Value
    DefaultSendEnabled true
    SendEnabled []

    # Governance notes on parameters

    # SendEnabled

    Token transfer functionality.

    The Cosmos Hub (cosmoshub-1) launched without transfer functionality enabled. Users were able to stake and earn rewards, but were unable to transfer ATOMs between accounts until the cosmoshub-2 chain launched. Transfer functionality may be disabled and enabled via governance proposal.

    • on-chain value: SendEnabled: []
    • on-chain value: DefaultSendEnabled: true
    • cosmoshub-4 added DefaultSendEnabled: true
    • cosmoshub-3 default: true

    # Enabling sendenabled

    Setting the sendenabled parameter to true will enable ATOMs to be transferred between accounts. This capability was first enabled when the cosmoshub-2 chain launched.

    # Disabling sendenabled

    Setting the sendenabled parameter to false will prevent ATOMs from being transferred between accounts. ATOMs may still be staked and earn rewards. This is how the cosmoshub-1 chain launched.

    # Notes

    The cosmoshub-1 chain launched with sendenabled set to false and with withdrawaddrenabled set to false. Staking was enabled on cosmoshub-1, so setting withdrawaddrenabled to false was necessary to prevent a loophole that would enable ATOM transfer via diverting staking rewards to a designated address.

    + diff --git a/main/governance/proposal-types/params-change/Crisis.html b/main/governance/proposal-types/params-change/Crisis.html index 6b62dab6200..480f4b8604c 100644 --- a/main/governance/proposal-types/params-change/Crisis.html +++ b/main/governance/proposal-types/params-change/Crisis.html @@ -8,7 +8,7 @@ - + @@ -19,6 +19,6 @@ "amount": "1333000000", "denom": "uatom" }
  • cosmoshub-4 default: 1333000000 uatom
  • cosmoshub-3 default: 1333000000 uatom
  • # Decreasing the value of ConstantFee

    Decreasing the value of the ConstantFee parameter will reduce the cost of checking an invariant. This will likely make it easier to halt the chain if an invariant is actually broken, but it will lower the cost for an attacker to use this function to slow block production.

    # Increasing the value of ConstantFee

    Increasing the value of the ConstantFee parameter will increase the cost of checking an invariant. This will likely make it more difficult to halt the chain if an invariant is actually broken, but it will increase the cost for an attacker to use this function to slow block production.

    # Notes

    Only registered invariants may be checked with this transaction message. Validators are reportedly performant enough to handle large computations like invariant checks, and the likely outcome of multiple invariant checks would be longer block times. In the code, there is a comment that indicates that the designers were targeting $5000 USD as the required amount of ATOMs to run an invariant check.

    - + diff --git a/main/governance/proposal-types/params-change/Distribution.html b/main/governance/proposal-types/params-change/Distribution.html index a53c3aa0415..11af51cc8a2 100644 --- a/main/governance/proposal-types/params-change/Distribution.html +++ b/main/governance/proposal-types/params-change/Distribution.html @@ -8,7 +8,7 @@ - + @@ -18,7 +18,7 @@ community_tax: "0.020000000000000000" base_proposer_reward: "0.999000000000000000" bonus_proposer_reward: "0.040000000000000000" -

    Though the system will not allow eg. baseproposerreward to be a value greater than 1.0, it will allow the communitytax, baseproposerreward, and bonusproposerreward parameters values to total an amount greater than 1.00, which will apparently cause the chain to panic and halt. You can read more about the reported issue here (opens new window).

    - +

    Though the system will not allow eg. baseproposerreward to be a value greater than 1.0, it will allow the communitytax, baseproposerreward, and bonusproposerreward parameters values to total an amount greater than 1.00, which will apparently cause the chain to panic and halt. You can read more about the reported issue here (opens new window).

    + diff --git a/main/governance/proposal-types/params-change/Governance.html b/main/governance/proposal-types/params-change/Governance.html index 17931cd7aa7..8474405597c 100644 --- a/main/governance/proposal-types/params-change/Governance.html +++ b/main/governance/proposal-types/params-change/Governance.html @@ -8,7 +8,7 @@ - + @@ -31,7 +31,7 @@ "amount": "64000000", "denom": "uatom" } -]
  • Proposal 47 (opens new window) change: 64000000 uatom
  • cosmoshub-4 default: 512000000 uatom
  • cosmoshub-3 default: 512000000 uatom
  • Prior to a governance proposal entering the voting period (ie. for the proposal to be voted upon), there must be at least a minimum number of ATOMs deposited. Anyone may contribute to this deposit. Deposits of passed and failed proposals are returned to the contributors. Deposits are burned when proposals 1) expire, 2) fail to reach quorum, or 3) are vetoed. This parameter subkey value represents the minimum deposit required for a proposal to enter the voting period in micro-ATOMs, where 512000000uatom is equivalent to 512 ATOM.

    # Decreasing the value of mindeposit

    Decreasing the value of the mindeposit subkey will enable governance proposals to enter the voting period with fewer ATOMs at risk. This will likely increase the volume of new governance proposals.

    # Increasing the value of mindeposit

    Increasing the value of the mindeposit subkey will require risking a greater number of ATOMs before governance proposals may enter the voting period. This will likely decrease the volume of new governance proposals.

    # max_deposit_period

    The maximum amount of time that a proposal can accept deposit contributions before expiring, in nanoseconds.

    • on-chain value: 1209600000000000
    • cosmoshub-4 default: 1209600000000000
    • cosmoshub-3 default: 1209600000000000

    Prior to a governance proposal entering the voting period, there must be at least a minimum number of ATOMs deposited. This parameter subkey value represents the maximum amount of time that the proposal has to reach the minimum deposit amount before expiring. The maximum amount of time that a proposal can accept deposit contributions before expiring is currently 1209600000000000 nanoseconds or 14 days. If the proposal expires, any deposit amounts will be burned.

    # Decreasing the value of maxdepositperiod

    Decreasing the value of the maxdepositperiod subkey will decrease the time for deposit contributions to governance proposals. This will likely decrease the time that some proposals remain visible and potentially decrease the likelihood that they will enter the voting period. This may increase the likelihood that proposals will expire and have their deposits burned.

    # Increasing the value of maxdepositperiod

    Increasing the value of the maxdepositperiod subkey will extend the time for deposit contributions to governance proposals. This will likely increase the time that some proposals remain visible and potentially increase the likelihood that they will enter the voting period. This may decrease the likelihood that proposals will expire and have their deposits burned.

    # Notes

    Currently most network explorers (eg. Hubble, Big Dipper, Mintscan) give the same visibility to proposals in the deposit period as those in the voting period. This means that a proposal with a small deposit (eg. 0.001 ATOM) will have the same visibility as those with a full 512 ATOM deposit in the voting period.

    # votingparams

    # votingperiod

    The maximum amount of time that a proposal can accept votes before the voting period concludes, in nanoseconds.

    • on-chain value: 1209600000000000
    • cosmoshub-4 default: 1209600000000000
    • cosmoshub-3 default: 1209600000000000

    Once a governance proposal enters the voting period, there is a maximum period of time that may elapse before the voting period concludes. This parameter subkey value represents the maximum amount of time that the proposal has to accept votes, which is currently 1209600000000000 nanoseconds or 14 days. If the proposal vote does not reach quorum ((ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal's outcome will not be considered to be valid. Voters may change their vote any number of times before the voting period ends. This voting period is currently the same for any kind of governance proposal.

    # Decreasing the value of votingperiod

    Decreasing the value of the votingperiod subkey will decrease the time for voting on governance proposals. This will likely:

    1. decrease the proportion of the network that participates in voting, and
    2. decrease the likelihood that quorum will be reached.
    # Increasing the value of votingperiod

    Increasing the value of the votingperiod subkey will increase the time for voting on governance proposals. This may:

    1. increase the proportion of the network that participates in voting, and
    2. increase the likelihood that quorum will be reached.
    # Notes

    Historically, off-chain discussions and engagement appears to be have been greater occurred during the voting period of a governance proposal than when the proposal is posted off-chain as a draft. A non-trivial amount of the voting power has voted in the second week of the voting period. Proposals 23, 19, and 13 each had approximately 80% network participation or more.

    # tallyparams

    # quorum

    The minimum proportion of network voting power required for a governance proposal's outcome to be considered valid.

    • on-chain value: 0.400000000000000000
    • cosmoshub-4 default: 0.400000000000000000
    • cosmoshub-3 default: 0.400000000000000000

    Quorum is required for the outcome of a governance proposal vote to be considered valid and for deposit contributors to recover their deposit amounts, and this parameter subkey value represents the minimum value for quorum. Voting power, whether backing a vote of 'yes', 'abstain', 'no', or 'no-with-veto', counts toward quorum. If the proposal vote does not reach quorum (ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal outcome will not be considered to be valid.

    # Decreasing the value of quorum

    Decreasing the value of the quorum subkey will enable a smaller proportion of the network to legitimize the outcome of a proposal. This increases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while decreasing the risk that a proposal will be considered invalid. This will likely decrease the risk of a proposal's deposit being burned.

    # Increasing the value of quorum

    Increasing the value of the quorum subkey will require a larger proportion of the network to legitimize the outcome of a proposal. This decreases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while increasing the risk that a proposal will be considered invalid. This will likely increase the risk of a proposal's deposit being burned.

    # threshold

    The minimum proportion of participating voting power required for a governance proposal to pass.

    • on-chain value: 0.500000000000000000
    • cosmoshub-4 default: 0.500000000000000000
    • cosmoshub-3 default: 0.500000000000000000

    A simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass. Though necessary, a simple majority 'yes' vote may not be sufficient to pass a proposal in two scenarios:

    1. Failure to reach quorum of 40% network power or
    2. A 'no-with-veto' vote of 33.4% of participating voting power or greater.

    If a governance proposal passes, deposit amounts are returned to contributors. If a text-based proposal passes, nothing is enacted automatically, but there is a social expectation that participants will co-ordinate to enact the commitments signalled in the proposal. If a parameter change proposal passes, the protocol parameter will automatically change immediately after the voting period ends, and without the need to run new software. If a community-spend proposal passes, the Community Pool balance will decrease by the number of ATOMs indicated in the proposal and the recipient's address will increase by this same number of ATOMs immediately after the voting period ends.

    # Decreasing the value of threshold

    Decreasing the value of the threshold subkey will decrease the proportion of voting power required to pass a proposal. This may:

    1. increase the likelihood that a proposal will pass, and
    2. increase the likelihood that a minority group will effect changes to the network.
    # Increasing the value of threshold

    Increasing the value of the threshold subkey will increase the proportion of voting power required to pass a proposal. This may:

    1. decrease the likelihood that a proposal will pass, and
    2. decrease the likelihood that a minority group will effect changes to the network.

    # veto_threshold

    The minimum proportion of participating voting power to veto (ie. fail) a governance proposal.

    • on-chain value: 0.334000000000000000
    • cosmoshub-4 default: 0.334000000000000000
    • cosmoshub-3 default: 0.334000000000000000

    Though a simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass, a 'no-with-veto' vote of 33.4% of participating voting power or greater can override this outcome and cause the proposal to fail. This enables a minority group representing greater than 1/3 of voting power to fail a proposal that would otherwise pass.

    # Decreasing the value of veto_threshold

    Decreasing the value of the veto_threshold subkey will decrease the proportion of participating voting power required to veto. This will likely:

    1. enable a smaller minority group to prevent proposals from passing, and
    2. decrease the likelihood that contentious proposals will pass.
    # Increasing the value of veto_threshold

    Increasing the value of the veto_threshold subkey will increase the proportion of participating voting power required to veto. This will require a larger minority group to prevent proposals from passing, and will likely increase the likelihood that contentious proposals will pass.

    - +]
  • Proposal 47 (opens new window) change: 64000000 uatom
  • cosmoshub-4 default: 512000000 uatom
  • cosmoshub-3 default: 512000000 uatom
  • Prior to a governance proposal entering the voting period (ie. for the proposal to be voted upon), there must be at least a minimum number of ATOMs deposited. Anyone may contribute to this deposit. Deposits of passed and failed proposals are returned to the contributors. Deposits are burned when proposals 1) expire, 2) fail to reach quorum, or 3) are vetoed. This parameter subkey value represents the minimum deposit required for a proposal to enter the voting period in micro-ATOMs, where 512000000uatom is equivalent to 512 ATOM.

    # Decreasing the value of mindeposit

    Decreasing the value of the mindeposit subkey will enable governance proposals to enter the voting period with fewer ATOMs at risk. This will likely increase the volume of new governance proposals.

    # Increasing the value of mindeposit

    Increasing the value of the mindeposit subkey will require risking a greater number of ATOMs before governance proposals may enter the voting period. This will likely decrease the volume of new governance proposals.

    # max_deposit_period

    The maximum amount of time that a proposal can accept deposit contributions before expiring, in nanoseconds.

    • on-chain value: 1209600000000000
    • cosmoshub-4 default: 1209600000000000
    • cosmoshub-3 default: 1209600000000000

    Prior to a governance proposal entering the voting period, there must be at least a minimum number of ATOMs deposited. This parameter subkey value represents the maximum amount of time that the proposal has to reach the minimum deposit amount before expiring. The maximum amount of time that a proposal can accept deposit contributions before expiring is currently 1209600000000000 nanoseconds or 14 days. If the proposal expires, any deposit amounts will be burned.

    # Decreasing the value of maxdepositperiod

    Decreasing the value of the maxdepositperiod subkey will decrease the time for deposit contributions to governance proposals. This will likely decrease the time that some proposals remain visible and potentially decrease the likelihood that they will enter the voting period. This may increase the likelihood that proposals will expire and have their deposits burned.

    # Increasing the value of maxdepositperiod

    Increasing the value of the maxdepositperiod subkey will extend the time for deposit contributions to governance proposals. This will likely increase the time that some proposals remain visible and potentially increase the likelihood that they will enter the voting period. This may decrease the likelihood that proposals will expire and have their deposits burned.

    # Notes

    Currently most network explorers (eg. Hubble, Big Dipper, Mintscan) give the same visibility to proposals in the deposit period as those in the voting period. This means that a proposal with a small deposit (eg. 0.001 ATOM) will have the same visibility as those with a full 512 ATOM deposit in the voting period.

    # votingparams

    # votingperiod

    The maximum amount of time that a proposal can accept votes before the voting period concludes, in nanoseconds.

    • on-chain value: 1209600000000000
    • cosmoshub-4 default: 1209600000000000
    • cosmoshub-3 default: 1209600000000000

    Once a governance proposal enters the voting period, there is a maximum period of time that may elapse before the voting period concludes. This parameter subkey value represents the maximum amount of time that the proposal has to accept votes, which is currently 1209600000000000 nanoseconds or 14 days. If the proposal vote does not reach quorum ((ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal's outcome will not be considered to be valid. Voters may change their vote any number of times before the voting period ends. This voting period is currently the same for any kind of governance proposal.

    # Decreasing the value of votingperiod

    Decreasing the value of the votingperiod subkey will decrease the time for voting on governance proposals. This will likely:

    1. decrease the proportion of the network that participates in voting, and
    2. decrease the likelihood that quorum will be reached.
    # Increasing the value of votingperiod

    Increasing the value of the votingperiod subkey will increase the time for voting on governance proposals. This may:

    1. increase the proportion of the network that participates in voting, and
    2. increase the likelihood that quorum will be reached.
    # Notes

    Historically, off-chain discussions and engagement appears to be have been greater occurred during the voting period of a governance proposal than when the proposal is posted off-chain as a draft. A non-trivial amount of the voting power has voted in the second week of the voting period. Proposals 23, 19, and 13 each had approximately 80% network participation or more.

    # tallyparams

    # quorum

    The minimum proportion of network voting power required for a governance proposal's outcome to be considered valid.

    • on-chain value: 0.400000000000000000
    • cosmoshub-4 default: 0.400000000000000000
    • cosmoshub-3 default: 0.400000000000000000

    Quorum is required for the outcome of a governance proposal vote to be considered valid and for deposit contributors to recover their deposit amounts, and this parameter subkey value represents the minimum value for quorum. Voting power, whether backing a vote of 'yes', 'abstain', 'no', or 'no-with-veto', counts toward quorum. If the proposal vote does not reach quorum (ie. 40% of the network's voting power is participating) before this time, any deposit amounts will be burned and the proposal outcome will not be considered to be valid.

    # Decreasing the value of quorum

    Decreasing the value of the quorum subkey will enable a smaller proportion of the network to legitimize the outcome of a proposal. This increases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while decreasing the risk that a proposal will be considered invalid. This will likely decrease the risk of a proposal's deposit being burned.

    # Increasing the value of quorum

    Increasing the value of the quorum subkey will require a larger proportion of the network to legitimize the outcome of a proposal. This decreases the risk that a decision will be made with a smaller proportion of ATOM-stakers' positions being represented, while increasing the risk that a proposal will be considered invalid. This will likely increase the risk of a proposal's deposit being burned.

    # threshold

    The minimum proportion of participating voting power required for a governance proposal to pass.

    • on-chain value: 0.500000000000000000
    • cosmoshub-4 default: 0.500000000000000000
    • cosmoshub-3 default: 0.500000000000000000

    A simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass. Though necessary, a simple majority 'yes' vote may not be sufficient to pass a proposal in two scenarios:

    1. Failure to reach quorum of 40% network power or
    2. A 'no-with-veto' vote of 33.4% of participating voting power or greater.

    If a governance proposal passes, deposit amounts are returned to contributors. If a text-based proposal passes, nothing is enacted automatically, but there is a social expectation that participants will co-ordinate to enact the commitments signalled in the proposal. If a parameter change proposal passes, the protocol parameter will automatically change immediately after the voting period ends, and without the need to run new software. If a community-spend proposal passes, the Community Pool balance will decrease by the number of ATOMs indicated in the proposal and the recipient's address will increase by this same number of ATOMs immediately after the voting period ends.

    # Decreasing the value of threshold

    Decreasing the value of the threshold subkey will decrease the proportion of voting power required to pass a proposal. This may:

    1. increase the likelihood that a proposal will pass, and
    2. increase the likelihood that a minority group will effect changes to the network.
    # Increasing the value of threshold

    Increasing the value of the threshold subkey will increase the proportion of voting power required to pass a proposal. This may:

    1. decrease the likelihood that a proposal will pass, and
    2. decrease the likelihood that a minority group will effect changes to the network.

    # veto_threshold

    The minimum proportion of participating voting power to veto (ie. fail) a governance proposal.

    • on-chain value: 0.334000000000000000
    • cosmoshub-4 default: 0.334000000000000000
    • cosmoshub-3 default: 0.334000000000000000

    Though a simple majority 'yes' vote (ie. 50% of participating voting power) is required for a governance proposal vote to pass, a 'no-with-veto' vote of 33.4% of participating voting power or greater can override this outcome and cause the proposal to fail. This enables a minority group representing greater than 1/3 of voting power to fail a proposal that would otherwise pass.

    # Decreasing the value of veto_threshold

    Decreasing the value of the veto_threshold subkey will decrease the proportion of participating voting power required to veto. This will likely:

    1. enable a smaller minority group to prevent proposals from passing, and
    2. decrease the likelihood that contentious proposals will pass.
    # Increasing the value of veto_threshold

    Increasing the value of the veto_threshold subkey will increase the proportion of participating voting power required to veto. This will require a larger minority group to prevent proposals from passing, and will likely increase the likelihood that contentious proposals will pass.

    + diff --git a/main/governance/proposal-types/params-change/Mint.html b/main/governance/proposal-types/params-change/Mint.html index 6f6499ee27d..a2405fb67b7 100644 --- a/main/governance/proposal-types/params-change/Mint.html +++ b/main/governance/proposal-types/params-change/Mint.html @@ -8,14 +8,14 @@ - +

    # mint subspace

    The mint module is responsible for enabling the Cosmos Hub to have a flexible inflation rate that depends upon a bonded stake ratio target. It has the following parameters

    Key Value
    BlocksPerYear 4360000
    GoalBonded 0.670000000000000000
    InflationMax 0.200000000000000000
    InflationMin 0.070000000000000000
    InflationRateChange 1.000000000000000000
    MintDenom uatom

    The mint module was designed to allow for a flexible inflation rate determined by market demand targeting a particular bonded-stake ratio, and effect a balance between market liquidity and staked supply.

    In order to best determine the appropriate market rate for inflation rewards, a moving change rate is used. The moving change rate mechanism ensures that if the % bonded is either over or under the goal %-bonded, the inflation rate will adjust to further incentivize or disincentivize being bonded, respectively. Setting the goal %-bonded at less than 100% encourages the network to maintain some non-staked tokens in order to help provide some liquidity.

    It can be broken down in the following way:

    • If the inflation rate is below the goal %-bonded the inflation rate will increase until a maximum value is reached
    • If the goal % bonded (67% in Cosmos-Hub) is maintained, then the inflation rate will stay constant
    • If the inflation rate is above the goal %-bonded the inflation rate will decrease until a minimum value is reached

    # Governance notes on parameters

    # MintDenom

    Type of asset/coin that the Cosmos Hub mints.

    • on-chain value uatom
    • cosmoshub-4 default: uatom
    • cosmoshub-3 default: uatom

    This is the type of asset (aka coin) that is being minted. The Cosmos Hub produces uatom, or micro-ATOM, where 1,000,000 uatom is equivalent to 1 ATOM.

    # Changing the MintDenom parameter

    Changing the MintDenom will change the asset that the Cosmos Hub mints from the ATOM. This is likely to disrupt the functionality of applications and the expectations of staking participants.

    # InflationRateChange

    A factor of and limit to the speed at which the Cosmos Hub's inflation rate changes.

    • on-chain value: 1.000000000000000000
    • Proposal 48 (opens new window) change to 1.000000000000000000
    • cosmoshub-4 default: 0.130000000000000000
    • cosmoshub-3 default: 0.130000000000000000

    Cosmos Hub's inflation rate can change faster or slower, depending on staking participation, and is limited to a minimum of 7% and maximum of 20%. The inflation rate cannot increase or decrease faster than 13% per year (InflationRateChange). The speed that the inflation rate changes depends upon two things:

    1. how far away the current staking participation ratio is from GoalBonded (67%)
    2. the value of InflationRateChange, which is 1.000000000000000000
    Copy inflationRateChangePerYear = (1 - bondedRatio/params.GoalBonded) * params.InflationRateChange -

    The source for this information can be found here (opens new window).

    The inflation rate increases when under 67% of the token supply is staking, and it will take less time to reach the maximum of rate of 20% inflation if (for example) 30% of the token supply is staking than if 50% is staking.

    # Decreasing the value of InflationRateChange

    Decreasing the value of the InflationRateChange parameter will decrease both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take longer for inflation to reach InflationMin or InflationMax. This may lessen the response of staking behaviour to the incentive mechanism described in the notes below.

    # Increasing the value of InflationRateChange

    Increasing the value of the InflationRateChange parameter will increase both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take less time for inflation to reach InflationMin or InflationMax. This may quicken the response of staking behaviour to the incentive mechanism described in the notes below.

    # Notes

    Example: if the current staking participation ratio (aka "bond ratio") is 73%, then this is the calculation for speed that the inflation rate will change:

    (1 - 73%/67%) * 13% = -1.16% per year

    This means that if the staking participation rate stays the same, the inflation rate will decrease by 1.16% over the course of one year, during which time the Hub's inflation rate will decrease by about 0.1% per month.

    If InflationRateChange is 26% and the current staking participation ratio (aka "bond ratio") is 73%, then the inflation will decrease by 2.33% over the course of one year, during which time inflation will decrease by about 0.19% per month.

    The Cosmos Hub's inflation rate is tied to its staking participation ratio in order to make staking more or less desirable, since most of the Hub's inflation is used to fund staking rewards. If the speed of inflation responds more strongly to staking participation, it could be that staking behaviour will also respond more strongly.

    # InflationMax

    The maximum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.

    • on-chain value: 0.200000000000000000
    • cosmoshub-4 default: 0.200000000000000000
    • cosmoshub-3 default: 0.200000000000000000

    The maximum rate that the Cosmos Hub can be set to mint new ATOMs is determined by InflationMax, which is 20% (0.200000000000000000) of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see BlocksPerYear). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains below GoalBonded(67%) for long enough, its inflation setting will eventually reach this maximum.

    # Decreasing the value of InflationMax

    Decreasing the value of the InflationMax parameter will lower the maximum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.

    # Increasing the value of InflationMax

    Increasing the value of the InflationMax parameter will raise the maximum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.

    # Notes

    The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.

    # InflationMin

    The minimum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.

    • on-chain value: 0.070000000000000000
    • cosmoshub-4 default: 0.070000000000000000
    • cosmoshub-3 default: 0.070000000000000000

    The minimum rate that the Cosmos Hub can be set to mint new ATOMs is determined by InflationMin, which is 7% (0.070000000000000000) of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see BlocksPerYear). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains above GoalBonded(67%) for long enough, its inflation setting will eventually reach this minimum.

    # Decreasing the value of InflationMin

    Decreasing the value of the InflationMin parameter will lower the minimum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.

    # Increasing the value of InflationMin

    Increasing the value of the InflationMin parameter will raise the minimum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.

    # Notes

    The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.

    # GoalBonded

    The target proportion of staking participation, relative to the ATOM supply.

    • on-chain value: 0.670000000000000000
    • cosmoshub-4 default: 0.670000000000000000
    • cosmoshub-3 default: 0.670000000000000000

    GoalBonded is the target proportion of staking participation, relative to the ATOM supply. Currently the goal of the system's design is to have 67% (0.670000000000000000) of the total ATOM supply bonded and participating in staking. When over 67% of the supply is staked, the inflation set rate begins decreasing at a maximum yearly rate of InflationRateChange until it reaches and remains at the InflationMin of 7%. When under 67% of the supply is staked, the inflation set rate begins increasing at a maximum yearly rate of InflationRateChange until it reaches and remains at the InflationMax of 20%.

    # Decreasing the value of GoalBonded

    Decreasing the value of the GoalBonded parameter will cause the Cosmos Hub's inflation setting to begin decreasing at a lower participation rate, and this may reduce the incentive for staking participation.

    # Increasing the value of GoalBonded

    Increasing the value of the GoalBonded parameter will cause the Cosmos Hub's inflation setting to begin increasing at a lower participation rate, and this may increase the incentive for staking participation.

    # BlocksPerYear

    The system's assumed number of blocks that the Cosmos Hub will produce in one year.

    BlocksPerYear is the setting for the system's assumed number of blocks that the Cosmos Hub will produce in one year. BlocksPerYear is currently {{ $themeConfig.currentParameters.mint.BlocksPerYear } and the network's inflationary behaviour will be aligned with its settings when the average block time is 7.24 seconds (see Proposal 30 (opens new window)) seconds over one year. BlocksPerYear is most notably used in by the system to determine the rate that new ATOMs are minted, which can vary if block times vary from 6.50 seconds per block, since effectively a different number of blocks will be produced in one year and ATOMs are minted each block.

    # Changing the BlocksPerYear parameter

    Changing the BlocksPerYear parameter will change the assumption that system makes about how many Cosmos Hub blocks will be produced per year. If block times are greater than 6.50 seconds, then this parameter should be decreased to make the Cosmos Hub's inflationary behaviour more aligned with its settings. If block times are less than 6.50 seconds, then this parameter should be increased to make the Cosmos Hub's behaviour more aligned with its settings.

    # Notes

    The calculation for seconds in one year:

    365.24 (days) * 24 (hours) * 60 (minutes) * 60 (seconds) = 31556736 seconds

    Example: If block times are 7.12 seconds per block and 31556736 seconds per year:

    31556736 / 7.12 = ~4432126 blocks per year

    - +

    The source for this information can be found here (opens new window).

    The inflation rate increases when under 67% of the token supply is staking, and it will take less time to reach the maximum of rate of 20% inflation if (for example) 30% of the token supply is staking than if 50% is staking.

    # Decreasing the value of InflationRateChange

    Decreasing the value of the InflationRateChange parameter will decrease both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take longer for inflation to reach InflationMin or InflationMax. This may lessen the response of staking behaviour to the incentive mechanism described in the notes below.

    # Increasing the value of InflationRateChange

    Increasing the value of the InflationRateChange parameter will increase both how fast the inflation rate changes and also the maximum speed that it can potentially change. It will then take less time for inflation to reach InflationMin or InflationMax. This may quicken the response of staking behaviour to the incentive mechanism described in the notes below.

    # Notes

    Example: if the current staking participation ratio (aka "bond ratio") is 73%, then this is the calculation for speed that the inflation rate will change:

    (1 - 73%/67%) * 13% = -1.16% per year

    This means that if the staking participation rate stays the same, the inflation rate will decrease by 1.16% over the course of one year, during which time the Hub's inflation rate will decrease by about 0.1% per month.

    If InflationRateChange is 26% and the current staking participation ratio (aka "bond ratio") is 73%, then the inflation will decrease by 2.33% over the course of one year, during which time inflation will decrease by about 0.19% per month.

    The Cosmos Hub's inflation rate is tied to its staking participation ratio in order to make staking more or less desirable, since most of the Hub's inflation is used to fund staking rewards. If the speed of inflation responds more strongly to staking participation, it could be that staking behaviour will also respond more strongly.

    # InflationMax

    The maximum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.

    • on-chain value: 0.200000000000000000
    • cosmoshub-4 default: 0.200000000000000000
    • cosmoshub-3 default: 0.200000000000000000

    The maximum rate that the Cosmos Hub can be set to mint new ATOMs is determined by InflationMax, which is 20% (0.200000000000000000) of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see BlocksPerYear). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains below GoalBonded(67%) for long enough, its inflation setting will eventually reach this maximum.

    # Decreasing the value of InflationMax

    Decreasing the value of the InflationMax parameter will lower the maximum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.

    # Increasing the value of InflationMax

    Increasing the value of the InflationMax parameter will raise the maximum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.

    # Notes

    The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.

    # InflationMin

    The minimum rate that the Cosmos Hub can mint new ATOMs, proportional to the supply.

    • on-chain value: 0.070000000000000000
    • cosmoshub-4 default: 0.070000000000000000
    • cosmoshub-3 default: 0.070000000000000000

    The minimum rate that the Cosmos Hub can be set to mint new ATOMs is determined by InflationMin, which is 7% (0.070000000000000000) of the ATOM supply per year and based on the assumption that there are 4,855,015 blocks produced per year (see BlocksPerYear). If the Cosmos Hub's staking ratio (ie. the number of ATOMs staked vs total supply) remains above GoalBonded(67%) for long enough, its inflation setting will eventually reach this minimum.

    # Decreasing the value of InflationMin

    Decreasing the value of the InflationMin parameter will lower the minimum rate that the Cosmos Hub produces new ATOMs and reduce the rate at which the ATOM supply expands. This will reduce the rate at which token-holders' assets are diluted and may reduce the incentive for staking participation.

    # Increasing the value of InflationMin

    Increasing the value of the InflationMin parameter will raise the minimum rate that the Cosmos Hub produces new ATOMs and raise the rate at which the ATOM supply expands. This will increase the rate at which token-holders' assets are diluted and may increase the incentive for staking participation.

    # Notes

    The effective rate of inflation tends to be different than the set rate of inflation because inflation is dependent upon the number of blocks produced per year. If blocks are produced more slowly than 6.50 seconds per block, then fewer than the assumed 4,855,015 will be produced per year, and effectively inflation will be lower than the set rate. If blocks are produced more quickly than 6.50 seconds per block, then more than the assumed 4,855,015 will be produced per year, and effectively inflation will be higher than the set rate.

    # GoalBonded

    The target proportion of staking participation, relative to the ATOM supply.

    • on-chain value: 0.670000000000000000
    • cosmoshub-4 default: 0.670000000000000000
    • cosmoshub-3 default: 0.670000000000000000

    GoalBonded is the target proportion of staking participation, relative to the ATOM supply. Currently the goal of the system's design is to have 67% (0.670000000000000000) of the total ATOM supply bonded and participating in staking. When over 67% of the supply is staked, the inflation set rate begins decreasing at a maximum yearly rate of InflationRateChange until it reaches and remains at the InflationMin of 7%. When under 67% of the supply is staked, the inflation set rate begins increasing at a maximum yearly rate of InflationRateChange until it reaches and remains at the InflationMax of 20%.

    # Decreasing the value of GoalBonded

    Decreasing the value of the GoalBonded parameter will cause the Cosmos Hub's inflation setting to begin decreasing at a lower participation rate, and this may reduce the incentive for staking participation.

    # Increasing the value of GoalBonded

    Increasing the value of the GoalBonded parameter will cause the Cosmos Hub's inflation setting to begin increasing at a lower participation rate, and this may increase the incentive for staking participation.

    # BlocksPerYear

    The system's assumed number of blocks that the Cosmos Hub will produce in one year.

    BlocksPerYear is the setting for the system's assumed number of blocks that the Cosmos Hub will produce in one year. BlocksPerYear is currently {{ $themeConfig.currentParameters.mint.BlocksPerYear } and the network's inflationary behaviour will be aligned with its settings when the average block time is 7.24 seconds (see Proposal 30 (opens new window)) seconds over one year. BlocksPerYear is most notably used in by the system to determine the rate that new ATOMs are minted, which can vary if block times vary from 6.50 seconds per block, since effectively a different number of blocks will be produced in one year and ATOMs are minted each block.

    # Changing the BlocksPerYear parameter

    Changing the BlocksPerYear parameter will change the assumption that system makes about how many Cosmos Hub blocks will be produced per year. If block times are greater than 6.50 seconds, then this parameter should be decreased to make the Cosmos Hub's inflationary behaviour more aligned with its settings. If block times are less than 6.50 seconds, then this parameter should be increased to make the Cosmos Hub's behaviour more aligned with its settings.

    # Notes

    The calculation for seconds in one year:

    365.24 (days) * 24 (hours) * 60 (minutes) * 60 (seconds) = 31556736 seconds

    Example: If block times are 7.12 seconds per block and 31556736 seconds per year:

    31556736 / 7.12 = ~4432126 blocks per year

    + diff --git a/main/governance/proposal-types/params-change/Slashing.html b/main/governance/proposal-types/params-change/Slashing.html index 79a98b36979..bcd635c9006 100644 --- a/main/governance/proposal-types/params-change/Slashing.html +++ b/main/governance/proposal-types/params-change/Slashing.html @@ -8,11 +8,11 @@ - + -

    # slashing subspace

    The slashing module is responsible for enabling the Cosmos Hub to penalize any validator for an attributable violation of protocol rules by slashing (ie. partially destroying) the bonded ATOMs of their stake-backing. Penalties may include a) burning some amount of a staked bond and b) removing the ability to vote on future blocks and governance proposals for a period of time. Parameters include:

    Key Value
    DowntimeJailDuration 600000000000
    MinSignedPerWindow 0.050000000000000000
    SignedBlocksWindow 10000
    SlashFractionDoubleSign 0.050000000000000000
    SlashFractionDowntime 0.000100000000000000

    # Governance notes on parameters

    # SignedBlocksWindow

    Window for being offline without being slashed, in blocks.

    • on-chain value: 10000
    • cosmoshub-4 default: 0.200000000000000000
    • cosmoshub-3 default: 0.200000000000000000

    If a validator in the active set is offline for too long, the validator will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least the DowntimeJailDuration, which is 10 minutes.

    How long is being offline for too long? There are two components: SignedBlocksWindow and MinSignedPerWindow. Since MinSignedPerWindow is 5% and SignedBlocksWindow is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The time window for being offline without breaking system rules is proportional to this parameter.

    More about liveness here (opens new window).

    # Decreasing the value of SignedBlocksWindow

    Decreasing the value of the SignedBlocksWindow parameter will decrease the window for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration. While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.

    Example:

    If we pass a proposal to cut SignedBlocksWindow in half from 10,000 to 5,000 blocks, what happens?

    Validators must now sign at least 5% of 5,000 blocks, which is 250 blocks. That means that a validator that misses 4,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~9.25 hours instead of ~18.5 hours, assuming 7s block times.

    # Increasing the value of SignedBlocksWindow

    Increasing the value of the SignedBlocksWindow parameter will increase the window for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration.

    Example:

    If we pass a proposal to double SignedBlocksWindow from 10,000 to 20,000 blocks, what happens?

    Validators must now sign at least 5% of 20,000 blocks, which is 1000 blocks. That means that a validator that misses 19,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~37 hours instead of ~18.5 hours, assuming 7s block times.

    # MinSignedPerWindow

    Minimum proportion of blocks signed per window without being slashed.

    • on-chain value: 0.050000000000000000
    • cosmoshub-4 default: 0.050000000000000000
    • cosmoshub-3 default: 0.050000000000000000

    If a validator in the active set is offline for too long, the validator will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least the DowntimeJailDuration, which is 10 minutes.

    How long is being offline for too long? There are two components: SignedBlocksWindow and MinSignedPerWindow. Since MinSignedPerWindow is 5% and SignedBlocksWindow is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The threshold-proportion of blocks is determined by this parameter, so the greater that MinSignedPerWindow is, the lower the tolerance for missed blocks by the system.

    More about liveness here (opens new window).

    # Decreasing the value of MinSignedPerWindow

    Decreasing the value of the MinSignedPerWindow parameter will increase the threshold for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration. While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.

    Example:

    If we pass a proposal to cut MinSignedPerWindow in half from 0.050000000000000000 (5%) to 0.025000000000000000 (2.5%), what happens?

    Validators must now sign at least 2.5% of 10,000 blocks, which is 250 blocks. That means that a validator that misses 9,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~19 hours instead of ~18.5 hours, assuming 7s block times.

    # Increasing the value of MinSignedPerWindow

    Increasing the value of the MinSignedPerWindow parameter will decrease the threshold for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration. While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.

    Example:

    If we pass a proposal to double the MinSignedPerWindow from 0.050000000000000000 (5%) to 0.100000000000000000 (10%), what happens?

    Validators must now sign at least 10% of 10,000 blocks, which is 1000 blocks. That means that a validator that misses 9,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~17.5 hours instead of ~18.5 hours, assuming 7s block times.

    # DowntimeJailDuration

    The suspension time (aka jail time) for a validator that is offline too long, in nanoseconds.

    • on-chain value: 600000000000
    • cosmoshub-4 default: 600000000000
    • cosmoshub-3 default: 600000000000

    A validator in the active set that's offline for too long, besides being slashed, will be temporarily removed from the active set (aka "jailed (opens new window)") for at least DowntimeJailDuration, which is 10 minutes (600000000000 nanoseconds). During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards. After the DowntimeJailDuration period has passed, the validator operator may send an "unjail (opens new window)" transaction to resume validator operations.

    More about liveness here (opens new window).

    # Decreasing the value of DowntimeJailDuration

    Decreasing the value of the DowntimeJailDuration parameter will require a validator to wait less time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.

    # Increasing the value of DowntimeJailDuration

    Increasing the value of the DowntimeJailDuration parameter will require a validator to wait more time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.

    # SlashFractionDoubleSign

    Proportion of stake-backing that is bruned for equivocation (aka double-signing).

    • on-chain value: 0.050000000000000000
    • cosmoshub-4 default: 0.050000000000000000
    • cosmoshub-3 default: 0.050000000000000000

    A validator proven to have signed two blocks at the same height is considered to have committed equivocation, and the system will then permanently burn ("slash") that validator's total delegations (aka stake-backing) by 0.050000000000000000 (5%). All delegators to an offending validator will lose 5% of all ATOMs delegated to this validator. At this point the validator will be "tombstoned (opens new window)," which means the validator will be permanently removed from the active set of validators, and the validator's stake-backing will only be slashed one time (regardless of how many equivocations).

    # Decreasing the value of SlashFractionDoubleSign

    Decreasing the value of the SlashFractionDoubleSign parameter will lessen the penalty for equivocation, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are secure.

    # Increasing the value of SlashFractionDoubleSign

    Increasing the value of the SlashFractionDoubleSign parameter will heighten the penalty for equivocation, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are secure.

    # SlashFractionDowntime

    Proportion of stake that is slashed for being offline too long.

    • on-chain value: 0.000100000000000000
    • cosmoshub-4 default: 0.000100000000000000
    • cosmoshub-3 default: 0.000100000000000000

    If a validator in the active set is offline for too long, the system will permanently burn ("slash") that validator's total delegations (aka stake-backing) by a SlashFractionDowntime of 0.000100000000000000 (0.01%). All delegators to an offending validator will lose 0.01% of all ATOMs delegated to this validator. At this point the validator will be "jailed (opens new window)," which means the validator will be temporarily removed from the active set of validators so the validator's stake-backing will only be slashed one time.

    # Decreasing the value of SlashFractionDowntime

    Decreasing the value of the SlashFractionDowntime parameter will lessen the penalty for liveness violations, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are online.

    # Increasing the value of SlashFractionDowntime

    Increasing the value of the SlashFractionDowntime parameter will heighten the penalty for liveness violations, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are online.

    # MaxEvidenceAge

    • deprecated in cosmoshub-4
    • cosmoshub-3 default: 1814400000000000

    This parameter was present in cosmoshub-3, but was deprecated (opens new window) for cosmoshub-4 genesis.

    - +

    # slashing subspace

    The slashing module is responsible for enabling the Cosmos Hub to penalize any validator for an attributable violation of protocol rules by slashing (ie. partially destroying) the bonded ATOMs of their stake-backing. Penalties may include a) burning some amount of a staked bond and b) removing the ability to vote on future blocks and governance proposals for a period of time. Parameters include:

    Key Value
    DowntimeJailDuration 600000000000
    MinSignedPerWindow 0.050000000000000000
    SignedBlocksWindow 10000
    SlashFractionDoubleSign 0.050000000000000000
    SlashFractionDowntime 0.000100000000000000

    # Governance notes on parameters

    # SignedBlocksWindow

    Window for being offline without being slashed, in blocks.

    • on-chain value: 10000
    • cosmoshub-4 default: 0.200000000000000000
    • cosmoshub-3 default: 0.200000000000000000

    If a validator in the active set is offline for too long, the validator will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least the DowntimeJailDuration, which is 10 minutes.

    How long is being offline for too long? There are two components: SignedBlocksWindow and MinSignedPerWindow. Since MinSignedPerWindow is 5% and SignedBlocksWindow is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The time window for being offline without breaking system rules is proportional to this parameter.

    More about liveness here (opens new window).

    # Decreasing the value of SignedBlocksWindow

    Decreasing the value of the SignedBlocksWindow parameter will decrease the window for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration. While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.

    Example:

    If we pass a proposal to cut SignedBlocksWindow in half from 10,000 to 5,000 blocks, what happens?

    Validators must now sign at least 5% of 5,000 blocks, which is 250 blocks. That means that a validator that misses 4,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~9.25 hours instead of ~18.5 hours, assuming 7s block times.

    # Increasing the value of SignedBlocksWindow

    Increasing the value of the SignedBlocksWindow parameter will increase the window for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration.

    Example:

    If we pass a proposal to double SignedBlocksWindow from 10,000 to 20,000 blocks, what happens?

    Validators must now sign at least 5% of 20,000 blocks, which is 1000 blocks. That means that a validator that misses 19,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~37 hours instead of ~18.5 hours, assuming 7s block times.

    # MinSignedPerWindow

    Minimum proportion of blocks signed per window without being slashed.

    • on-chain value: 0.050000000000000000
    • cosmoshub-4 default: 0.050000000000000000
    • cosmoshub-3 default: 0.050000000000000000

    If a validator in the active set is offline for too long, the validator will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least the DowntimeJailDuration, which is 10 minutes.

    How long is being offline for too long? There are two components: SignedBlocksWindow and MinSignedPerWindow. Since MinSignedPerWindow is 5% and SignedBlocksWindow is 10,000, a validator must have signed at least 5% of 10,000 blocks (500 out of 10,000) at any given time to comply with protocol rules. That means a validator that misses 9,500 consecutive blocks will be considered by the system to have committed a liveness violation. The threshold-proportion of blocks is determined by this parameter, so the greater that MinSignedPerWindow is, the lower the tolerance for missed blocks by the system.

    More about liveness here (opens new window).

    # Decreasing the value of MinSignedPerWindow

    Decreasing the value of the MinSignedPerWindow parameter will increase the threshold for complying with the system's liveness rules. This will make it less likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration. While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.

    Example:

    If we pass a proposal to cut MinSignedPerWindow in half from 0.050000000000000000 (5%) to 0.025000000000000000 (2.5%), what happens?

    Validators must now sign at least 2.5% of 10,000 blocks, which is 250 blocks. That means that a validator that misses 9,750 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~19 hours instead of ~18.5 hours, assuming 7s block times.

    # Increasing the value of MinSignedPerWindow

    Increasing the value of the MinSignedPerWindow parameter will decrease the threshold for complying with the system's liveness rules. This will make it more likely that offline validators will be slashed by SlashFractionDowntime and temporarily removed from the active set for at least DowntimeJailDuration. While out of the active set, the votes of the validator and its delegators do not count toward governance proposals.

    Example:

    If we pass a proposal to double the MinSignedPerWindow from 0.050000000000000000 (5%) to 0.100000000000000000 (10%), what happens?

    Validators must now sign at least 10% of 10,000 blocks, which is 1000 blocks. That means that a validator that misses 9,000 consecutive blocks will be considered by the system to have committed a liveness violation, where previously 9,500 consecutive blocks would need to have been missed to violate these system rules.

    That's ~17.5 hours instead of ~18.5 hours, assuming 7s block times.

    # DowntimeJailDuration

    The suspension time (aka jail time) for a validator that is offline too long, in nanoseconds.

    • on-chain value: 600000000000
    • cosmoshub-4 default: 600000000000
    • cosmoshub-3 default: 600000000000

    A validator in the active set that's offline for too long, besides being slashed, will be temporarily removed from the active set (aka "jailed (opens new window)") for at least DowntimeJailDuration, which is 10 minutes (600000000000 nanoseconds). During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards. After the DowntimeJailDuration period has passed, the validator operator may send an "unjail (opens new window)" transaction to resume validator operations.

    More about liveness here (opens new window).

    # Decreasing the value of DowntimeJailDuration

    Decreasing the value of the DowntimeJailDuration parameter will require a validator to wait less time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.

    # Increasing the value of DowntimeJailDuration

    Increasing the value of the DowntimeJailDuration parameter will require a validator to wait more time before resuming validator operations. During this time, a validator is not able to sign blocks and its delegators will not earn staking rewards.

    # SlashFractionDoubleSign

    Proportion of stake-backing that is bruned for equivocation (aka double-signing).

    • on-chain value: 0.050000000000000000
    • cosmoshub-4 default: 0.050000000000000000
    • cosmoshub-3 default: 0.050000000000000000

    A validator proven to have signed two blocks at the same height is considered to have committed equivocation, and the system will then permanently burn ("slash") that validator's total delegations (aka stake-backing) by 0.050000000000000000 (5%). All delegators to an offending validator will lose 5% of all ATOMs delegated to this validator. At this point the validator will be "tombstoned (opens new window)," which means the validator will be permanently removed from the active set of validators, and the validator's stake-backing will only be slashed one time (regardless of how many equivocations).

    # Decreasing the value of SlashFractionDoubleSign

    Decreasing the value of the SlashFractionDoubleSign parameter will lessen the penalty for equivocation, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are secure.

    # Increasing the value of SlashFractionDoubleSign

    Increasing the value of the SlashFractionDoubleSign parameter will heighten the penalty for equivocation, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are secure.

    # SlashFractionDowntime

    Proportion of stake that is slashed for being offline too long.

    • on-chain value: 0.000100000000000000
    • cosmoshub-4 default: 0.000100000000000000
    • cosmoshub-3 default: 0.000100000000000000

    If a validator in the active set is offline for too long, the system will permanently burn ("slash") that validator's total delegations (aka stake-backing) by a SlashFractionDowntime of 0.000100000000000000 (0.01%). All delegators to an offending validator will lose 0.01% of all ATOMs delegated to this validator. At this point the validator will be "jailed (opens new window)," which means the validator will be temporarily removed from the active set of validators so the validator's stake-backing will only be slashed one time.

    # Decreasing the value of SlashFractionDowntime

    Decreasing the value of the SlashFractionDowntime parameter will lessen the penalty for liveness violations, and offending validators will have a smaller proportion of their stake-backing burned. This may reduce the motivation for operators to ensure that their validators are online.

    # Increasing the value of SlashFractionDowntime

    Increasing the value of the SlashFractionDowntime parameter will heighten the penalty for liveness violations, and offending validators will have a larger proportion of their stake-backing burned. This may increase the motivation for operators to ensure that their validators are online.

    # MaxEvidenceAge

    • deprecated in cosmoshub-4
    • cosmoshub-3 default: 1814400000000000

    This parameter was present in cosmoshub-3, but was deprecated (opens new window) for cosmoshub-4 genesis.

    + diff --git a/main/governance/proposal-types/params-change/Staking.html b/main/governance/proposal-types/params-change/Staking.html index f2c9af922c4..a74ed7b21fe 100644 --- a/main/governance/proposal-types/params-change/Staking.html +++ b/main/governance/proposal-types/params-change/Staking.html @@ -8,11 +8,11 @@ - + -

    # staking subspace

    The staking module is responsible for the proof of stake (PoS) layer of the Cosmos Hub blockchain. It includes the following parameters:

    Key Value
    BondDenom uatom
    HistoricalEntries 10000
    MaxEntries 7
    MaxValidators 125
    UnbondingTime 1814400000000000

    The staking module is responsible for supporting an advanced Proof of Stake (PoS) system. In this system, holders of the native staking token of the chain can become validators and can delegate tokens to validators, ultimately determining the effective validator set for the system.

    # Governance notes on parameters

    # UnbondingTime

    The time duration required for bonded ATOMs to unbond and become transferrable, in nanoseconds.

    • on-chain value: 1814400000000000
    • cosmoshub-4 default: 1814400000000000
    • cosmoshub-3 default: 1814400000000000

    In order to participate as a Cosmos Hub validator or delegator, ATOMs must be bonded (also known as staking). Once bonded, ATOMs are locked by the protocol and are no longer transferrable. When ATOM unbonding is initiated, the UnbondingTime of 1814400000000000 nanoseconds (21 days) duration must pass before the ATOMs will be unlocked and transferrable.

    ATOMs are used as a bond when staking. A bond may be slashed (ie. partially destroyed) when a validator has been proven to have broken protocol rules. Why? Primarily as a solution to the "nothing-at-stake (opens new window)" problem. In the scenario of an accidental or malicious attempt to rewrite history and reverse a transaction, a new chain ("fork") may be created in parallel with the primary chain. Without the risk of losing this bond, the optimal strategy for any validator is to validate blocks on both chains so that the validator gets their reward no matter which fork wins. A bond makes it more likely that the optimal strategy for validators will be to only validate blocks for the true ("canonical") chain.

    Why is UnbondingTime so long? It can take time to discover that a validator has committed equivocation ie. signed two blocks at the same block height. If a validator commits equivocation and then unbonds before being caught, the protocol can no longer slash (ie. partially destroy) the validator's bond.

    # Decreasing the value of UnbondingTime

    Decreasing the value of the UnbondingTime parameter will reduce the time it takes to unbond ATOMs. This will make it less likely for a validator's bond to be slashed after committing equivocation (aka double-signing).

    # Increasing the value of UnbondingTime

    Increasing the value of the UnbondingTime parameter will increase the time it takes to unbond ATOMs. This will make it more likely for a validator's bond to be slashed after committing equivocation (aka double-signing).

    # Notes

    The ability to punish a validator for committing equivocation is associated with the strength of the protocol's security guarantees.

    1 second is equal to 1,000,000,000 nanoseconds.

    # MaxValidators

    The maximum number of validators that may participate in validating blocks, earning rewards, and governance voting.

    • on-chain value: 125
    • cosmoshub-4 default: 125
    • cosmoshub-3 default: 125

    Validators are ranked by stake-backing based upon the sum of their delegations, and only the top 125 are designated to be active (aka "the active set"). The active set may change any time delegation amounts change. Only active validators may participate in validating blocks, earning rewards, and governance voting. ATOM-holders may participate in staking by delegating their bonded ATOMs to one or more validators in the active set. Delegators may only earn rewards and have their governance votes count if they are delegating to an active validator, the set of which is capped by MaxValidators.

    # Decreasing the value of MaxValidators

    Decreasing the value of the MaxValidators parameter will likely reduce the number of validators actively participating in validating blocks, earning rewards, and governance voting for the Cosmos Hub. This may decrease the time it takes to produce each new Cosmos Hub block.

    # Increasing the value of MaxValidators

    Increasing the value of the MaxValidators parameter will likely increase the number of validators actively participating in validating blocks, earning rewards, and governance voting for the Cosmos Hub. This may increase the time it takes to produce each new Cosmos Hub block.

    # Notes

    Prior to cosmoshub-3, the Cosmos Hub had a maximum set of 100 active validators. Text-based governance proposal Prop10 (opens new window) signalled agreement that the active set be increased to 125 validators. Block times were ~6.94 seconds/block with 100 validators, and are now ~7.08 seconds/block with 125 validators.

    It may be argued that after the Cosmos creators, the validator cohort may be the largest group of contributors to the Cosmos Hub community. Changes to the number of active validator participants may also affect the non-validator contributions to the Cosmos Hub.

    # KeyMaxEntries

    • The maximum number of unbondings between a delegator and validator within the unbonding period.

    • A delegator's maximum number of simultaneous redelegations from one validator to another validator within the unbonding period.

    • on-chain value:

    • cosmoshub-4 default: 7

    • cosmoshub-3 default: 7

    Each delegator has a limited number of times that they may unbond ATOM amounts from a unique validator within the unbonding period. Each delegator also has a limited number of times that they may redelegate from one unique validator to another unique validator within the unbonding period. This limit is set by the parameter KeyMaxEntries, which is currently 7. To be clear, this limit does not apply to a delegator that is redelegating from one validator to different validators.

    # Decreasing the value of KeyMaxEntries

    Decreasing the value of the KeyMaxEntries parameter will, within the unbonding period, decrease the number of times that a delegator may unbond ATOM amounts from a single, unique validator. It will also decrease the number of redelegations a delegator may initiate between two unique validators. Since this activity across many accounts can affect the performance of the Cosmos Hub, decreasing this parameter's value decreases the likelihood of a performance reduction in the network.

    # Increasing the value of KeyMaxEntries

    Increasing the value of the KeyMaxEntries parameter will, within the unbonding period, increase the number of times that a delegator may unbond ATOM amounts from a single, unique validator. It will also increase the number of redelegations a delegator may initiate between two unique validators. Since this activity across many accounts can affect the performance of the Cosmos Hub, increasing this parameter's value may increase the likelihood of a performance reduction in the network.

    # Notes

    Aleksandr (All in Bits; Fission Labs) wrote more about KeyMaxEntries here in this article (opens new window).

    # BondDenom

    The unit and denomination for the asset bonded in the system.

    • on-chain value: uatom
    • cosmoshub-4 default: uatom
    • cosmoshub-3 default: uatom

    When using an asset as a bond on the Cosmos Hub, the unit and denomination of the asset is denoted as the uatom, or micro-ATOM, where 1 ATOM is considered 1000000uatom. The protocol doesn't use ATOM for bonds, only uatom.

    # Changing the value of BondDenom

    Changing the BondDenom parameter will make any bond transactions with uatom fail and will require the new BondDenom parameter string in order for bond transactions to be successful. Changing this parameter is likely to have breaking changes for applications that offer staking and delegation functionality.

    # HistoricalEntries

    The number of HistoricalEntries to keep.

    • on-chain value: 10000
    • cosmoshub-4 default: 10000
    • Did not exist in cosmoshub-3 genesis

    Read ADR-17 (opens new window) for more on the Historical Header Module.

    - +

    # staking subspace

    The staking module is responsible for the proof of stake (PoS) layer of the Cosmos Hub blockchain. It includes the following parameters:

    Key Value
    BondDenom uatom
    HistoricalEntries 10000
    MaxEntries 7
    MaxValidators 125
    UnbondingTime 1814400000000000

    The staking module is responsible for supporting an advanced Proof of Stake (PoS) system. In this system, holders of the native staking token of the chain can become validators and can delegate tokens to validators, ultimately determining the effective validator set for the system.

    # Governance notes on parameters

    # UnbondingTime

    The time duration required for bonded ATOMs to unbond and become transferrable, in nanoseconds.

    • on-chain value: 1814400000000000
    • cosmoshub-4 default: 1814400000000000
    • cosmoshub-3 default: 1814400000000000

    In order to participate as a Cosmos Hub validator or delegator, ATOMs must be bonded (also known as staking). Once bonded, ATOMs are locked by the protocol and are no longer transferrable. When ATOM unbonding is initiated, the UnbondingTime of 1814400000000000 nanoseconds (21 days) duration must pass before the ATOMs will be unlocked and transferrable.

    ATOMs are used as a bond when staking. A bond may be slashed (ie. partially destroyed) when a validator has been proven to have broken protocol rules. Why? Primarily as a solution to the "nothing-at-stake (opens new window)" problem. In the scenario of an accidental or malicious attempt to rewrite history and reverse a transaction, a new chain ("fork") may be created in parallel with the primary chain. Without the risk of losing this bond, the optimal strategy for any validator is to validate blocks on both chains so that the validator gets their reward no matter which fork wins. A bond makes it more likely that the optimal strategy for validators will be to only validate blocks for the true ("canonical") chain.

    Why is UnbondingTime so long? It can take time to discover that a validator has committed equivocation ie. signed two blocks at the same block height. If a validator commits equivocation and then unbonds before being caught, the protocol can no longer slash (ie. partially destroy) the validator's bond.

    # Decreasing the value of UnbondingTime

    Decreasing the value of the UnbondingTime parameter will reduce the time it takes to unbond ATOMs. This will make it less likely for a validator's bond to be slashed after committing equivocation (aka double-signing).

    # Increasing the value of UnbondingTime

    Increasing the value of the UnbondingTime parameter will increase the time it takes to unbond ATOMs. This will make it more likely for a validator's bond to be slashed after committing equivocation (aka double-signing).

    # Notes

    The ability to punish a validator for committing equivocation is associated with the strength of the protocol's security guarantees.

    1 second is equal to 1,000,000,000 nanoseconds.

    # MaxValidators

    The maximum number of validators that may participate in validating blocks, earning rewards, and governance voting.

    • on-chain value: 125
    • cosmoshub-4 default: 125
    • cosmoshub-3 default: 125

    Validators are ranked by stake-backing based upon the sum of their delegations, and only the top 125 are designated to be active (aka "the active set"). The active set may change any time delegation amounts change. Only active validators may participate in validating blocks, earning rewards, and governance voting. ATOM-holders may participate in staking by delegating their bonded ATOMs to one or more validators in the active set. Delegators may only earn rewards and have their governance votes count if they are delegating to an active validator, the set of which is capped by MaxValidators.

    # Decreasing the value of MaxValidators

    Decreasing the value of the MaxValidators parameter will likely reduce the number of validators actively participating in validating blocks, earning rewards, and governance voting for the Cosmos Hub. This may decrease the time it takes to produce each new Cosmos Hub block.

    # Increasing the value of MaxValidators

    Increasing the value of the MaxValidators parameter will likely increase the number of validators actively participating in validating blocks, earning rewards, and governance voting for the Cosmos Hub. This may increase the time it takes to produce each new Cosmos Hub block.

    # Notes

    Prior to cosmoshub-3, the Cosmos Hub had a maximum set of 100 active validators. Text-based governance proposal Prop10 (opens new window) signalled agreement that the active set be increased to 125 validators. Block times were ~6.94 seconds/block with 100 validators, and are now ~7.08 seconds/block with 125 validators.

    It may be argued that after the Cosmos creators, the validator cohort may be the largest group of contributors to the Cosmos Hub community. Changes to the number of active validator participants may also affect the non-validator contributions to the Cosmos Hub.

    # KeyMaxEntries

    • The maximum number of unbondings between a delegator and validator within the unbonding period.

    • A delegator's maximum number of simultaneous redelegations from one validator to another validator within the unbonding period.

    • on-chain value:

    • cosmoshub-4 default: 7

    • cosmoshub-3 default: 7

    Each delegator has a limited number of times that they may unbond ATOM amounts from a unique validator within the unbonding period. Each delegator also has a limited number of times that they may redelegate from one unique validator to another unique validator within the unbonding period. This limit is set by the parameter KeyMaxEntries, which is currently 7. To be clear, this limit does not apply to a delegator that is redelegating from one validator to different validators.

    # Decreasing the value of KeyMaxEntries

    Decreasing the value of the KeyMaxEntries parameter will, within the unbonding period, decrease the number of times that a delegator may unbond ATOM amounts from a single, unique validator. It will also decrease the number of redelegations a delegator may initiate between two unique validators. Since this activity across many accounts can affect the performance of the Cosmos Hub, decreasing this parameter's value decreases the likelihood of a performance reduction in the network.

    # Increasing the value of KeyMaxEntries

    Increasing the value of the KeyMaxEntries parameter will, within the unbonding period, increase the number of times that a delegator may unbond ATOM amounts from a single, unique validator. It will also increase the number of redelegations a delegator may initiate between two unique validators. Since this activity across many accounts can affect the performance of the Cosmos Hub, increasing this parameter's value may increase the likelihood of a performance reduction in the network.

    # Notes

    Aleksandr (All in Bits; Fission Labs) wrote more about KeyMaxEntries here in this article (opens new window).

    # BondDenom

    The unit and denomination for the asset bonded in the system.

    • on-chain value: uatom
    • cosmoshub-4 default: uatom
    • cosmoshub-3 default: uatom

    When using an asset as a bond on the Cosmos Hub, the unit and denomination of the asset is denoted as the uatom, or micro-ATOM, where 1 ATOM is considered 1000000uatom. The protocol doesn't use ATOM for bonds, only uatom.

    # Changing the value of BondDenom

    Changing the BondDenom parameter will make any bond transactions with uatom fail and will require the new BondDenom parameter string in order for bond transactions to be successful. Changing this parameter is likely to have breaking changes for applications that offer staking and delegation functionality.

    # HistoricalEntries

    The number of HistoricalEntries to keep.

    • on-chain value: 10000
    • cosmoshub-4 default: 10000
    • Did not exist in cosmoshub-3 genesis

    Read ADR-17 (opens new window) for more on the Historical Header Module.

    + diff --git a/main/governance/proposal-types/params-change/param-index.html b/main/governance/proposal-types/params-change/param-index.html index 16ab89154df..62a8e54c562 100644 --- a/main/governance/proposal-types/params-change/param-index.html +++ b/main/governance/proposal-types/params-change/param-index.html @@ -8,7 +8,7 @@ - + @@ -68,6 +68,6 @@ Read more about the governance implications of the slashing subspace here.

    staking subspace

    Key Value
    BondDenom uatom
    HistoricalEntries 10000
    MaxEntries 7
    MaxValidators 125
    UnbondingTime 1814400000000000

    Read more about the governance implications of the staking subspace here.

    transfer subspace

    Key Value
    ReceiveEnabled true
    SendEnabled true

    Read more about the governance implications of the transfer subspace here.

    - + diff --git a/main/governance/proposal-types/text-prop.html b/main/governance/proposal-types/text-prop.html index 4ee32b56774..19adec42808 100644 --- a/main/governance/proposal-types/text-prop.html +++ b/main/governance/proposal-types/text-prop.html @@ -8,11 +8,11 @@ - +

    # Text (Signaling)

    # What are signaling proposals currently used for?

    Signaling proposals are used to make an on-chain record of support or agreement on a certain topic or ideas. Text proposals do not contain any code. That is, they do not directly cause any changes to the Hub once passed.

    Past signalling proposals have been used for a variety of reasons:

    # A note on historical text proposals

    In the early days of the Cosmos Hub, 'text' was the only proposal type. If you read old proposals, you will find 'text' proposals being used for things we use other proposal types now, such as changing a parameter (10 (opens new window)) or upgrading the software (19 (opens new window)).

    The process for these historical proposals was that an on-chain signal was used to give permission for development or changes to be made off-chain and included in the Cosmos Hub code. With the addition of new proposal types, these development or spending choices can now be executed by the Gaia code immediately after the vote is tallied.

    # Why make a signaling proposal?

    Signaling proposals are a great way to take an official, public poll of community sentiment before investing more resources into a project. The most common way for text proposals to be used is to confirm that the community is actually interested in what the proposer wants to develop, without asking for money to fund development that might not be concrete enough to have a budget yet.

    Because the results of signaling proposals remain on-chain and are easily accessible to anyone, they are also a good way to formalize community opinions. Information contained in documentation or Github repo's can be hard to find for new community members but signaling proposals in a block explorer or wallet is very accessible.

    You might make a signaling proposal to gather opinions for work you want to do for the Hub, or because you think it's important to have a record of some perspective held by the community at large.

    # What happens when a signaling proposal passes?

    Technically, nothing happens on-chain. No code executes, and this 'unenforceable' property of text proposals is one of the biggest criticisms of the format. Regardless of whether the results of a signaling proposal are enforced by code, there can still be value from having a proposal on-chain and subject to discussion. Whether a proposal passes or fails, we all get information from it having been considered.

    • The community might have had a thorough, thoughtful discussion about a topic that they otherwise wouldn't have had.
    • A dev team interested in a feature might have a better idea of how their work will be received by the community.
    • The community might be more informed about a topic than they previously were.
    • The community might feel confident that we are aligned on a particular definition or social norm.
    - + diff --git a/main/governance/proposals/2020-10-blocks-per-year/index.html b/main/governance/proposals/2020-10-blocks-per-year/index.html index 13f898a36f5..8bf23ae1cc6 100644 --- a/main/governance/proposals/2020-10-blocks-per-year/index.html +++ b/main/governance/proposals/2020-10-blocks-per-year/index.html @@ -8,7 +8,7 @@ - + @@ -51,6 +51,6 @@ to be fine tuned over the coming years / decades. This seems like a very good starting place and a greatly beneficial change before we enter the post star gate world ☺

    - + diff --git a/main/governance/proposals/2020-11-inflation-rate-change/index.html b/main/governance/proposals/2020-11-inflation-rate-change/index.html index ed39c591a5f..8c7c2018fa8 100644 --- a/main/governance/proposals/2020-11-inflation-rate-change/index.html +++ b/main/governance/proposals/2020-11-inflation-rate-change/index.html @@ -8,12 +8,12 @@ - +

    Cosmos Hub Inflation variable modification: Inflation Rate Change

    Quick Summary of issue

    There are 6 main variables that control the maximum, minimum, & change of the atom inflation rate for the cosmos hub. These variables can be found inside the mint module via the attached hyperlink: https://github.com/gavinly/CosmosParametersWiki/blob/master/Mint.md (opens new window)

    In this proposal we will be looking at adjusting the inflation rate change variable.

    • When the cosmos hub inflation dynamics were originally designed, the goal was for the hub to go from the minimum rate (7%) to the maximum rate (20%) in roughly one year after a shock had unbond occurred. Thus, for the variable “inflation rate change” a value of .13 was chosen. Unfortunately, in practice the variable didn’t work as intended due to the fact the change in the inflation rate for the hub is proportional to the Target Bonded / current bonded ratio.

    How to select “inflation rate change” AKA Maximum Slope of the inflation curve

    The purpose of changing the network's inflation rate is to protect it from unbonding shocks that can threaten to compromise the security of the network. When the bonded ratio gets below the goal bonded ratio (currently at 66% on the hub) the inflation rate & effective yield of staked atoms goes up in order to incentivize holders to bond new ATOMs with a view to securing the network. Inversely, if we regain a desired amount of staked tokens, the yield will drop and thusly decrease effective yields for all delegators. Ideally the inflation rate starts changing fast, optimizing network security over monetary hardness. To figure out what an appropriate selection for the cosmos hub would be, I created excel sheets to run through all the different scenarios to find what value made the inflation rate react in an optimal manner. I came to the conclusion that 1 (AKA 100% per year is the maximum slope of the inflation curve) gave the most ideal characteristics, with the added benefit of simplifying the equation. I’ll give some examples on how it would react. Since unbonding is what we are protecting against, I will look at flash unbonds while the inflation rate is at the floor due to that being the #1 time of vulnerability.

    Scenarios of Shock Unbonds #1. Cosmos hub Bonded ratio flash crashes to 60%, which is not bad, but still 10% below the target. With our current variable of .13, it would take approx. 9.6 years to make it to the ceiling rate of 20%. On the other hand, if this variable was 1, the hub would reach it ceiling 17.2 months after the unbond shock (assuming bonded % stays at 60% the entire time for simplicity).

    #2 Cosmos hub Bonded ratio flash crashes to 50%, starting to get a little scary, but only 25% below the 66% target. With our current variable of .13, it would take aprox. 4 years to make it to the ceiling rate of 20%. On the other hand, if this variable was 1, the hub would reach it ceiling 6.4 months after the unbond.

    #3 Cosmos hub Bonded ratio flash crashes to 35%, NOT GOOD!!!! We need to get more atoms staked ASAP! With our current variable of .13, it would take aprox 25 months to reach the ceiling rate of 20%. On the other hand, if this variable was 1, the hub would reach its ceiling 3.3 months after the unbond and the inflation rate would be increasing at a rate of 3.91% per month.

    All of the data above, graphs, and much more can be found at https://docs.google.com/spreadsheets/d/1ZJWNzkNB7HUG3fsom9UO8bXODao8cJfFHkgdZ12IOnA/edit#gid=0 (opens new window)

    Possible Risks / Benefits

    I will split this up into two sections, doing nothing & doing the proposed changes.

    Inflation rate Change (Max Slope of inflation curve)

    1a) Doing nothing Risks / Benefits: In this case, I do believe there are risks to do nothing. Currently the inflation rate of the hub is not very reactive to unbond shocks (as seen above). This can lead to network security risks if an economic actor with bad intent wanted to try and destabilize the hub. On the other hand, changing any variable within a system can cause unwanted consequences. There is no way to get rid of this risk entirely, luckily the inflation mechanics are fairly simple and easy to model with excel spreadsheets. Additionally, none of these changes will affect the consensus mechanism, they will just impact the minting of new atoms.

    1b) Changing rate to 1 Risks / Benefits: As stated above, there are always risks to changing variables within complex systems. Changing this variable will undoubtedly greatly increase the reactivity of the hub to unbonding shocks. Overall, this seems very beneficial due to the extremely slow reaction time of the hub currently. Also, it brings the hub closer to the original goal of 1 year from the min to the max in a unbonding shock scenario. Due to the fact the inflation curve slope is proportional to the goal vs current bonded ratio, it isn’t possible to hit the original goal directly, but this brings it much closer to reality.

    Conclusion

    I know there isn’t a right answer for maximum slope. I fully expect this to be fine-tuned over the coming years / decades. Future proposals may adjust this number by a factor of (.5 – 2+) but this gets us in the right ball park just in time for Stargate. ☺

    - + diff --git a/main/governance/proposals/2021-01-atom2021_marketing/index.html b/main/governance/proposals/2021-01-atom2021_marketing/index.html index e53df7ff29c..bf237e53403 100644 --- a/main/governance/proposals/2021-01-atom2021_marketing/index.html +++ b/main/governance/proposals/2021-01-atom2021_marketing/index.html @@ -8,7 +8,7 @@ - + @@ -16,6 +16,6 @@ We have decided that it is high time we coordinated, orchestrated efforts so that we see $ATOM becoming known to this space and beyond, We are convinced that people who see the potential, inherent value and ethos of this project will not be able to unsee and that they will be converted to believers and evangelists like ourselves.

    We need to have the support of all: community members, delegators, validators and teams that have tirelessly worked to ensure the flawless, successful completion of the Cosmos stack and vision of its roadmap.

    We will need more than their vocal support. We will need their vote. We will need their subsequent support for this initiative. We all need to do nothing more than spread the knowledge. Disseminate this great idea.

    We also need AiB (Tendermint)'s help to execute on this ambitious effort.

    Our proposal is requesting from the entire cosmos family to grant access to a portion of the community pool and allow a community spend of 129,208 $ATOM for marketing contracts over a course of 3 months starting immediately upon its passing.

    We are convinced that, by this community spend, we will increase awareness across blockchain space and get the $ATOM spaceship ready for its intergalactic journey that few - but us - have foreseen. This is not about shilling a project with no fundamentals, this is about making the best project out there known across blockchain space and beyond.

    We also think that this initiative is not only helping the Cosmos Hub and ATOM, ultimately it is a great initiative with benefits for the massive and ever expanding galaxy of the Cosmos ecosystem. Yet we are aligned with the ATOM2021 initiative and understand that for us - $ATOM holders - the utility of $ATOM should become known and strengthened via similar initiatives.

    Ultimately we deem imperative that this initiative coincides with the Stargate upgrade.

    4 Types of Promotional Activities to be funded with 129,208 $ATOM:

    In order to achieve the goal of strengthening the public perception about the ATOM’s utility and understanding of communities about the value proposition of the Hub we have 4 main campaigns in mind for which we request your approval. The campaigns are detailed below:

    i. One set of actions for incentivising, educating thought leaders so as to engage through media (Twitter, YouTube) for a period of 3 months and educate their audiences about $ATOM without any unnecessary hyperboles, something that would go against the values and ethos of our project.

    ii. One set of actions for engaging the blockchain and crypto communities for 3 months via 3 monthly meme contests whose intention is to make $ATOM going viral on Twitter.

    iii. One set of actions for a 3 month header banner and/or homepage banner advertising campaigns on 4 platforms with high and/or relevant traffic to the Cosmos Hub such as CMC, Coingecko, Blockfolio and Staking Rewards platforms, whichever of them have available spots.

    iv. A maximum of 10% from the budget will be used to engage a high profile PR Agency to help with the Media and Marketing efforts. AiB and/or committee members will request and share offers from different PR Agencies and the offer containing the best marketing plan will be selected by the committee members through vote. AiB will maintain the relation with the PR Agency and will report to the committee on the status of deliverables.

    Scope of Campaigns:

    The campaigns will be $ATOM related and should be aligned with the ATOM2021 initiative, increase awareness about the Cosmos Hub, the value proposition of $ATOM, the dynamics of IBC in relation to $ATOM without neglecting to point on the truly decentralised, sovereign, scalable, sustainable properties inherent in the project’s architecture and ethos as well as its non-competitive character to other chains within the ecosystem. Since we are aware of the superiority of the project over any similar efforts on interoperability, honest and informed comparisons by thought leaders in the space are anticipated and will be coordinated during the course of this undertaking.

    Release of funds:

    Funds will be released to a multi-sig committee which in turn may - depending on each initiative and based on a majority multisignature approval - release the funds to: 1) Tendermint (AiB) that will act as a liaison between Cosmos Hub community and third parties and distribute the payments according with the marketing proposal or where appropriate, 2) directly to the entities or individuals ( e.g. contest winners or various contributors)

    Funds’ Distribution:

    The distribution of funds will be administered by 5 community members that have been selected via the governance working group. At least 3 will have to approve each spend for it to be released to AiB or any third party, according with the marketing proposal.

    @johnniecosmos, @JoeDirtay, @jackzampolin (Jack Zampolin, Pylon Validator), @immasssi (SG-1 Validator), @zakimanian (Zaki Manian, Iqlusion Validator).

    Every spend action related to this proposal has to be approved via multi-sig. At least 3/5 signatures are required to confirm a spend of the allocated marketing funds.

    For administrative efforts, drafting the proposal and executing the marketing efforts, the 5 administrators will receive 100 ATOMs each for their time & efforts over the coming 3 months in helping to properly execute the above mentioned strategy.

    MultiSig Address: cosmos16plylpsgxechajltx9yeseqexzdzut9g8vla4k

    Refund of Unspent Funds to the Pool:

    It is expected that amounts requested and allocated for each campaign will be depleted and spent. In the event this does not happen within 3 months of the passing of the proposal, this amount will have to be refunded by either AiB or the mutli-sig committee (whomever is in custody of the funds) back to the community pool.

    Expectations from the rest of entities involved in the Hub:

    We expect that our initiative will stand as a beacon for the rest of the teams/entities/individuals involved in the development of the Cosmos Hub in respect to pushing the project forward.

    Educational material, articles on mainstream media, podcasts, interviews, social media campaigns, active promotion to e.g. the end of a Paypal listing, only form part of what we deem as an optimal and thorough and long-term strategy for establishing the Cosmos Hub ($ATOM) as the true game changer in people’s minds within this space. Since our resources are limited and the purpose here is not to deplete the Community pool, we expect the rest of the main teams involved in the development of the Hub or even teams earning value from their operations on the Cosmos hub and $ATOM to undertake efforts similar (at least in passion) to ours and support or supplement our efforts. Thus, we aim to motivate others by this limited in resources initiative.

    AiB’s General Obligations to the Community:

    Specific work tasks like the banner campaign & the thought leader campaign are expected to be covered by AIB. This can be done right away even before the proposal is passed to enable a faster execution of the proposal. Any tasks which are agreed upon and that are signed off by the administrators will then be commissioned to AIB upon delivery. Administrators expect a fully transparent report every 2 weeks showing the state of the tasks and additional information that verifies the proper execution of the community tasks (Receipts & documentation).

    Closing Remarks:

    Ultimately for us, the Community, Cosmos Hub ($ATOM) signals the second era of the so-called Blockchain Revolution. We can all be the messengers, but we need the message to be delivered sooner than later. Empower us with the necessary funding tools so that we disseminate and deliver the message across all corners of the space. For, beyond awesome code, we see an equally awesome community ready to undertake and support this ambitious initiative. We do not see this as a phoney attempt to shill an empty promise. We see this as an opportunity to inform, educate and create a larger follower base around the most important project in this space to date.

    - + diff --git a/main/governance/proposals/2021-01-delay-stargate-upgrade/index.html b/main/governance/proposals/2021-01-delay-stargate-upgrade/index.html index 0e10c4ae961..32ed82fcac9 100644 --- a/main/governance/proposals/2021-01-delay-stargate-upgrade/index.html +++ b/main/governance/proposals/2021-01-delay-stargate-upgrade/index.html @@ -8,11 +8,11 @@ - +

    # Delay of Hub Stargate Upgrade

    The Stargate team is recommending that the Cosmos Hub reschedule the next upgrade to a new commit hash. The new commit hash is expected to be available on Tuesday Jan 26th with a new upgrade proposal immediately after.

    This governance proposal will signal that proposal 35 (opens new window) will not be executed. The Hub governance will vote on the forthcoming proposal aiming for a final upgrade. The earliest target date would be February 11th. Given that Lunar New Year is on Feb 12th. The next best date is Feb 18th 06:00UTC.

    We are recommending the delay for the following reasons.

    - + diff --git a/main/governance/proposals/2021-01-stargate-upgrade-b/index.html b/main/governance/proposals/2021-01-stargate-upgrade-b/index.html index be825aa8eca..1fcbfc47d5f 100644 --- a/main/governance/proposals/2021-01-stargate-upgrade-b/index.html +++ b/main/governance/proposals/2021-01-stargate-upgrade-b/index.html @@ -8,11 +8,11 @@ - +

    # Stargate Upgrade- Second time is a charm

    Stargate Upgrade banner graphic

    # by Iqlusion

    Jan 28, 2021

    # Key Results


    If passed, this governance proposal would commit the Cosmos Hub to halting the cosmoshub-3 at 06:00 UTC on Feb 18th exporting the state and starting cosmoshub-4 based on gaia 4.0.0

    # Context


    In Proposal 27 (opens new window), Iqlusion proposed a comprehensive process to translate the unprecented surface area of this upgrade. We called this process Stargate.

    Iqlusion is pleased to report that the Stargate Process has been successfully executed. We believe the ecosystem is ready and the Hub can safely step through the Stargate.

    After the success of the community approval of the first Stargate Upgrade proposal, we now follow-up with the second Stargate proposal for the Cosmos Hub that will outline the results of the first proposal and the process for upgrading the Hub.

    # Aborting of Proposal 35

    Bugs were found in prior upgrade release that triggered the abort procedure that was detailed in the standard upgrade.

    # The Stargate Plan


    The purpose of the Stargate effort was to ensure that Cosmos can fulfill the vision of an Internet of Blockchains in 2021 while mitigating the technological and organizational risks outlined in the original Stargate Upgrade Proposal 27 (opens new window). It was also an attempt to create a process for complex future on-chain upgrades on the Cosmos Hub. That included the following steps:

    1. Run the Stargate Testnet and use this as an integration testing target with widest possible ecosystem participation to help confirm the readiness of the release software.

    2. Engage and support critical partners during the integration process so that partners are able to actively participate in the testing process and provide insights into their success with the upgrade.

    3. Dedicate significant resources in terms of full time human resources and documentation efforts to ensure that everyone integrated into the Cosmos Hub can self-certify as Stargate-ready.

    4. Report back to the Hub on the success of the integration process.

      • We expect that the primary responsibility of the Cosmos Hub is to assess whether we have mitigated the above risks sufficiently.

      • Provide a written report of the entire Stargate effort to enable Hub governance to make an informed decision.

    5. At conclusion, we will indicate why we have confidence that an upgrade won't be disruptive to the Hub’s ecosystem.

    # Stargate Plan Results


    # 1. Ecoystem Participation

    The results of ecosystem participation and engagement are available in our Stargate Ecosystem Readiness Report (opens new window). We list on this page ecosystem partners such as Validators that provided their validator public keys as well as infrastructure partners that confirmed their integration testing the Stargate testnet tags. Validators, exchanges, and wallets have made up the most responsive of their results completing integration testing of the stargate releases. We anticpate that all actors in the ecosystem are aware and ready to respond to the new Cosmos Hub features. Integration partners have helped find regression in the legacy amino compatibility layer and those have been resolved.

    The Cosmos SDK, Tendermint Core, Tendermint Inc, and IBC teams worked tirelessly to deliver the most robust software feature set that would make up the Cosmos Stargate release. Their review of their efforts are documented in their post "How Seven Teams Collaborated To Deliver The Biggest Software Upgrade In The Cosmos Universe" (opens new window).

    Integration testing continued through the release of the Cosmos SDK v0.40.0-rc2 that makes up the Cosmos-hub Stargate testnet tag for a simulated upgrade of the CosmosHub-3 to CosmosHub-4. Also, the AiB team continues to deliver simulation testing of Cosmos Stargate to ensure that any possible chain bug issues can be detected and documented.

    We are confident that we have and continue to achieve increased ecosystem engagement with the Stargate testnet.

    # 2. Critical Partner Support

    We delivered critical partner support to leading ATOM exchanges. Out of the exchange support efforts, we documented the IBC Readiness Matrix (opens new window) that outlines the levels of readiness that exchanges may select as they upgrade to Cosmos Stargate.

    We also completed and delivered a completed legacy Amino Audit, AminoRest & You (opens new window). The core finding of this audit was that changes to the underlying structs result in an interface that is close to the prior version allowing legacy queries to return valid data.

    All previous Cosmos Hub upgrades reset the block height. Our interactions with ecosystem particpants identified this as introducing significant complexity to handling this upgrade. This will be the first upgrade of the Cosmos Hub that starts the blockchain at the height + 1 of the antecedent chain.

    # 3. Documentation and Self-Certification

    Documentation was a success for the Cosmos Stargate effort. The upgrades with the most breaking changes such as legacy Amino have a complete audit with documentation on exceptions for blockchain API interfaces.

    Most exchanges and wallets have taken self-certification on directly. Our team continues to provide real-time support on multiple partner slack channels and on the Cosmos #stargate Discord (opens new window) channel.

    We have conducted numerous testnets with different partners. A particularly important testnet conducted with a significant fraction of the Hub validator set was a simulated upgrade of the cosmoshub on Nov 25th,2020. This tested the full upgrade flow including the prop29 implementation and height preserving upgrade functionality.

    # Conclusion

    The governance proposal is our report back to the community on the success of the Stargate program. We have compiled detailed information for the community as a reference in the Stargate repository (opens new window).

    # Cosmos Stargate Integration Success

    Cosmos Stargate integration success with exchanges and wallet providers reflects the quality of the code developed by the various Cosmos teams.

    # Prop 29

    This upgrade also implements the fund recovery procedure defined in proposal 29. The code is here (opens new window). As requested during the discussion of the governance proposal, the migration and fund recovery procedure verifies all signatures. This code was tested during the cosmoshub-3 simulated upgrade testnet.

    # Stargate Upgrade Steps


    The upgrade steps for the simulated upgrade of the current Cosmoshub mainnet to Cosmos Stargate includes the following steps:

    The upgrade instructions will continue to improve as a living document (opens new window). The Gaia maintainers will continue to improve the instruction below.

    This section is with the current gaia 2.0.* implementation.

    1. Validators should set their gaia with a halt time of 1613628000ie. 06:00 UTC on Feb 18th in Unix time.

    2. Validators should then export the current cosmos state with gaiad export > cosmoshub-3-export.json

    3. Validators should determine the height of the last block as last-cosmoshub-3_block. This can be easily determined from gaia logs.

    4. Validators should back up their .gaiad directory.

    This section is with the upgraded gaia 4.0.* implemenataion.

    1. Validators should then migrate the exported genesis state. gaiad migrate cosmoshub-3-export.json --chain-id=cosmoshub-4 --initial-height [last_cosmoshub-3_block+1] > genesis.json
    2. Validators should (AFTER ENSURING IT IS BACKED UP!) delete their ~/.gaiad directory and create a new one with gaiad init [name] and then edit their configuration files or recover the config files from backups.
    3. Validators should then start cosmoshub-4 with gaiad start. Automated audits of the genesis state can take 30-120 min using the crisis module. This can be disabled by gaiad start --x-crisis-skip-assert-invariants.

    Validators should expect that at least 16GB of RAM needs to be provisioned to process the first new block on cosmoshub-4.

    # Time of the Upgrade


    We propose scheduling the Cosmoshub-3 to Cosmoshub-4 upgrade for Thursday Feb 18th, 2021 at 0600 UTC

    • West Coast USA: 10 PM on Feb 17
    • East Coast USA: 1 AM on Feb 18
    • Central Europe: 7 AM on Feb 18
    • Seoul: 5 PM on Feb 18

    # The git commit of Gaia that we are upgrading to


    a279d091c6f66f8a91c87943139ebaecdd84f689

    # What we're doing while voting is happening


    We expect that integration partners will be motivated to finish their preparations for the upgrade during the period when the governance proposal is running.

    We will upgrade the stargate-final testnet to support Gaia v4.0 and continue the integration progress with exchanges, blockexplorers and wallets.

    Stargate Ecosystem Readiness Report (opens new window) is a living document. We will be updating this document as we get reports of completed end to end testing. We expect a hard deadline to be motivating.

    # What is the upgrade abort process


    There are multiple circumstances where the proposal should be abandoned even if it passes:

    1. A critical vulnerability may be found in the software. If the development teams change their recommended version of gaia, the validator set should implicitly abandon this upgrade procedure. A signaling proposal will be made to indicate a vulnerability or defect in the upgrade has been found. A future proposal will be made to the Hub to upgrade to the new target commit.

    2. The migration process fails could fail to produce a valid cosmoshub-4 genesis file. This would manifest as ad-hoc changes to genesis needed to start or a failure to produce blocks from cosmoshub-4. In this case, the validator set should restart cosmoshub-3 at last-cosmoshub-3_block and a future governance proposal will be done to initiate another upgrade.

    - + diff --git a/main/governance/proposals/2021-01-stargate-upgrade/index.html b/main/governance/proposals/2021-01-stargate-upgrade/index.html index e8d3b69faee..32a70ec2387 100644 --- a/main/governance/proposals/2021-01-stargate-upgrade/index.html +++ b/main/governance/proposals/2021-01-stargate-upgrade/index.html @@ -8,11 +8,11 @@ - +

    # Cosmos Stargate Hub Upgrade Proposal 2: Time to Upgrade

    Stargate Upgrade banner graphic

    # by Iqlusion

    Jan 11, 2021

    # Key Results


    If passed, this governance proposal would commit the Cosmos Hub to halting the cosmoshub-3 at 06:00 UTC on Jan 28th exporting the state and starting cosmoshub-4 based on gaia 3.0.

    # Context


    In Proposal 27 (opens new window), Iqlusion proposed a comprehensive process to translate the unprecented surface area of this upgrade. We called this process Stargate.

    Iqlusion is pleased to report that the Stargate Process has been successfully executed. We believe the ecosystem is ready and the Hub can safely step through the Stargate.

    After the success of the community approval of the first Stargate Upgrade proposal, we now follow-up with the second Stargate proposal for the Cosmos Hub that will outline the results of the first proposal and the process for upgrading the Hub.

    # The Stargate Plan


    The purpose of the Stargate effort was to ensure that Cosmos can fulfill the vision of an Internet of Blockchains in 2021 while mitigating the technological and organizational risks outlined in the original Stargate Upgrade Proposal 27 (opens new window). It was also an attempt to create a process for complex future on-chain upgrades on the Cosmos Hub. That included the following steps:

    1. Run the Stargate Testnet and use this as an integration testing target with widest possible ecosystem participation to help confirm the readiness of the release software.

    2. Engage and support critical partners during the integration process so that partners are able to actively participate in the testing process and provide insights into their success with the upgrade.

    3. Dedicate significant resources in terms of full time human resources and documentation efforts to ensure that everyone integrated into the Cosmos Hub can self-certify as Stargate-ready.

    4. Report back to the Hub on the success of the integration process.

      • We expect that the primary responsibility of the Cosmos Hub is to assess whether we have mitigated the above risks sufficiently.

      • Provide a written report of the entire Stargate effort to enable Hub governance to make an informed decision.

    5. At conclusion, we will indicate why we have confidence that an upgrade won't be disruptive to the Hub’s ecosystem.

    # Stargate Plan Results


    # 1. Ecoystem Participation

    The results of ecosystem participation and engagement are available in our Stargate Ecosystem Readiness Report (opens new window). We list on this page ecosystem partners such as Validators that provided their validator public keys as well as infrastructure partners that confirmed their integration testing the Stargate testnet tags. Validators, exchanges, and wallets have made up the most responsive of their results completing integration testing of the stargate releases. We anticpate that all actors in the ecosystem are aware and ready to respond to the new Cosmos Hub features. Integration partners have helped find regression in the legacy amino compatibility layer and those have been resolved.

    The Cosmos SDK, Tendermint Core, Tendermint Inc, and IBC teams worked tirelessly to deliver the most robust software feature set that would make up the Cosmos Stargate release. Their review of their efforts are documented in their post "How Seven Teams Collaborated To Deliver The Biggest Software Upgrade In The Cosmos Universe" (opens new window).

    Integration testing continued through the release of the Cosmos SDK v0.40.0-rc2 that makes up the Cosmos-hub Stargate testnet tag for a simulated upgrade of the CosmosHub-3 to CosmosHub-4. Also, the AiB team continues to deliver simulation testing of Cosmos Stargate to ensure that any possible chain bug issues can be detected and documented.

    We are confident that we have and continue to achieve increased ecosystem engagement with the Stargate testnet.

    # 2. Critical Partner Support

    We delivered critical partner support to leading ATOM exchanges. Out of the exchange support efforts, we documented the IBC Readiness Matrix (opens new window) that outlines the levels of readiness that exchanges may select as they upgrade to Cosmos Stargate.

    We also completed and delivered a completed legacy Amino Audit, AminoRest & You (opens new window). The core finding of this audit was that changes to the underlying structs result in an interface that is close to the prior version allowing legacy queries to return valid data.

    All previous Cosmos Hub upgrades reset the block height. Our interactions with ecosystem particpants identified this as introducing significant complexity to handling this upgrade. This will be the first upgrade of the Cosmos Hub that starts the blockchain at the height + 1 of the antecedent chain.

    # 3. Documentation and Self-Certification

    Documentation was a success for the Cosmos Stargate effort. The upgrades with the most breaking changes such as legacy Amino have a complete audit with documentation on exceptions for blockchain API interfaces.

    Most exchanges and wallets have taken self-certification on directly. Our team continues to provide real-time support on multiple partner slack channels and on the Cosmos #stargate Discord (opens new window) channel.

    We have conducted numerous testnets with different partners. A particularly important testnet conducted with a significant fraction of the Hub validator set was a simulated upgrade of the cosmoshub on Nov 25th,2020. This tested the full upgrade flow including the prop29 implementation and height preserving upgrade functionality.

    # Conclusion

    The governance proposal is our report back to the community on the success of the Stargate program. We have compiled detailed information for the community as a reference in the Stargate repository (opens new window).

    # Cosmos Stargate Integration Success

    Cosmos Stargate integration success with exchanges and wallet providers reflects the quality of the code developed by the various Cosmos teams.

    # Prop 29

    This upgrade also implements the fund recovery procedure defined in proposal 29. The code is here (opens new window). As requested during the discussion of the governance proposal, the migration and fund recovery procedure verifies all signatures. This code was tested during the cosmoshub-3 simulated upgrade testnet.

    # Stargate Upgrade Steps


    The upgrade steps for the simulated upgrade of the current Cosmoshub mainnet to Cosmos Stargate includes the following steps:

    This section is with the current gaia 2.0.* implementation.

    1. Validators should set their gaia with a halt time of 1611813600ie. 06:00 UTC on Jan 28th in Unix time.

    2. Validators should then export the current cosmos state with gaiad export > cosmoshub-3-export.json

    3. Validators should determine the height of the last block as last-cosmoshub-3_block.

    4. Validators should back up their .gaiad directory.

    This section is with the upgraded gaia 3.0.* implemenataion.

    1. Validators should then migrate the exported genesis state. gaiad migrate cosmoshub-3-export.json --chain-id=cosmoshub-4 --initial-height [last_cosmoshub-3_block+1] > genesis.json
    2. Validators should (AFTER ENSURING IT IS BACKED UP!) delete their ~/.gaiad directory and create a new one with gaiad init [name] and then edit their configuration files or recover the config files from backups.
    3. Validators should then start cosmoshub-4 with gaiad start. Automated audits of the genesis state can take 30-120 min using the crisis module. This can be disabled by gaiad start --x-crisis-skip-assert-invariants.

    Validators should expect that at least 16GB of RAM needs to be provisioned to process the first new block on cosmoshub-4.

    # Time of the Upgrade


    We propose scheduling the Cosmoshub-3 to Cosmoshub-4 upgrade for Thursday Jan 28th, 2021 at 0600 UTC

    • West Coast USA: 10 PM on Jan 27
    • East Coast USA: 1 AM on Jan 28
    • Central Europe: 7 AM on Jan 28
    • Seoul: 5 PM on Jan 28

    # The git commit of Gaia that we are upgrading to


    d974b27a8caf8cad3b06fbe4678871e4b0b69a51

    # What we're doing while voting is happening


    We expect that integration partners will be motivated to finish their preparations for the upgrade during the period when the governance proposal is running.

    A testnet with the final version of Gaia 3.0 will be running to assist with integrations.

    Stargate Ecosystem Readiness Report (opens new window) is a living document. We will be updating this document as we get reports of completed end to end testing. We expect a hard deadline to be motivating.

    # What is the upgrade abort process


    There are multiple circumstances where the proposal should be abandoned even if it passes:

    1. A critical vulnerability may be found in the software. If the development teams change their recommended version of gaia, the validator set should implicitly abandon this upgrade procedure. A future proposal will be made to the Hub to upgrade to the new target commit.

    2. The migration process fails could fail to produce a valid cosmoshub-4 genesis file. This would manifest as ad-hoc changes to genesis needed to start or a failure to produce blocks from cosmoshub-4. In this case, the validator set should restart cosmoshub-3 at last-cosmoshub-3_block and a future governance proposal will be done to initiate another upgrade.

    - + diff --git a/main/governance/proposals/2021-03-enable-ibc-transfers/index.html b/main/governance/proposals/2021-03-enable-ibc-transfers/index.html index 236441581a0..a5605335162 100644 --- a/main/governance/proposals/2021-03-enable-ibc-transfers/index.html +++ b/main/governance/proposals/2021-03-enable-ibc-transfers/index.html @@ -8,12 +8,12 @@ - +

    # Enable IBC Transfers

    The Proposal enables transferring and receiving assets using the ICS20 standard on the Cosmos Hub. If this proposal passes, there will be IBC assets available in the Bank module of the Hub and ATOM will be available on Zones connected over IBC. -Iqlusion believes that the IBC software is sufficiently stable for small amounts of value transfer. We expect there to be issues with stuck funds and UX confusion but overcoming these issues will only happen once IBC is live.

    # Security Model

    Tendermint full nodes produce agreement under the assumption that at most ⅓ of the voting power held by validators is Byzantine.

    # IBC

    IBC is a protocol for authenticated message passing between heterogeneous sovereign blockchains. IBC requires trusting that chains on both sides of the connections operate within their security model.

    # Incentive Security Extensions

    IBC has a facility to support freezing connections once a violation of the security model has occurred. The set of criteria for detecting such attacks continues to evolve and is a constant focus of research.

    - +Iqlusion believes that the IBC software is sufficiently stable for small amounts of value transfer. We expect there to be issues with stuck funds and UX confusion but overcoming these issues will only happen once IBC is live.

    # Security Model

    Tendermint full nodes produce agreement under the assumption that at most ⅓ of the voting power held by validators is Byzantine.

    # IBC

    IBC is a protocol for authenticated message passing between heterogeneous sovereign blockchains. IBC requires trusting that chains on both sides of the connections operate within their security model.

    # Incentive Security Extensions

    IBC has a facility to support freezing connections once a violation of the security model has occurred. The set of criteria for detecting such attacks continues to evolve and is a constant focus of research.

    + diff --git a/main/governance/proposals/2021-04-advancing-ethermint/index.html b/main/governance/proposals/2021-04-advancing-ethermint/index.html index 32edf4b1f62..4ae71193413 100644 --- a/main/governance/proposals/2021-04-advancing-ethermint/index.html +++ b/main/governance/proposals/2021-04-advancing-ethermint/index.html @@ -8,11 +8,11 @@ - + -

    # Advancing Ethermint - Governance Proposal: GTM and Engineering Plan for the Ethermint Chain

    NOTE: this is a short version of the full proposal. To read the full document click here (opens new window).

    # Author

    Federico Kunze Küllmer: @fedekunze (opens new window)

    # Summary

    Tharsis is requesting 100,000 ATOMs from the Cosmos Hub community pool to fund, develop and advance the Ethermint project and launch an Ethermint Chain. The team will use these resources to grow our dedicated Cosmos-EVM team, so we can take on the commitments and responsibilities necessary to maintain and support the Cosmos-EVM chain and codebase.

    An Ethermint environment has enormous potential to unlock new use cases within the Cosmos ecosystem that are not possible on Ethereum today. Use cases that require scalability and composability are some of the endless possibilities for Ethermint.

    Ethermint is a way of vertically and horizontally scaling the projects that deploy on Ethereum, by allowing:

    • Access to greater liquidity through IBC
    • Faster transaction times through Tendermint BFT's instant finality
    • Less strain on the Ethereum chain to process transactions (i.e. through gravity bridge)
    • Seamless portability and composability with Ethereum Virtual Machine support

    The commitments stated in this proposal will ensure a successful launch for the Ethermint chain together with its existing contributors (ChainSafe, OKEx, Iris, Injective, etc). Launching collaboratively with Ethermint stakeholders will result in a robust and independent community within Cosmos that will enable greater developer adoption of Cosmos technology.

    The Ethermint stakeholders are partnering to execute on the long-awaited Ethermint Chain by joining forces to develop and deploy a new Cosmos EVM chain that will be used by thousands of crypto users at launch.

    # Governance Votes

    The following items summarize the voting options and what it means for this proposal. All addresses that vote on the proposal might be eligible for a future airdrop.

    • YES: You approve the proposal statements and distribute the amount of 100,000 ATOMs to the multisig address. The treasury will allocate the funds to the Tharsis team, leading Ethermint's core development efforts and supporting the chain's go-to-market strategy. It will also lead to core technology maintenance and continuous discussion to ensure the project's longevity.
    • NO: The NO vote is a request for improvements or adjustments. You agree that this proposal's motivation is valuable and that the team should create a follow-up proposal once the amendments are included.
    • NO (VETO): You veto the entire motivation for the proposal and expect the ICF and current maintainers to make the determination and continue the stewardship of the project. The proposers will not create a follow-up proposal.
    • ABSTAIN: You are impartial to the outcome of the proposal.

    # Multisig and release of funds

    Upon the approval of the proposal, the treasury will distribute the funds to a ⅔ multi-signature account managed by the following individuals/partners:

    • Federico Kunze Küllmer - Tharsis (proposer)
    • Zaki Manian - Iqlusion
    • Marko Baricevic - Interchain GmbH

    The account address is: cosmos124ezy53svellxqs075g69n4f5c0yzcy5slw7xz

    If the proposal passes, the team will immediately receive 40% of the funds to expand its engineering team and other business development efforts to support GTM for the chain. The remaining 60% will be released in an equal proportion to the number of milestones upon the completion of each milestone. For any reason, if the proposer has not completed the next milestone within a year of the last payment, the remaining funds held in the multisig account will be returned to the community pool.

    # Product commitment

    The current proposal aims to develop all the necessary components for a successful Ethermint chain. Our team will lead the core development efforts to execute the points below.

    # Hard Commitments

    These are the items that are mandatory for the release of funds. The items will be split into four milestones.

    NOTE: Some of the items below are currently stated under ChainSafe's service agreement with the ICF for Ethermint. Our team will collaborate with them on these items so that they are included by the time the EVM chain is launched. These items are marked below as [CS]

    # Milestone 1: Developer Usability and Testing

    This milestone aims to reach a stage where developers can begin deployments of Ethermint with the latest Cosmos SDK version and test their smart contracts in what will feel like a seamless experience.

    • Starport support: Collaborate to ensure compatibility with Starport for developers that wish to use the EVM module with the latest SDK version on their sovereign chains.
    • Rosetta API support: Support Ethermint transactions and queries on Coinbase’s Rosetta API that has been integrated into the SDK.
    • EVM Consistency: Ensure that Ethermint can operate the same state as Ethereum and deterministically runs smart contract executions, exactly how Geth does (for example, checking the gas used between Ethermint and Geth)
    • Replay attack protection: Register Ethermint permanent testnet and mainnet chain-ids to ChainID Registry (opens new window) according to EIP 155 (opens new window).
    • Documentation: Ensure the documentation for both Ethermint and the EVM module are up to date with the implementation. JSON-RPC and OpenAPI (Swagger) docs for gRPC gateway and Rosetta will also be available for client developers. The team will create relevant sections to compare and distinguish key components of Ethermint and their corresponding ones on Ethereum. [CS]
    • Metrics: We plan to list relevant metrics available through the SDK telemetry system for user engagement information such as the number of contracts deployed, amount transacted, gas usage per block, number of accounts created, number and amount IBC transfers to and from Ethermint, etc. These metrics will be displayed in a Dashboard UI in the form of charts. [CS]
    • Ensure compatibility with Ethereum tooling: Test and coordinate with dev teams to test compatibility with (Truffle, Ganache, Metamask, web3.js, ethers.js, etc) and ensure the same dev UX as with Ethereum. The compatibility will then be ensured through end-to-end and integration tests. [CS]
    • User Guides: Relevant guides will be added to connect Ethermint with the tools mentioned above.
    • Cosmjs Library support: Make Ethermint keys, signing, queries, and txs compatible with the cosmjs (opens new window) library.
    • EIP 3085 (opens new window) support: add wallet_addEthereumChain JSON-RPC endpoint for Ethermint.

    # Milestone 2: Maximizing Performance and Compatibility

    This milestone aims to enhance and benchmark the Ethermint chain's performance so developers can experience its superior benefits over existing solutions in the market.

    • EVM module readiness: The current x/evm module from Ethermint suffers from technical debt regarding its architecture. The current proposal will do a bottleneck analysis of the EVM state transitions to redesign the EVM module to boost performance.
    • Benchmarks: As a final step, we will be performing benchmarks for Ethereum transactions before and after the EVM refactor has been completed. [CS]
    • Maintain a permanent testnet: Ethermint will have a permanent testnet to ease the development process for Ethereum developers and clients that wish to connect to Ethermint. The team will create a dedicated website, infrastructure, and faucet UI for users to request funds.
    • Faucet support: The team will ensure an Ethermint-compatible faucet implementation is supported to ensure the sustainability of the permanent testnet. This will be also integrated into the existing faucet library of cosmjs. [CS]
    • Ethereum Bridge: Integrate a combination of the following bridges in order to make Ethermint interoperable with Ethereum ERC20s: Cosmos Gravity bridge, IBC solo machine bridge, Chainbridge [CS].

    # Milestone 3: Mainnet readiness

    This milestone's objective is to enhance security and users' accessibility to Ethermint, and stress-test the network before the mainnet launch.

    • Relayer Integration: While the Ethermint migration to the SDK Stargate version supports IBC fungible token transfers on the app level, additional setup and integration is required to the IBC relayers to enable compatibility with Ethermint fully. The team will integrate the Ethermint keys and the remaining pieces to the relayer for full IBC support.
    • Ledger Support: The team will perform an assessment of the current Cosmos and Ethereum ledger device applications to test their compatibility with Ethermint. If the keys or signing is not supported, the team will coordinate with ZondaX, the Ledger team, and other key partners to integrate the patches to the corresponding apps.
    • Simulations: fuzz transaction testing for Ethermint and the EVM module. This will be done through the implementation of simulations and the manticore (opens new window) smart contract execution analysis tool.

    # Milestone 4: Mainnet launch

    This milestone aims to provide support and coordination across the Cosmos community to ensure a safe and successful launch of the Ethermint mainnet.

    • Incentivized Testnet: Planification, coordination and launch of the upcoming Ethermint’s incentivized testnet: Game of Ethermint.
    • Support Mainnet launch: The team will support Ethermint’s mainnet launch by coordinating with key stakeholders, ecosystem partners, validators, community, etc. [CS]

    # Ongoing tasks

    Below are hard commitment items that are required for a successful launch but don’t fit into any particular milestone as they are recurring over the whole development period.

    • Core Ethermint repository maintenance: The team will commit to review community contributions and engage with issues and discussions regarding bugs and feature requests in the core codebase.
    • Coordination with Cosmos SDK core team: Since the Ethermint codebase uses a lot of custom functionality (keys, AnteHandler, modular servers, etc) some changes/patches will need to be upstreamed to the Cosmos SDK to ensure modularity and non-breakingness.
    • Client support: Develop partnerships with exchanges and wallets to support Ethermint through the Ethereum-compatible JSON-RPC or the gRPC services from the SDK since day one.
    • Community support: Respond and support the community inquiries on Discord and other relevant channels.
    • Security Audit: perform an internal and a third-party security audit prior to launch.
    • Bug bounty: Coordinate a bug bounty program for the EVM module and the JSON-RPC server prior to launch.

    # Soft Commitments

    See the full version (opens new window) of this document.

    # Conclusion

    With this proposal, Tharsis plans to expedite the Ethermint chain's development and launch the network by Q4 2021. Ethermint will be the first EVM-compatible chain on Cosmos that will be fully interoperable with other BFT and EVM chains via IBC and the Gravity bridge.

    By creating and envisioning this long-term roadmap, we believe Ethermint can act as the vital component of the Interchain and serve as the gateway between the Ethereum and Cosmos ecosystems: The Ethermint launch will combine the Cosmos and Ethereum communities and provide new economic opportunities for millions of users.

    - +

    # Advancing Ethermint - Governance Proposal: GTM and Engineering Plan for the Ethermint Chain

    NOTE: this is a short version of the full proposal. To read the full document click here (opens new window).

    # Author

    Federico Kunze Küllmer: @fedekunze (opens new window)

    # Summary

    Tharsis is requesting 100,000 ATOMs from the Cosmos Hub community pool to fund, develop and advance the Ethermint project and launch an Ethermint Chain. The team will use these resources to grow our dedicated Cosmos-EVM team, so we can take on the commitments and responsibilities necessary to maintain and support the Cosmos-EVM chain and codebase.

    An Ethermint environment has enormous potential to unlock new use cases within the Cosmos ecosystem that are not possible on Ethereum today. Use cases that require scalability and composability are some of the endless possibilities for Ethermint.

    Ethermint is a way of vertically and horizontally scaling the projects that deploy on Ethereum, by allowing:

    • Access to greater liquidity through IBC
    • Faster transaction times through Tendermint BFT's instant finality
    • Less strain on the Ethereum chain to process transactions (i.e. through gravity bridge)
    • Seamless portability and composability with Ethereum Virtual Machine support

    The commitments stated in this proposal will ensure a successful launch for the Ethermint chain together with its existing contributors (ChainSafe, OKEx, Iris, Injective, etc). Launching collaboratively with Ethermint stakeholders will result in a robust and independent community within Cosmos that will enable greater developer adoption of Cosmos technology.

    The Ethermint stakeholders are partnering to execute on the long-awaited Ethermint Chain by joining forces to develop and deploy a new Cosmos EVM chain that will be used by thousands of crypto users at launch.

    # Governance Votes

    The following items summarize the voting options and what it means for this proposal. All addresses that vote on the proposal might be eligible for a future airdrop.

    • YES: You approve the proposal statements and distribute the amount of 100,000 ATOMs to the multisig address. The treasury will allocate the funds to the Tharsis team, leading Ethermint's core development efforts and supporting the chain's go-to-market strategy. It will also lead to core technology maintenance and continuous discussion to ensure the project's longevity.
    • NO: The NO vote is a request for improvements or adjustments. You agree that this proposal's motivation is valuable and that the team should create a follow-up proposal once the amendments are included.
    • NO (VETO): You veto the entire motivation for the proposal and expect the ICF and current maintainers to make the determination and continue the stewardship of the project. The proposers will not create a follow-up proposal.
    • ABSTAIN: You are impartial to the outcome of the proposal.

    # Multisig and release of funds

    Upon the approval of the proposal, the treasury will distribute the funds to a ⅔ multi-signature account managed by the following individuals/partners:

    • Federico Kunze Küllmer - Tharsis (proposer)
    • Zaki Manian - Iqlusion
    • Marko Baricevic - Interchain GmbH

    The account address is: cosmos124ezy53svellxqs075g69n4f5c0yzcy5slw7xz

    If the proposal passes, the team will immediately receive 40% of the funds to expand its engineering team and other business development efforts to support GTM for the chain. The remaining 60% will be released in an equal proportion to the number of milestones upon the completion of each milestone. For any reason, if the proposer has not completed the next milestone within a year of the last payment, the remaining funds held in the multisig account will be returned to the community pool.

    # Product commitment

    The current proposal aims to develop all the necessary components for a successful Ethermint chain. Our team will lead the core development efforts to execute the points below.

    # Hard Commitments

    These are the items that are mandatory for the release of funds. The items will be split into four milestones.

    NOTE: Some of the items below are currently stated under ChainSafe's service agreement with the ICF for Ethermint. Our team will collaborate with them on these items so that they are included by the time the EVM chain is launched. These items are marked below as [CS]

    # Milestone 1: Developer Usability and Testing

    This milestone aims to reach a stage where developers can begin deployments of Ethermint with the latest Cosmos SDK version and test their smart contracts in what will feel like a seamless experience.

    • Starport support: Collaborate to ensure compatibility with Starport for developers that wish to use the EVM module with the latest SDK version on their sovereign chains.
    • Rosetta API support: Support Ethermint transactions and queries on Coinbase’s Rosetta API that has been integrated into the SDK.
    • EVM Consistency: Ensure that Ethermint can operate the same state as Ethereum and deterministically runs smart contract executions, exactly how Geth does (for example, checking the gas used between Ethermint and Geth)
    • Replay attack protection: Register Ethermint permanent testnet and mainnet chain-ids to ChainID Registry (opens new window) according to EIP 155 (opens new window).
    • Documentation: Ensure the documentation for both Ethermint and the EVM module are up to date with the implementation. JSON-RPC and OpenAPI (Swagger) docs for gRPC gateway and Rosetta will also be available for client developers. The team will create relevant sections to compare and distinguish key components of Ethermint and their corresponding ones on Ethereum. [CS]
    • Metrics: We plan to list relevant metrics available through the SDK telemetry system for user engagement information such as the number of contracts deployed, amount transacted, gas usage per block, number of accounts created, number and amount IBC transfers to and from Ethermint, etc. These metrics will be displayed in a Dashboard UI in the form of charts. [CS]
    • Ensure compatibility with Ethereum tooling: Test and coordinate with dev teams to test compatibility with (Truffle, Ganache, Metamask, web3.js, ethers.js, etc) and ensure the same dev UX as with Ethereum. The compatibility will then be ensured through end-to-end and integration tests. [CS]
    • User Guides: Relevant guides will be added to connect Ethermint with the tools mentioned above.
    • Cosmjs Library support: Make Ethermint keys, signing, queries, and txs compatible with the cosmjs (opens new window) library.
    • EIP 3085 (opens new window) support: add wallet_addEthereumChain JSON-RPC endpoint for Ethermint.

    # Milestone 2: Maximizing Performance and Compatibility

    This milestone aims to enhance and benchmark the Ethermint chain's performance so developers can experience its superior benefits over existing solutions in the market.

    • EVM module readiness: The current x/evm module from Ethermint suffers from technical debt regarding its architecture. The current proposal will do a bottleneck analysis of the EVM state transitions to redesign the EVM module to boost performance.
    • Benchmarks: As a final step, we will be performing benchmarks for Ethereum transactions before and after the EVM refactor has been completed. [CS]
    • Maintain a permanent testnet: Ethermint will have a permanent testnet to ease the development process for Ethereum developers and clients that wish to connect to Ethermint. The team will create a dedicated website, infrastructure, and faucet UI for users to request funds.
    • Faucet support: The team will ensure an Ethermint-compatible faucet implementation is supported to ensure the sustainability of the permanent testnet. This will be also integrated into the existing faucet library of cosmjs. [CS]
    • Ethereum Bridge: Integrate a combination of the following bridges in order to make Ethermint interoperable with Ethereum ERC20s: Cosmos Gravity bridge, IBC solo machine bridge, Chainbridge [CS].

    # Milestone 3: Mainnet readiness

    This milestone's objective is to enhance security and users' accessibility to Ethermint, and stress-test the network before the mainnet launch.

    • Relayer Integration: While the Ethermint migration to the SDK Stargate version supports IBC fungible token transfers on the app level, additional setup and integration is required to the IBC relayers to enable compatibility with Ethermint fully. The team will integrate the Ethermint keys and the remaining pieces to the relayer for full IBC support.
    • Ledger Support: The team will perform an assessment of the current Cosmos and Ethereum ledger device applications to test their compatibility with Ethermint. If the keys or signing is not supported, the team will coordinate with ZondaX, the Ledger team, and other key partners to integrate the patches to the corresponding apps.
    • Simulations: fuzz transaction testing for Ethermint and the EVM module. This will be done through the implementation of simulations and the manticore (opens new window) smart contract execution analysis tool.

    # Milestone 4: Mainnet launch

    This milestone aims to provide support and coordination across the Cosmos community to ensure a safe and successful launch of the Ethermint mainnet.

    • Incentivized Testnet: Planification, coordination and launch of the upcoming Ethermint’s incentivized testnet: Game of Ethermint.
    • Support Mainnet launch: The team will support Ethermint’s mainnet launch by coordinating with key stakeholders, ecosystem partners, validators, community, etc. [CS]

    # Ongoing tasks

    Below are hard commitment items that are required for a successful launch but don’t fit into any particular milestone as they are recurring over the whole development period.

    • Core Ethermint repository maintenance: The team will commit to review community contributions and engage with issues and discussions regarding bugs and feature requests in the core codebase.
    • Coordination with Cosmos SDK core team: Since the Ethermint codebase uses a lot of custom functionality (keys, AnteHandler, modular servers, etc) some changes/patches will need to be upstreamed to the Cosmos SDK to ensure modularity and non-breakingness.
    • Client support: Develop partnerships with exchanges and wallets to support Ethermint through the Ethereum-compatible JSON-RPC or the gRPC services from the SDK since day one.
    • Community support: Respond and support the community inquiries on Discord and other relevant channels.
    • Security Audit: perform an internal and a third-party security audit prior to launch.
    • Bug bounty: Coordinate a bug bounty program for the EVM module and the JSON-RPC server prior to launch.

    # Soft Commitments

    See the full version (opens new window) of this document.

    # Conclusion

    With this proposal, Tharsis plans to expedite the Ethermint chain's development and launch the network by Q4 2021. Ethermint will be the first EVM-compatible chain on Cosmos that will be fully interoperable with other BFT and EVM chains via IBC and the Gravity bridge.

    By creating and envisioning this long-term roadmap, we believe Ethermint can act as the vital component of the Interchain and serve as the gateway between the Ethereum and Cosmos ecosystems: The Ethermint launch will combine the Cosmos and Ethereum communities and provide new economic opportunities for millions of users.

    + diff --git a/main/governance/proposals/2021-04-lower-deposit-requirement/index.html b/main/governance/proposals/2021-04-lower-deposit-requirement/index.html index 9e74bd24479..23dcd160170 100644 --- a/main/governance/proposals/2021-04-lower-deposit-requirement/index.html +++ b/main/governance/proposals/2021-04-lower-deposit-requirement/index.html @@ -8,11 +8,11 @@ - + -

    # Parameter change: lower minimum proposal deposit amount

    # Summary

    The current deposit amount of 512 ATOMs prohibits valuable governance activity from small holders or those with most of their ATOM staked. We propose lowering the requirement to 64 ATOMS.

    # Objectives

    1. Enable community members with good ideas but little capital to participate in governance and request resources from the community pool treasury.
    2. Improve the governance UX for holders who keep most of their ATOM staked.
    3. Increase utilisation of treasury (currently 666,457 ATOM, approximately $14 MM USD, at time of writing).
    4. Accelerate Cosmos Hub development and growth.

    # Background

    Current deposit is 512 ATOMs (approximately $10k USD today). The ATOM price when the community treasury was activated (2019-05-03) was $4.99 (source: CoinMarketCap), meaning the total required deposit to submit a proposal was $2,555. Today, most proposers must coordinate with large ATOM holders to request additional funds in order to meet the minimum deposit requirements. This also applies to large ATOM holders who want to be active in governance but do not have enough liquid ATOM to meet the deposit requirements, as staked ATOM cannot be used to post deposits.

    # Proposers

    Federico Kunze Küllmer (Tharsis) and Sam Hart (Interchain).

    Credit to Gavin Birch (Figment Networks) and the Cosmos Governance Working Group (GWG) for initiating a recent conversation that motivated this proposal.

    # Proposed Parameter Change

    Change the minimum proposal deposit requirement from 512 ATOMs (aprox. $10,000 USD) to 64 ATOMs (aprox. $1,300 USD).

    Note: Parameters are denominated in micro-ATOMs, as described in the governance parameter list (opens new window).

    # Risks

    This change makes it easier to submit spam proposals.

    While this is true, in order to fully mitigate spam the Cosmos Hub must increase the minimum deposit required for proposal submission (opens new window).

    By increasing the number of submissions, voter participation or the level of consideration given to each proposal may decrease.

    We believe this is a justifiable trade-off for promoting more community-driven initiatives and enthusiasm for advancing Cosmos. As we lower the barrier to entry for governance participation, we invite community members to take this opportunity to enact more effective and efficient governance practices. The upcoming Groups, Authz, and Interchain Accounts modules will provide powerful abstractions to this end.

    # Alternatives

    Wait for the Cosmos Hub to adopt proposed changes to the Governance module for variable deposit amounts, quorom thresholds, and voting periods.

    These initiatives should not be mutually exclusive. While research and development of these features is ongoing, the Cosmos Hub will benefit from this parameter change today, as well as the precedent it sets for self-improving governance.

    Since the ATOM price fluctuates with respect to USD, make proposal thresholds reference a stable price oracle

    This is an interesting design space, however it becomes more plausible if and when the Cosmos Hub adds a decentralized exchange that can be used to produce a reference rate. Lowering the proposal threshold is a temporary solution that will help in the short-term.

    # Governance Votes

    The following items summarise the voting options and what it means for this proposal.

    • YES: You approve the parameter change proposal to decrease the governance proposal deposit requirements from 512 to 64 ATOMs.
    • NO: You disapprove of the parameter change in its current form (please indicate in the Cosmos Forum why this is the case).
    • NO WITH VETO: You are strongly opposed to this change and will exit the network if passed.
    • ABSTAIN: You are impartial to the outcome of the proposal.
    - +

    # Parameter change: lower minimum proposal deposit amount

    # Summary

    The current deposit amount of 512 ATOMs prohibits valuable governance activity from small holders or those with most of their ATOM staked. We propose lowering the requirement to 64 ATOMS.

    # Objectives

    1. Enable community members with good ideas but little capital to participate in governance and request resources from the community pool treasury.
    2. Improve the governance UX for holders who keep most of their ATOM staked.
    3. Increase utilisation of treasury (currently 666,457 ATOM, approximately $14 MM USD, at time of writing).
    4. Accelerate Cosmos Hub development and growth.

    # Background

    Current deposit is 512 ATOMs (approximately $10k USD today). The ATOM price when the community treasury was activated (2019-05-03) was $4.99 (source: CoinMarketCap), meaning the total required deposit to submit a proposal was $2,555. Today, most proposers must coordinate with large ATOM holders to request additional funds in order to meet the minimum deposit requirements. This also applies to large ATOM holders who want to be active in governance but do not have enough liquid ATOM to meet the deposit requirements, as staked ATOM cannot be used to post deposits.

    # Proposers

    Federico Kunze Küllmer (Tharsis) and Sam Hart (Interchain).

    Credit to Gavin Birch (Figment Networks) and the Cosmos Governance Working Group (GWG) for initiating a recent conversation that motivated this proposal.

    # Proposed Parameter Change

    Change the minimum proposal deposit requirement from 512 ATOMs (aprox. $10,000 USD) to 64 ATOMs (aprox. $1,300 USD).

    Note: Parameters are denominated in micro-ATOMs, as described in the governance parameter list (opens new window).

    # Risks

    This change makes it easier to submit spam proposals.

    While this is true, in order to fully mitigate spam the Cosmos Hub must increase the minimum deposit required for proposal submission (opens new window).

    By increasing the number of submissions, voter participation or the level of consideration given to each proposal may decrease.

    We believe this is a justifiable trade-off for promoting more community-driven initiatives and enthusiasm for advancing Cosmos. As we lower the barrier to entry for governance participation, we invite community members to take this opportunity to enact more effective and efficient governance practices. The upcoming Groups, Authz, and Interchain Accounts modules will provide powerful abstractions to this end.

    # Alternatives

    Wait for the Cosmos Hub to adopt proposed changes to the Governance module for variable deposit amounts, quorom thresholds, and voting periods.

    These initiatives should not be mutually exclusive. While research and development of these features is ongoing, the Cosmos Hub will benefit from this parameter change today, as well as the precedent it sets for self-improving governance.

    Since the ATOM price fluctuates with respect to USD, make proposal thresholds reference a stable price oracle

    This is an interesting design space, however it becomes more plausible if and when the Cosmos Hub adds a decentralized exchange that can be used to produce a reference rate. Lowering the proposal threshold is a temporary solution that will help in the short-term.

    # Governance Votes

    The following items summarise the voting options and what it means for this proposal.

    • YES: You approve the parameter change proposal to decrease the governance proposal deposit requirements from 512 to 64 ATOMs.
    • NO: You disapprove of the parameter change in its current form (please indicate in the Cosmos Forum why this is the case).
    • NO WITH VETO: You are strongly opposed to this change and will exit the network if passed.
    • ABSTAIN: You are impartial to the outcome of the proposal.
    + diff --git a/main/governance/proposals/2021-04-prop34-continuation/index.html b/main/governance/proposals/2021-04-prop34-continuation/index.html index acbf2e8e540..6c3f768e6a9 100644 --- a/main/governance/proposals/2021-04-prop34-continuation/index.html +++ b/main/governance/proposals/2021-04-prop34-continuation/index.html @@ -8,7 +8,7 @@ - + @@ -40,7 +40,7 @@ - Total valid entries: 2000+ - Cosmonaut Telegram channel growth: 700+ new people in 2 weeks (organic) - Cosmonaut Twitter channel growth: 400+ new people in 2 weeks (organic) -MEME Live tracker (opens new window) Competition outline (opens new window)

    - +MEME Live tracker (opens new window) Competition outline (opens new window)

    + diff --git a/main/governance/proposals/2021-05-gravity-bridge-deployment/index.html b/main/governance/proposals/2021-05-gravity-bridge-deployment/index.html index 6b70f2a297a..1b688d40e50 100644 --- a/main/governance/proposals/2021-05-gravity-bridge-deployment/index.html +++ b/main/governance/proposals/2021-05-gravity-bridge-deployment/index.html @@ -8,12 +8,12 @@ - +

    # Signaling Proposal - Deployment of Gravity Bridge on the Cosmos Hub

    Gravity Bridge

    # Summary

    This proposal is a Request For Comment from the ATOM community regarding the activation of the Gravity Bridge module onto the Cosmos Hub.

    By voting YES to this proposal, you will signal that you approve of having the Gravity Ethereum <> Cosmos bridge deployed onto the Cosmos Hub.

    # Vision

    Gravity as an Ethereum-Cosmos bridge is designed for the Cosmos Hub to pull as much value as possible into the orbits of Cosmos via a direct and decentralized bridge. Gravity will be able to bring ERC20 assets from Ethereum into Cosmos, as well as Cosmos assets to Ethereum ERC20 representations. ATOM, and any other asset in the Cosmos ecosystem, will be able to trade on Uniswap and other Ethereum AMMs, and interact with Ethereum DeFi like any ERC20 token. As well, Cosmos Hub users can use the Gravity DEX to trade between ERC20 assets and tokens that are transferred using IBC. This will bring a tremendous amount of liquidity and utility to these multi-chain assets.

    # Cosmos, Ethereum, and Gravity

    Gravity is a secure and highly efficient bridge between EVM and Cosmos SDK-based blockchains. At a high-level, Gravity enables token transfers from Ethereum to the Cosmos Hub and back again by locking tokens on the Ethereum side and minting equivalent tokens on the Cosmos side.

    Gravity is completely non-custodial. Control of the bridge mirrors the active validator set on the Cosmos SDK-based chain, and validator stake on Cosmos can be slashed for misbehavior involving the Gravity bridge.

    The Gravity Ethereum contract is highly optimized, utilizing batches to dramatically reduce the cost of Cosmos -> Ethereum transfers. Sending funds from Cosmos back to Ethereum can be up to 50% less costly than a normal ERC20 send.

    # How do validators support the Gravity Bridge?

    Cosmos Hub validators will run three key software components of the Gravity bridge:

    • The Gravity bridge module, integrated into gaiad (the binary that runs the Cosmos Hub)
    • The Gravity bridge Orchestrator
    • A Geth light client or any Ethereum full node implementing the JSON-rpc standard

    # Cosmos to Ethereum:

    To send transactions from Cosmos to Ethereum, the Gravity Bridge module of a validator's Gaia instance first packages the transaction data, and makes it available on an endpoint. The Orchestrator then signs this data with the validator’s Ethereum key, and submits it as a message to the Ethereum network. The Ethereum signature of each Cosmos validator needs to be assembled and submitted to the Ethereum chain by relayers.

    Validators may be slashed if they fail to submit Ethereum signatures within 10,000 blocks (about twelve to fourteen hours) of their creation.

    The current liveness rules require a validator to sign at least 500 of the last 10,000 blocks (about twelve to fourteen hours)

    Validators may also be slashed if they sign a message with their Ethereum key that was not created by the Gravity bridge module.

    Gravity bridge has no other slashing conditions.

    # Ethereum to Cosmos:

    The Orchestrator also monitors the Ethereum chain, submitting events that occur on Ethereum to Cosmos as messages. When more than 2/3 of the active voting power has sent a message observing the same Ethereum event, the Gravity module will take action.

    This oracle action will not be incentivized, nor will it be enforced with slashing. If validators making up more than 33% of the staked tokens do not participate in the oracle, new deposits and withdrawals will not be processed until those validators resume their oracle obligations.

    The oracle was designed to adhere to the Cosmos Hub validator security model without slashing conditions to ensure that a consensus failure on Ethereum does not affect operation of the Cosmos chain.

    # Slashing Conditions Spec

    https://github.com/cosmos/gravity-bridge/blob/main/spec/slashing-spec.md

    # How does it work?

    Gravity consists of 4 parts:

    • An Ethereum contract called Gravity.sol
    • The Gravity Cosmos module of Gaia
    • The orchestrator program which is run by Cosmos validators alongside the Gravity module
    • A market of relayers, who compete to submit transactions to Ethereum

    # Gravity.sol

    The Gravity Ethereum contract is a highly compact and efficient representation of weighted powers voting on Ethereum. It contains an Etheruem key from each Cosmos validator, as well as their voting power. This signer set is continuously updated as validation power changes on Cosmos, ensuring that it matches the current Cosmos validator set.

    Sending tokens, or updating the validator set, contained in Gravity.sol requires more than 66% of the total voting power to approve the action. In this way Gravity.sol mirrors Tendermint consensus on the Cosmos chain as closely as possible on Ethereum.

    # Gravity Cosmos Module

    The Gravity module governs and coordinates the bridge. Generating messages for the validators to sign with their Ethereum keys and providing these signatures to relayers who assemble and submit them to the Ethereum chain.

    # Orchestrator

    The Gravity bridge orchestrator performs all the external tasks the Gravity bridge requires for validators, which includes submission of signatures and submission of Ethereum events.

    While the Gravity module concerns itself with the correctness and consensus state of the bridge, the Orchestrator is responsible for locating and creating the correct inputs.

    # Market of Relayers

    Relayers are an unpermissioned role that observes the Cosmos chain for messages ready to be submitted to Ethereum.

    The relayer then packages the validators signatures into an Ethereum transaction and submits that transaction to the Ethereum blockchain. All rewards in the Gravity bridge design are paid to msg.sender on Ethereum. This means that relayers do not require any balance on the Cosmos side and can immediately liquidate their earnings into ETH while continuing to relay newer messages.

    # Security assumptions

    The Gravity bridge is designed with the assumption that the total amount of funds in Gravity.sol is less than the value of the validator set’s total staked tokens.

    If this assumption does not hold true, it would be more profitable for validators to steal the funds in the bridge and simply lose their stake to slashing.

    There is no automated enforcement of this assumption. It is up to the $ATOM holders to take action if the amount deposited in the bridge exceeds the total value of all stake on the hub.

    It should be noted that this condition is not unique to the Gravity bridge. The same dynamic exists for any IBC connection, and even exists in scenarios other than cross-chain communication. For example, in a hypothetical blockchain keeping domain name records, this same vulnerability would exist if the potential profit from exploiting the domain name system was greater than the value of the validator set’s total staked tokens.

    # Ongoing work

    The Gravity Bridge has been continuously tested throughout Q1/Q2 2021 by multiple ongoing test nets with a diverse group of validators.

    # Testing

    The Althea team is committed to playing a long-term role in upgrading, documenting, and supporting Gravity over the coming years. -The Gravity bridge is currently live and running in a testnet, which validators can join by following the instructions here (opens new window)

    # Audit:

    The Gravity bridge module is currently undergoing an audit with Informal Systems estimated to be completed by the end of July, 2021.

    Phase one of the audit has been completed, which resulted in the addition of evidence based slashing and several other minor design fixes.

    The phase two design audit will be completed by the end of June. To be followed by phrase three, an implementation audit to be completed by the end of July.

    # Conclusion:

    With this proposal, the Althea team, together with Cosmos ecosystem partners, will expedite the development of the Gravity Bridge with an incentivized testnet and launch in Q3 2021. Althea will be closely shepherding the Gravity Bridge throughout all phases related to the testing, audit, and implementation process on the Cosmos Hub.

    # Proposers

    The Althea Gravity bridge team.

    Deborah Simpiler, Justin Kilpatrick and, Jehan Tremback

    We’d like to share praise and thank you for contributions from the following teams!

    Interchain Foundation

    All in Bits/Tendermint

    Sommelier, Informal, Injective, Confio

    Gravity Readiness Committee:

    Justin Kilpatrick and Jehan Tremback, Althea

    Zarko Milosevic, Informal Systems

    Zaki Manian, Sommelier/Iqlusion

    # Governance Votes

    The following items summarize the voting options and what it means for this proposal.

    • YES: You agree that Gravity Bridge should be deployed to the Cosmos Hub.
    • NO: You disapprove of deploying Gravity bridge on the Cosmos Hub in its current form (please indicate in the Cosmos Forum (opens new window) why this is the case).
    • NO WITH VETO: You are strongly opposed to the deployment of Gravity bridge on the Cosmos Hub and will exit the network if this occurred.
    • ABSTAIN: You are impartial to the outcome of the proposal.

    # Appendix

    # FAQ

    # Is running the Gravity Module difficult for Cosmos Validators?

    Soliciting feedback from dozens of Cosmos hub validators and over 100 test net participants, we found that running the Gravity module is not a difficult task or undue burden on Cosmos validators.

    # Is the Gravity bridge secure?

    The Gravity bridge is undergoing an audit by Informal Systems. It will then be up to ATOM holders to interpret the results of the code audit and weigh implementation risks in another governance proposal before deployment. Fundamentally, the design of the Gravity Bridge means that its security is directly represented by the security of the validator set on Cosmos Hub. On the Cosmos side, the Gravity Bridge security design adheres to the Cosmos network's ideal of safety over liveness assured by 2/3+ validator voting power, but without sacrificing safety or liveness due to issues that may rarely arise with Ethereum.

    # Are slashing conditions a problem for validators?

    Gravity Bridge slashing conditions closely mirror the slashing conditions which validators are already subject to.

    • Uptime: Validators on Cosmos currently must keep their validator software running at all times, or risk slashing. Gravity adds an additional binary which must be run, which is low in difficulty, resource usage, and operational requirements.

    • Equivocation: Validators on Cosmos are subject to slashing if they sign two blocks at the same height. It is possible for this to happen through accidental misconfiguration. Gravity adds an additional item which must not be signed, which are the fraudulent bridge transactions that never existed on Cosmos. It is not possible for this to happen by accident, so this slashing condition is much less of a risk than the Hub’s existing slashing conditions.

    # What about peg zones?

    The concept of a "peg zone" has been around in Cosmos for a while. This is a separate chain which runs the Gravity Bridge and connects to Ethereum or another blockchain. We believe that running Gravity Bridge on the Cosmos Hub and connecting directly is the superior solution. First, let's look at what different forms peg zones could take.

    1. The most likely type of peg zone is what will result if this proposal does not pass. There are at least 5 Cosmos SDK chains who will be using the Gravity Bridge module to connect to Ethereum. There will be no official way to bridge Ethereum assets into the Cosmos ecosystem. Instead there will be many dueling representations of Ethereum assets. It goes without saying that this will confuse Cosmos users. If one of these peg zones gains the upper hand and becomes dominant, the Cosmos Hub will miss out on all the transaction fees that it generates.

    2. It would also be possible to establish an official peg zone, and airdrop its staking token 1:1 to current Atom holders. This would at least allow the Cosmos Hub stakeholders to keep the economic benefit of activity on the peg zone. However, this is capital inefficient. A dollar staked on this peg zone would not be staked on the hub and vice versa. Splitting stake between these two important chains would make both weaker. Cosmos users will also need to choose whether to put value into Atom or put value into the peg zone token, resulting in less value in Atom.

    3. Shared security has been talked about for a long time in Cosmos, but it is not yet in production. Establishing a peg zone with shared security with the Cosmos Hub would allow the same validator set to validate both chains, and put the same Atoms at stake to secure each of them. This would avoid the issues of scenarios 1 and 2 above. However, we cannot afford to wait. Many other PoS blockchains already have Ethereum bridges and Cosmos needs to continue innovating to stay relevant.

    This is easier to both design and debug, and is ideal for high-value chains like the Hub.

    # Why not use IBC to create a bridge to Ethereum?

    Ethereum as it currently exists (ETH1) fundamentally can not implement IBC. It may be possible in the future to create an IBC bridge with ETH2.

    Implementing IBC for ETH2 require significant development effort and coordination with the Ethereum team as well as the completion and deployment of ETH2, which is on an uncertain timeline.

    Gravity bridge is a design that can be deployed in the forseeable future and will continue to function so long as ETH1 compatibility is maintained.

    - +The Gravity bridge is currently live and running in a testnet, which validators can join by following the instructions here (opens new window)

    # Audit:

    The Gravity bridge module is currently undergoing an audit with Informal Systems estimated to be completed by the end of July, 2021.

    Phase one of the audit has been completed, which resulted in the addition of evidence based slashing and several other minor design fixes.

    The phase two design audit will be completed by the end of June. To be followed by phrase three, an implementation audit to be completed by the end of July.

    # Conclusion:

    With this proposal, the Althea team, together with Cosmos ecosystem partners, will expedite the development of the Gravity Bridge with an incentivized testnet and launch in Q3 2021. Althea will be closely shepherding the Gravity Bridge throughout all phases related to the testing, audit, and implementation process on the Cosmos Hub.

    # Proposers

    The Althea Gravity bridge team.

    Deborah Simpiler, Justin Kilpatrick and, Jehan Tremback

    We’d like to share praise and thank you for contributions from the following teams!

    Interchain Foundation

    All in Bits/Tendermint

    Sommelier, Informal, Injective, Confio

    Gravity Readiness Committee:

    Justin Kilpatrick and Jehan Tremback, Althea

    Zarko Milosevic, Informal Systems

    Zaki Manian, Sommelier/Iqlusion

    # Governance Votes

    The following items summarize the voting options and what it means for this proposal.

    • YES: You agree that Gravity Bridge should be deployed to the Cosmos Hub.
    • NO: You disapprove of deploying Gravity bridge on the Cosmos Hub in its current form (please indicate in the Cosmos Forum (opens new window) why this is the case).
    • NO WITH VETO: You are strongly opposed to the deployment of Gravity bridge on the Cosmos Hub and will exit the network if this occurred.
    • ABSTAIN: You are impartial to the outcome of the proposal.

    # Appendix

    # FAQ

    # Is running the Gravity Module difficult for Cosmos Validators?

    Soliciting feedback from dozens of Cosmos hub validators and over 100 test net participants, we found that running the Gravity module is not a difficult task or undue burden on Cosmos validators.

    # Is the Gravity bridge secure?

    The Gravity bridge is undergoing an audit by Informal Systems. It will then be up to ATOM holders to interpret the results of the code audit and weigh implementation risks in another governance proposal before deployment. Fundamentally, the design of the Gravity Bridge means that its security is directly represented by the security of the validator set on Cosmos Hub. On the Cosmos side, the Gravity Bridge security design adheres to the Cosmos network's ideal of safety over liveness assured by 2/3+ validator voting power, but without sacrificing safety or liveness due to issues that may rarely arise with Ethereum.

    # Are slashing conditions a problem for validators?

    Gravity Bridge slashing conditions closely mirror the slashing conditions which validators are already subject to.

    • Uptime: Validators on Cosmos currently must keep their validator software running at all times, or risk slashing. Gravity adds an additional binary which must be run, which is low in difficulty, resource usage, and operational requirements.

    • Equivocation: Validators on Cosmos are subject to slashing if they sign two blocks at the same height. It is possible for this to happen through accidental misconfiguration. Gravity adds an additional item which must not be signed, which are the fraudulent bridge transactions that never existed on Cosmos. It is not possible for this to happen by accident, so this slashing condition is much less of a risk than the Hub’s existing slashing conditions.

    # What about peg zones?

    The concept of a "peg zone" has been around in Cosmos for a while. This is a separate chain which runs the Gravity Bridge and connects to Ethereum or another blockchain. We believe that running Gravity Bridge on the Cosmos Hub and connecting directly is the superior solution. First, let's look at what different forms peg zones could take.

    1. The most likely type of peg zone is what will result if this proposal does not pass. There are at least 5 Cosmos SDK chains who will be using the Gravity Bridge module to connect to Ethereum. There will be no official way to bridge Ethereum assets into the Cosmos ecosystem. Instead there will be many dueling representations of Ethereum assets. It goes without saying that this will confuse Cosmos users. If one of these peg zones gains the upper hand and becomes dominant, the Cosmos Hub will miss out on all the transaction fees that it generates.

    2. It would also be possible to establish an official peg zone, and airdrop its staking token 1:1 to current Atom holders. This would at least allow the Cosmos Hub stakeholders to keep the economic benefit of activity on the peg zone. However, this is capital inefficient. A dollar staked on this peg zone would not be staked on the hub and vice versa. Splitting stake between these two important chains would make both weaker. Cosmos users will also need to choose whether to put value into Atom or put value into the peg zone token, resulting in less value in Atom.

    3. Shared security has been talked about for a long time in Cosmos, but it is not yet in production. Establishing a peg zone with shared security with the Cosmos Hub would allow the same validator set to validate both chains, and put the same Atoms at stake to secure each of them. This would avoid the issues of scenarios 1 and 2 above. However, we cannot afford to wait. Many other PoS blockchains already have Ethereum bridges and Cosmos needs to continue innovating to stay relevant.

    This is easier to both design and debug, and is ideal for high-value chains like the Hub.

    # Why not use IBC to create a bridge to Ethereum?

    Ethereum as it currently exists (ETH1) fundamentally can not implement IBC. It may be possible in the future to create an IBC bridge with ETH2.

    Implementing IBC for ETH2 require significant development effort and coordination with the Ethereum team as well as the completion and deployment of ETH2, which is on an uncertain timeline.

    Gravity bridge is a design that can be deployed in the forseeable future and will continue to function so long as ETH1 compatibility is maintained.

    + diff --git a/main/governance/proposals/2021-07-atom-liquidity-incentives/index.html b/main/governance/proposals/2021-07-atom-liquidity-incentives/index.html index 48e737e3dd2..fa8b14de9d2 100644 --- a/main/governance/proposals/2021-07-atom-liquidity-incentives/index.html +++ b/main/governance/proposals/2021-07-atom-liquidity-incentives/index.html @@ -8,11 +8,11 @@ - + -

    # ATOM 🤝 Osmosis: Allocate Community Pool to ATOM Liquidity Incentives

    ATOMs should be the base money of Cosmos, just like ETH is the base money of the entire Ethereum DeFi ecosystem. ATOM is currently well positioned to play this role among Cosmos assets because it has the highest market cap, most liquidity, largest brand, and many integrations with fiat onramps. ATOM is the gateway to Cosmos.

    In the Cosmos Hub Port City vision, ATOMs are pitched as equity in the Cosmos Hub. However, this alone is insufficient to establish ATOM as the base currency of the Cosmos ecosystem as a whole. Instead, the ATOM community must work to actively promote the use of ATOMs throughout the Cosmos ecosystem, rather than passively relying on the Hub's reputation to create ATOM's value.

    In order to cement the role of ATOMs in Cosmos DeFi, the Cosmos Hub should leverage its community pool to help align incentives with other protocols within the Cosmos ecosystem. We propose beginning this initiative by using the community pool ATOMs to incentivize deep ATOM base pair liquidity pools on the Osmosis Network.

    Osmosis is the first IBC-enabled DeFi application. Within its 3 weeks of existence, it has already 100x’d the number of IBC transactions ever created, demonstrating the power of IBC and the ability of the Cosmos SDK to bootstrap DeFi protocols with $100M+ TVL in a short period of time. Since its announcement Osmosis has helped bring renewed attention and interest to Cosmos from the crypto community at large and kickstarted the era of Cosmos DeFi.

    Osmosis has already helped in establishing ATOM as the Schelling Point of the Cosmos ecosystem. The genesis distribution of OSMO was primarily based on an airdrop to ATOM holders specifically, acknowledging the importance of ATOM to all future projects within the Cosmos. Furthermore, the Osmosis LP rewards currently incentivize ATOMs to be one of the main base pairs of the platform.

    Osmosis has the ability to incentivize AMM liquidity, a feature not available on any other IBC-enabled DEX. Osmosis already uses its own native OSMO liquidity rewards to incentivize ATOMs to be one of the main base pairs, leading to ~2.2 million ATOMs already providing liquidity on the platform.

    In addition to these native OSMO LP Rewards, the platform also includes a feature called “external incentives” that allows anyone to permissionlessly add additional incentives in any token to the LPs of any AMM pools they wish. You can read more about this mechanism here: https://medium.com/osmosis/osmosis-liquidity-mining-101-2fa58d0e9d4d#f413 . Pools containing Cosmos assets such as AKT and XPRT are already planned to receive incentives from their respective community pools and/or foundations.

    We propose the Cosmos Hub dedicate 100,000 ATOMs from its Community Pool to be allocated towards liquidity incentives on Osmosis over the next 3 months. This community fund proposal will transfer 100,000 ATOMs to a multisig group who will then allocate the ATOMs to bonded liquidity gauges on Osmosis on a biweekly basis, according to direction given by Cosmos Hub governance. For simplicity, we propose setting the liquidity incentives to initially point to Osmosis Pool #1, the ATOM/OSMO pool, which is the pool with by far the highest TVL and Volume. Cosmos Hub governance can then use Text Proposals to further direct the multisig members to reallocate incentives to new pools.

    The multisig will consist of a 2/3 key holder set consisting of the following individuals whom have all agreed to participate in this process shall this proposal pass:

    • Zaki Manian
    • Federico Kunze
    • Marko Baricevic

    This is one small step for the Hub, but one giant leap for ATOM-aligned.

    - +

    # ATOM 🤝 Osmosis: Allocate Community Pool to ATOM Liquidity Incentives

    ATOMs should be the base money of Cosmos, just like ETH is the base money of the entire Ethereum DeFi ecosystem. ATOM is currently well positioned to play this role among Cosmos assets because it has the highest market cap, most liquidity, largest brand, and many integrations with fiat onramps. ATOM is the gateway to Cosmos.

    In the Cosmos Hub Port City vision, ATOMs are pitched as equity in the Cosmos Hub. However, this alone is insufficient to establish ATOM as the base currency of the Cosmos ecosystem as a whole. Instead, the ATOM community must work to actively promote the use of ATOMs throughout the Cosmos ecosystem, rather than passively relying on the Hub's reputation to create ATOM's value.

    In order to cement the role of ATOMs in Cosmos DeFi, the Cosmos Hub should leverage its community pool to help align incentives with other protocols within the Cosmos ecosystem. We propose beginning this initiative by using the community pool ATOMs to incentivize deep ATOM base pair liquidity pools on the Osmosis Network.

    Osmosis is the first IBC-enabled DeFi application. Within its 3 weeks of existence, it has already 100x’d the number of IBC transactions ever created, demonstrating the power of IBC and the ability of the Cosmos SDK to bootstrap DeFi protocols with $100M+ TVL in a short period of time. Since its announcement Osmosis has helped bring renewed attention and interest to Cosmos from the crypto community at large and kickstarted the era of Cosmos DeFi.

    Osmosis has already helped in establishing ATOM as the Schelling Point of the Cosmos ecosystem. The genesis distribution of OSMO was primarily based on an airdrop to ATOM holders specifically, acknowledging the importance of ATOM to all future projects within the Cosmos. Furthermore, the Osmosis LP rewards currently incentivize ATOMs to be one of the main base pairs of the platform.

    Osmosis has the ability to incentivize AMM liquidity, a feature not available on any other IBC-enabled DEX. Osmosis already uses its own native OSMO liquidity rewards to incentivize ATOMs to be one of the main base pairs, leading to ~2.2 million ATOMs already providing liquidity on the platform.

    In addition to these native OSMO LP Rewards, the platform also includes a feature called “external incentives” that allows anyone to permissionlessly add additional incentives in any token to the LPs of any AMM pools they wish. You can read more about this mechanism here: https://medium.com/osmosis/osmosis-liquidity-mining-101-2fa58d0e9d4d#f413 . Pools containing Cosmos assets such as AKT and XPRT are already planned to receive incentives from their respective community pools and/or foundations.

    We propose the Cosmos Hub dedicate 100,000 ATOMs from its Community Pool to be allocated towards liquidity incentives on Osmosis over the next 3 months. This community fund proposal will transfer 100,000 ATOMs to a multisig group who will then allocate the ATOMs to bonded liquidity gauges on Osmosis on a biweekly basis, according to direction given by Cosmos Hub governance. For simplicity, we propose setting the liquidity incentives to initially point to Osmosis Pool #1, the ATOM/OSMO pool, which is the pool with by far the highest TVL and Volume. Cosmos Hub governance can then use Text Proposals to further direct the multisig members to reallocate incentives to new pools.

    The multisig will consist of a 2/3 key holder set consisting of the following individuals whom have all agreed to participate in this process shall this proposal pass:

    • Zaki Manian
    • Federico Kunze
    • Marko Baricevic

    This is one small step for the Hub, but one giant leap for ATOM-aligned.

    + diff --git a/main/governance/proposals/2021-09-hub-ibc-router/index.html b/main/governance/proposals/2021-09-hub-ibc-router/index.html index 5521484a00d..84f53c4c5e9 100644 --- a/main/governance/proposals/2021-09-hub-ibc-router/index.html +++ b/main/governance/proposals/2021-09-hub-ibc-router/index.html @@ -8,7 +8,7 @@ - + @@ -40,6 +40,6 @@ }

    Strangelove Ventures has delivered an IBC Middleware module (opens new window) that will allow the hub to play the role of IBC Router that was always envisioned for it. Passing of this propsal will begin the era of the Hub offering interchain services to other chains and profiting from those relationships.

    To pay the hub validators and stakers, this proposal implements a governance configurable fee (which we propose should be initially set to 0.0 to encourage adoption) that will be taken out of each packet and given to the community pool. The community pool will then periodically trade these fees for ATOM and distribute them to staked holders. The exact distribution method of these fees is left TBD in this proposal as it is not initially required and can be implemented in a future governance proposal. One way to do this would be using the Groups module (opens new window), Community spend proposals and the Gravity DEX.

    A vote YES on this proposal indicates that this feature should be included in the next hub upgrade. We (as the Hub) believe that time is critical right now and we cannot wait to begin providing this service to other chains. A NO vote indicates that this shouldn't be included in the next upgrade.

    - + diff --git a/main/governance/proposals/index.html b/main/governance/proposals/index.html index 3ced7f8d393..1d62f3b0665 100644 --- a/main/governance/proposals/index.html +++ b/main/governance/proposals/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/governance/proposals/previous-proposals/index.html b/main/governance/proposals/previous-proposals/index.html index 5ce7a61d084..f78656e79f3 100644 --- a/main/governance/proposals/previous-proposals/index.html +++ b/main/governance/proposals/previous-proposals/index.html @@ -8,11 +8,11 @@ - +

    # Previous proposals

    This is a record of past proposals, including ones that weren't drafted in the governance repository. These proposals are present in the cosmoshub-4 genesis file.

    # 1 Adjustment of blocks_per_year to come aligned with actual block time

    • Submitted: 2019-03-20 02:41:27
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    This governance proposal is for adjustment of blocks_per_year parameter to normalize the inflation rate and reward rate.\n ipfs link: https://ipfs.io/ipfs/QmXqEBr56xeUzFpgjsmDKMSit3iqnKaDEL4tabxPXoz9xc

    # 2 ATOM Transfer Enablement

    • Submitted: 2019-03-25T21:42:19.240550245Z
    • Status: PROPOSAL_STATUS_REJECTED
    • Type: /cosmos.gov.v1beta1.TextProposal

    A plan is proposed to set up a testnet using the Cosmos SDK v0.34.0 release, along with mainnet conditions, plus transfer enablement and increased block size, as a testing ground. Furthermore, a path for upgrading the cosmoshub-1 chain to use the Cosmos SDK release v0.34.0, along with the necessary updates to the genesis file, at block 425000, is outlined. IPFS: https://ipfs.io/ipfs/QmaUaMjXPE6i4gJR1NakQc15TZpSqjSrXNmrS1vA5veF9W

    # 3 ATOM Transfer Enablement v2

    • Submitted: 2019-04-03T10:15:22.291176064Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    A plan for enabling ATOM transfers is being proposed, which involves the release and test of Cosmos SDK v0.34.0 and a strategy for the network to accept the release and upgrade the mainnet once testing has been deemed to be successful. Read the full proposal at https://ipfs.io/ipfs/Qmam1PU39qmLBzKv3eYA3kMmSJdgR6nursGwWVjnmovpSy or formatted at https://ipfs.ink/e/Qmam1PU39qmLBzKv3eYA3kMmSJdgR6nursGwWVjnmovpSy

    # 4 Proposal for issuance of fungible tokens directly on the Cosmos Hub

    • Submitted: 2019-04-15T08:45:39.072577509Z
    • Status: PROPOSAL_STATUS_REJECTED
    • Type: /cosmos.gov.v1beta1.TextProposal

    This proposal is a first step towards enabling fungible token issuance on the Cosmos Hub, with listing of new tokens requiring governance approval. Read the full proposal at https://github.com/validator-network/cosmoshub-proposals/blob/0d306f1fcc841a0ac6ed1171af96e6869d6754b6/issuance-proposal.md

    # 5 Expedited Cosmos Upgrade Proposal

    • Submitted: 2019-04-19T00:49:55.251313656Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Proposal to upgrade the Cosmos Hub at block 500,000 on April 22nd 5pm GMT. Details:https://ipfs.io/ipfs/QmS13GPNs1cRKSojete5y9RgW7wyf1sZ1BGqX3zjTGs7sX

    # 6 Don't Burn Deposits for Rejected Governance Proposals Unless Vetoed

    • Submitted: 2019-05-03T18:14:33.209053883Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Read here, or on https://ipfs.ink/e/QmRtR7qkeaZCpCzHDwHgJeJAZdTrbmHLxFDYXhw7RoF1ppnnThe Cosmos Hub's state machine handles spam prevention of governance proposals by means of a deposit system. A governance proposal is only considered eligible for voting by the whole validator set if a certain amount of staking token is deposited on the proposal. The intention is that the deposit will be burned if a proposal is spam or has caused a negative externality to the Cosmos community (such as wasting stakeholders’ time having to review the proposal).nnIn the current implementation of the governance module used in the Cosmos Hub, the deposit is burned if a proposal does not pass, regardless of how close the final tally result may have been. For example, if 49% of stake votes in favor of a proposal while 51% votes against it, the deposit will still be burned. This seems to be an undesirable behavior as it disincentivizes anyone from creating or depositing on a proposal that might be slightly contentious but not spam, due to fear of losing the deposit minimum (currently 512 atoms). This will especially be the case as TextProposals will be used for signaling purposes, to gauge the sentiment of staked Atom holders. Disincentivizing proposals for which the outcome is uncertain would undermine that effort.nnWe instead propose that the deposit be returned on failed votes, and that the deposit only be burned on vetoed votes. If a proposal seems to be spam or is deemed to have caused a negative externality to Cosmos communninty, voters should vote NoWithVeto on the proposal. If >33% of the stake chooses to Veto a proposal, the deposits will then be burned. However, if a proposal gets rejected without being vetoed, the deposits should be returned to the depositors. This proposal does not make any change to the current behavior for proposals that fail to meet quorum; if a proposal fails to meet quorum its deposit will be burned.

    # 7 Activate the Community Pool

    • Submitted: 2019-05-03T21:08:25.443199036Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Enable governance to spend funds from the community pool. Full proposal: https://ipfs.io/ipfs/QmNsVCsyRmEiep8rTQLxVNdMHm2uiZkmaSHCR6S72Y1sL1

    # 8 Notification for Security Critical Hard Fork at Block 482100

    • Submitted: 2019-05-30T19:43:02.870666885Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    As described by user @Jessysaurusrex on Cosmos Forum in https://forum.cosmos.network/t/critical-cosmossdk-security-advisory/2211, All in Bits has learned of a critical security vulnerability in the codebase for the Cosmos Hub. We deem the issue to be of high severity, as if exploited it can potentially degrade the security model of the chain's Proof of Stake system. This vulnerability CANNOT lead to the theft of Atoms or creation of Atoms out of thin air. nn All in Bits has released a source code patch, Gaia v0.34.6, that closes the exploitable code path starting at block 482100. nn The proposed upgrade code Git hash is: 80234baf91a15dd9a7df8dca38677b66b8d148c1 nn As a proof of stake, we are putting some collateral behind this legitimacy of this bug and patch and encourage others familiar with the report to do so as well. If the disclosed bug turns out to be fabricated or malicious in some way, we urge the Cosmos Hub governance to slash these Atoms by voting NoWithVeto on this proposal. nn We encourage validators and all users to upgrade their nodes to Gaia v0.34.6 before block 482100. In the absence of another public bulletin board, we request validators to please vote Yes on this proposal AFTER they have upgraded their nodes to v0.34.6, as a method of signalling the readiness of the network for the upgrade.

    # 10 Increase Max Validator Set Size to 125

    • Submitted: 2019-07-01T14:09:25.508939113Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Read here, or on https://ipfs.ink/e/QmRhQycV19QiTQGLuPzPHfJwCioj1wDeHHtZvxiHegTFDd nnThis proposal supercedes proposal number 9, which contains conflicting numbers in the title and body. nnIn the Cosmos Hub, the total number of active validators is currently capped at 100, ordered by total delegated Atoms. This number was originally proposed in the Cosmos whitepaper section titled [Limitations on the Number of Validators](https://github.com/cosmos/cosmos/blob/master/WHITEPAPER.md#limitations-on-the-number-of-validators 4). This number was chosen as a relatively conservative estimate, as at the time of writing, it was unclear how many widely distributed nodes Tendermint consensus could scale to over the public internet. nnHowever, since then, we have seen empirically through the running of the Game of Stakes incentivized testnet that Tendermint Core with Gaia state machine can operate with over 180 validators at reasonable average block times of <7 seconds. The Game of Stakes results empirically show that adding validators should not delay consensus at small block sizes. At large block sizes, the time it takes for the block to gossip to all validators may increase depending on the newfound network topology. However we view this as unlikely, and if it did become a problem, it could later be solved by known improvements at the p2p layer. The other tradeoff to increasing the number of validators is that the size of commits becomes ~25% larger due to more precommits being included, increasing the network and storage costs for nodes. This can also be resolved in the future with the integration of aggregate signatures. At the time of submission of this proposal, the minimum delegation to become a top 100 validator is 30,600 Atoms, a fairly high barrier to entry for new validators looking to enter the active validator set. nnIn the Cosmos whitepaper, it states that the number of validators on the Hub will increase at a rate of 13% a year until it hits a cap of 300 validators. We propose scrapping this mechanism and instead increasing the max validators to 125 validators in the next chain upgrade with no further planned increases. Future increases to the validator set size will be originated through governance.

    # 12 Are Validators Charging 0% Commission Harmful to the Success of the Cosmos Hub?

    • Submitted: 2019-07-23T00:28:15.881319915Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    This governance proposal is intended to act purely as a signalling proposal. Throughout this history of the Cosmos Hub, there has been much debate about the impact that validators charging 0% commission has on the Cosmos Hub, particularly with respect to the decentralization of the Cosmos Hub and the sustainability for validator operations. nn Discussion around this topic has taken place in many places including numerous threads on the Cosmos Forum, public Telegram channels, and in-person meetups. Because this has been one of the primary discussion points in off-chain Cosmos governance discussions, we believe it is important to get a signal on the matter from the on-chain governance process of the Cosmos Hub. nn There have been past discussions on the Cosmos Forum about placing an in-protocol restriction on validators from charging 0% commission. https://forum.cosmos.network/t/governance-limit-validators-from-0-commission-fee/2182 nn This proposal is NOT proposing a protocol-enforced minimum. It is merely a signalling proposal to query the viewpoint of the bonded Atom holders as a whole. nn We encourage people to discuss the question behind this governance proposal in the associated Cosmos Hub forum post here: https://forum.cosmos.network/t/proposal-are-validators-charging-0-commission-harmful-to-the-success-of-the-cosmos-hub/2505 nn Also, for voters who believe that 0% commission rates are harmful to the network, we encourage optionally sharing your belief on what a healthy minimum commission rate for the network using the memo field of their vote transaction on this governance proposal or linking to a longer written explanation such as a Forum or blog post. nn The question on this proposal is “Are validators charging 0% commission harmful to the success of the Cosmos Hub?”. A Yes vote is stating that they ARE harmful to the network's success, and a No vote is a statement that they are NOT harmful.

    # 13 Cosmos Hub 3 Upgrade Proposal A

    • Submitted: 2019-07-26T18:04:10.416760069Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    This is a proposal to approve these high-level changes for a final vote for what will become Cosmos Hub 3. Please read them carefully: nhttps://github.com/cosmos/cosmos-sdk/blob/rc1/v0.36.0/CHANGELOG.mdnn-=-=-nnIf approved, and assuming that testing is successful, there will be a second proposal called Cosmos Hub 3 Upgrade Proposal B. Cosmos Hub 3 Upgrade Proposal B should specify 1) the software hash; 2) the block height state export from cosmoshub-2; 3) the genesis time; 4) instructions for generating the new genesis file.nn-=-=-nnFull proposal: nhttps://ipfs.io/ipfs/QmbXnLfx9iSDH1rVSkW5zYC8ErRZHUK4qUPfaGs4ZdHdc7n

    # 14 Cosmos Hub 3 Upgrade Proposal B

    • Submitted: 2019-08-23T16:16:19.814900321Z
    • Status: PROPOSAL_STATUS_REJECTED
    • Type: /cosmos.gov.v1beta1.TextProposal

    This proposal is intended to signal acceptance/rejection of the precise software release that will contain the changes to be included in the Cosmos Hub 3 upgrade. A high level overview of these changes was successfully approved by the voters signalling via Cosmos Hub 3 Upgrade Proposal A (https://www.mintscan.io/cosmos/proposals/13). We are proposing to use this code https://github.com/cosmos/gaia/releases/tag/v2.0.0 to upgrade the Cosmos Hub. We are proposing to export the ledger's state at Block Height 1823000, which we expect to occur on Sunday, September 15, 2019 at or around 2:00 pm UTC. We are proposing to launch Cosmos Hub 3 at 3:57 pm UTC on Sunday, September 15, 2019. nnInstructions for migration: https://github.com/cosmos/gaia/wiki/Cosmos-Hub-2-UpgradennFull proposal: https://ipfs.io/ipfs/Qmf54mwb8cSRf316jS4by96dL91fPCabvB9V5i2Sa1hxdznn

    # 16 Cosmos Hub 3 Upgrade Proposal D

    • Submitted: 2019-09-05T21:32:32.253341577Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Figment Networks (https://figment.io)nn-=-=-nnThis proposal is intended to supersede flawed Cosmos Hub 3 Upgrade Proposal B (https://www.mintscan.io/cosmos/proposals/14) and Cosmos Hub 3 Upgrade Proposal C (https://www.mintscan.io/cosmos/proposals/15), regardless of their outcomes. This proposal will make both Proposal 14 and 15 void.nnThis proposal is intended to signal acceptance/rejection of the precise software release that will contain the changes to be included in the Cosmos Hub 3 upgrade. A high overview of these changes was successfully approved by the voters signalling via Cosmos Hub 3 Upgrade Proposal A (https://www.mintscan.io/cosmos/proposals/13). We are proposing to use this code https://github.com/cosmos/gaia/releases/tag/v2.0.0 to upgrade the Cosmos Hub. We are proposing to export the ledger’s state at Block Height 1,933,000, which we expect to occur on September 24, 2019 at or around 1:53 pm UTC. Please note that there will likely be a variance from this target time, due to changes in block time (https://forum.cosmos.network/t/cosmos-hub-3-upgrade-proposal-d/2675/18?u=gavin). We are proposing to launch Cosmos Hub 3 at 60 minutes after Block Height 1,933,000.nn-=-=-nnInstructions for migration: https://github.com/cosmos/gaia/wiki/Cosmos-Hub-2-UpgradenPlease note the recovery scenario in the case that the chain fails to start.nn-=-=-nnFull proposal:nhttps://ipfs.io/ipfs/QmPbSLvAgY8m7zAgSLHzKHfDtV4wx5XaGt1S1cDzqvXqJg

    # 19 Cosmos Hub 3 Upgrade Proposal E

    • Submitted: 2019-11-14T17:13:31.985706216Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Figment Networks (https://figment.io)nn-=-=-nnFull proposal:nhttps://ipfs.io/ipfs/QmfJyd64srJSX824WoNnF6BbvF4wvPGqVBynZeN98C7ygqnn-=-=-nn_Decision_nnWe are signalling that:nn1. The Gaia 2.0.3 implementation is aligned with the list of high-level changes approved in Cosmos Hub 3 Upgrade Proposal A.nn2. We are prepared to upgrade the Cosmos Hub to cosmoshub-3 based uponnta. Commit hash: 2f6783e298f25ff4e12cb84549777053ab88749a;ntb. The state export from cosmoshub-2 at Block Height 2902000;ntc. Genesis time: 60 minutes after the timestamp at Block Height 2902000.nn3. We are prepared to relaunch cosmoshub-2nta. In the event of:ntti. A non-trivial error in the migration procedure and/ornttii. A need for ad-hoc genesis file changesnttiii. The failure of cosmoshub-3 to produce two (2) blocks by 180 minutes after the timestamp of Block Height 2902000;ntb. Using:ntti. The starting block height: 2902000nttii. Software version: Cosmos SDK v0.34.6+ https://github.com/cosmos/cosmos-sdk/releases/tag/v0.34.10nttiii. The full data snapshot at export Block Height 2902000;ntc. And will consider the relaunch complete after cosmoshub-2 has reached consensus on Block 2902001.nn4. The upgrade will be considered complete after cosmoshub-3 has reached consensus on Block Height 2 within 120 minutes of genesis time.nn5. This proposal is void if the voting period has not concluded by Block Height 2852202.nn-=-=-nn_Context_nThis proposal follows Cosmos Hub 3 Upgrade Proposal D (https://www.mintscan.io/cosmos/proposals/16) aka Prop 16, which passed in vote, but failed in execution (https://forum.cosmos.network/t/cosmos-hub-3-upgrade-post-mortem/2772). This proposal is intended to succeed where Prop 16 failed.nnThis proposal is intended to signal acceptance/rejection of the precise software release that will contain the changes to be included in the Cosmos Hub 3 upgrade. A high level overview of these changes was successfully approved by the voters signalling via Cosmos Hub 3 Upgrade Proposal A (https://www.mintscan.io/cosmos/proposals/14). We are proposing to use this code https://github.com/cosmos/gaia/releases/tag/v2.0.3 to upgrade the Cosmos Hub.nWe are proposing to export the ledger’s state at Block Height 2,902,000, which we expect to occur on December 11, 2019 at or around 14:27 UTC assuming an average of 6.94 seconds per block. Please note that there will likely be a variance from this target time, due to deviations in block time.nnWe are proposing that the Cosmos Hub 3 genesis time be set to 60 minutes after Block Height 2,902,000.nn-=-=-nnCo-ordination in case of failure will happen in this channel: https://riot.im/app/#/room/#cosmos_validators_technical_updates:matrix.org

    # 23 Cosmos Governance Working Group - Q1 2020

    • Submitted: 2020-01-15T06:51:48.001168602Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.distribution.v1beta1.CommunityPoolSpendProposal

    Cosmos Governance Working Group - Q1 2020 fundingnnCommunity-spend proposal submitted by Gavin Birch (https://twitter.com/Ether_Gavin) of Figment Networks (https://figment.io)nn-=-=-nnFull proposal: https://ipfs.io/ipfs/QmSMGEoY2dfxADPfgoAsJxjjC6hwpSNx1dXAqePiCEMCbYnn-=-=-nnAmount to spend from the community pool: 5250 ATOMsnnTimeline: Q1 2020nnDeliverables:n1. A governance working group community & chartern2. A template for community spend proposalsn3. A best-practices document for community spend proposalsn4. An educational wiki for the Cosmos Hub parametersn5. A best-practices document for parameter changesn6. Monthly governance working group community calls (three)n7. Monthly GWG articles (three)n8. One Q2 2020 GWG recommendations articlennMilestones:nBy end of Month 1, the Cosmos Governance Working Group (GWG) should have been initiated and led by Gavin Birch of Figment Networks.nBy end of Month 2, Gavin Birch is to have initiated and led GWG’s education, best practices, and Q2 recommendations.nBy end of Month 3, Gavin Birch is to have led and published initial governance education, best practices, and Q2 recommendations.nnDetailed milestones and funding:nhttps://docs.google.com/spreadsheets/d/1mFEvMSLbiHoVAYqBq8lo3qQw3KtPMEqDFz47ESf6HEg/edit?usp=sharingnnBeyond the milestones, Gavin will lead the GWG to engage in and answer governance-related questions on the Cosmos Discourse forum, Twitter, the private Cosmos VIP Telegram channel, and the Cosmos subreddit. The GWG will engage with stake-holders to lower the barriers to governance participation with the aim of empowering the Cosmos Hub’s stakeholders. The GWG will use this engagement to guide recommendations for future GWG planning.nnRead more about the our efforts to launch the Cosmos GWG here: https://figment.io/resources/introducing-the-cosmos-governance-working-group/nn-=-=-nn_Problem_nPerhaps the most difficult barrier to effective governance is that it demands one of our most valuable and scarce resources: our attention. Stakeholders may be disadvantaged by informational or resource-based asymmetries, while other entities may exploit these same asymmetries to capture value controlled by the Cosmos Hub’s governance mechanisms.nnWe’re concerned that without establishing community standards, processes, and driving decentralized delegator-based participation, the Cosmos Hub governance mechanism could be co-opted by a centralized power. As governance functionality develops, potential participants will need to understand how to assess proposals by knowing what to pay attention to.nn_Solution_nWe’re forming a focused, diverse group that’s capable of assessing and synthesizing the key parts of a proposal so that the voting community can get a fair summary of what they need to know before voting.nnOur solution is to initiate a Cosmos governance working group that develops decentralized community governance efforts alongside the Hub’s development. We will develop and document governance features and practices, and then communicate these to the broader Cosmos community.nn_Future_nAt the end of Q1, we’ll publish recommendations for the future of the Cosmos GWG, and ideally we’ll be prepared to submit a proposal based upon those recommendations for Q2 2020. We plan to continue our work in blockchain governance, regardless of whether the Hub passes our proposals.nn-=-=-nnCosmos forum: https://forum.cosmos.network/c/governancenCosmos GWG Telegram channel: https://t.me/hubgovnTwitter: https://twitter.com/CosmosGov

    # 25 CosmWasm Integration 1 - Permissions and Upgrades

    • Submitted: 2020-05-12T17:10:00.465282299Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.distribution.v1beta1.CommunityPoolSpendProposal

    CosmWasm Integration 1 - Permissions and UpgradesnnCommunity-spend proposal submitted by Ethan Frey (https://github.com/ethanfrey) of Confio UO (http://confio.tech/) and CosmWasm (https://www.cosmwasm.com)nn-=-=-nnFull proposal: https://ipfs.io/ipfs/QmbD3bMajQCFmtDmkuRVWhmMWVdN2sK8QP2FoFCz9cjPiCnForum Post: https://forum.cosmos.network/t/proposal-cosmwasm-on-cosmos-hub/3629nn-=-=-nnAmount to spend from the community pool: 25000 ATOMsnnTimeline: 2-4 months from approvalnnDeliverables:n1. Adding governance control to all aspects of the CosmWasm contract lifecycle to make it compatible with the hub. Allowing governance to control code upload, contract instantiation, upgrades, and destruction (if needed).n2. Adding ability to upgrade contracts along with migrations (also allowing orderly shutdowns). This controlled by a governance vote.n3. Launch a testnet with working version of this code (Cosmos SDK 0.38 or 0.39) to enable all interested parties to trial the process and provide feedback.n4. Provide sample contracts to demo on the testnet, along with some migration scenariosnnWithin 2 months, the working code and binaries should be delivered and open for public review. Within 4 months, these binaries will be used on a testnet, with sufficient staking tokens given to all active voters on the Cosmos Hub, and we will go through a few governance voting cycles to trial contract deployment and migrations (with a shorter voting cycles, eg. 3 days)nnDetailed milestones in the full proposal:nhttps://ipfs.io/ipfs/QmbD3bMajQCFmtDmkuRVWhmMWVdN2sK8QP2FoFCz9cjPiCnnBeyond the milestones, CosmWasm will enhance documentation of the platform and offer technical support on our Telegram channel.nn-=-=-nn_Problem_nWith the upcoming launch of IBC, the hub will need to adapt more rapidly to the needs of the ecosystem, while also limiting chain restarts, which may be detrimental to IBC connections. In particular support for relaying Dynamic IBC Protocols and Rented Security, using ATOMs as collateral for smaller zones, would greatly benefit from CosmWasm's flexibility.nn_Solution_nWe’re adding some key features to CosmWasm to convert it from a permissionless, immutable smart contract platform to a permissioned platform with governance control for upgrading or shutting down contracts. This is a key requirement to be able to integrate CosmWasm to the Cosmos Hub with minimal disruption.nn_Future_nWe will continue development of CosmWasm, especially adding IBC integration as well as working towards a stable 1.0 release that can be audited and safely deployed (Q3/Q4 2020).nn-=-=-nnTwitter: https://twitter.com/CosmWasmnMedium: https://medium.com/confionTelegram: https://t.me/joinchat/AkZriEhk9qcRw5A5U2MapAnWebsite: https://www.cosmwasm.comnGithub: https://github.com/CosmWasm

    # 26 Takeoff Proposal from Cyber to Cosmos

    • Submitted: 2020-05-21T18:00:11.292428073Z
    • Status: PROPOSAL_STATUS_REJECTED
    • Type: /cosmos.distribution.v1beta1.CommunityPoolSpendProposal

    cyber Congress (https://cybercongress.ai) developed Cyber (https://github.com/cybercongress/go-cyber): a software for replacing existing internet behemoth monopolies, such as Google, which exploited outdated internet protocols using the common patterns of our semantic interaction. These corps lock the information, produced by the users, from search, social and commercial knowledge graphs in private databases, and then sell this knowledge back as advertisement. They stand as an insurmountable wall between content creators and consumers extracting an overwhelming majority of the created value.nnWe propose ATOM holders to invest 10,000 ATOM from the community pool into the Takeoff of Cyber. In exchange, at the end of its donation round (https://cyber.page/gol/takeoff), and when an IBC connection will become possible, cyber Congress will transfer CYB tokens back to the community pool. Passing this proposal will transfer 10,000 ATOMs from the community pool to cyber Congress multisig (https://www.mintscan.io/account/cosmos1latzme6xf6s8tsrymuu6laf2ks2humqv2tkd9a).nnFull Proposal-Manifest text: https://ipfs.io/ipfs/QmUYDQt9tqLQJwxnUck7dQY3XmZA3tDtpFh3Hchkg7oH46nnor at https://cyber.page/gol/takeoffnnThe software we offer resembles a decentralized google (https://github.com/cybercongress):n- A protocol spec and the rationale behind itn- go-cyber: our implementation using cosmos-sdkn- cyber.page: PoC reference web interfacen- launch-kit: useful tools for launching cosmos-sdk based chainsn- cyberindex: GraphQL middleware for cybern- euler Foundation: mainnet predecessor of cyber Foundation: the DAO, which will handle all the donated ETHn- documentation and various side toolsnnCyber solves the problem of opening up the centralised semantics core of the Internet. It does so by opening up access to evergrowing semantics core taught to it by the users.nnEconomics of the protocol are built around the idea that feedback loops between the number of links and the value of the knowledge graph exist. The more usage => the bigger the knowledge graph => the more value => the better the quality of the knowledge => the more usage. Transaction fees for basic operations are replaced by lifetime bandwidth, which means usability for both, end-users and developers. You can think of Cyber as a shared ASIC for search.nnYou already see that the idea of Cyber evolves around content identifiers and its ranks. From here, welcome to Decentralized Marketing, or DeMa. You've certainly heard of DeFi. DeFi is built around a simple idea that you can use a collateral for something that will be settled based on a provided price feed. Here comes the systematic problem of DeFi: price oracles. DeMa is based on the same idea of using collateral, but the input for settlement can be information regarding the content identifier itself.nnWith the help of DeMa and IBC chains will be able to prove relevance using content identifiers and their ranks one to another. This will help to grow the IBC ecosystem, where each chain has multiple possibilities to exchange data, which is provably valued.nnCosmos was created to become the internet of blockchains. A protocol that propagates the spirit of decentralization and governed by the community. For such technology to succeed, a lot is required. One thing is a solid foundation it can build on. One virtue of such foundation is monetary flow of income that has to feed this machine for as long as it exists.nnA good question that arises is how to turn the community pool into a pool that isn’t (a) a pot of money which goes solely to network security, (b) a pool that isn’t solely a build-up of inflationary rewards and (с) has long term prosperity value (its value rises).nnThe solution to the above problem is to establish a fund, that is managed and processed collectively and consists of a diversified number of assets that can bring long term value to its stakeholders.nnThis means using the funds to support exceptional projects that are building with Tendermint and Cosmos-SDK. After all, is we want to glorify the ecosystem, we need for it to grow. How will it grow? It will have projects with a clear utility, amazing a product and provable distribution. This will attract users, developers and large stakeholders to the ecosystem. Together we already did one very successful investment decision. We all participated in cosmos fundraizer. So let us move the idea forward.nnIf this proposal is successful and stands for more demand from the public, we will open another proposal using the community pool. However, anyone can participate in Game of Links (https://cyber.page/gol/) or Takeoff https://cyber.page/gol/takeoff independently. If you have question you can ask them either on Cyber topic on Cosmos forum (https://forum.cosmos.network/t/cyber-a-decentralized-google-for-provable-and-relevant-answers) or Cyber forum (https://ai.cybercongress.ai).nnProposal results: https://www.mintscan.io/proposals/26

    # 27 Stargate Upgrade Proposal 1

    • Submitted: 2020-07-12T06:23:02.440964897Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Stargate is our name for the process of ensuring that the widely integrated public network known as the Cosmos Hub is able to execute the cosmoshub-3 -> cosmoshub-4 upgrade with the minimum disruption to its existing ecosystem. This upgrade will also realize the Internet of Blockchains vision from the Cosmos whitepaper.nIntegrations from ecosystem partners are at risk of breaking changes due to the Stargate changes. These changes drive the need for substantial resource and time requirements to ensure successful migration. Stargate represents a unique set of circumstances and is not intended to set precedent for future upgrades which are expected to be less dramatic.nThere is a widespread consensus from many Cosmos stakeholders that these changes to core software components will enhance the performance and composability of the software and the value of the Cosmos Hub in a world of many blockchains.nA Yes result on this proposal provides a clear signal that the Cosmos Hub accepts and understands the Stargate process and is prepared to approve an upgrade with proposed changes if the plan below is executed successfully.nA No result would force a reconsideration of the tradeoffs in the Alternatives section and the forming a new plan to deliver IBC.nSee the full proposal here: https://ipfs.io/ipfs/Qmbo3fF54tX3JdoHZNVLcSBrdkXLie56Vh2u29wLfs4PnW

    # 29 Genesis fund recovery proposal on behalf of fundraiser participants unable to access their ATOMs

    • Submitted: 2020-09-09T06:47:46.521375251Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    The purpose of this proposal is to restore access to geneis ATOMs for a subset of donors who have been active participants in our community through the last year.n The view of iqlusion is that this is an important moment for the Cosmos Hub. Stargate brings the fundraiser period to the end with delivery of IBC. This proposal resolves the open business of active members of our community who cannot access their ATOM. This is an opportunity is opporunity to bring this business to a close and setup the agenda for IBC powered innovation comming in 2021.We strongly encourage the Cosmos Community to verify the cryptographic evidence and bring these community members to full ATOM holder status.nnnFull Proposal:https://ipfs.io/ipfs/QmV6pBgDppN7X3BdVW197EUe7dpcmcdLMivPa6xxtPj3aW nThe original authors of the proposal will be available to answer questions on the Cosmos forum.nhttps://forum.cosmos.network/t/updated-genesis-atoms-recovery-request-proposal/3905

    # 31 Governance Split Votes

    • Submitted: 2020-11-23T00:53:38.508414880Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    In the Cosmos Hub governance system, each address can only cast a vote for one option (Yes/No/Abstain/NoWithVeto) which uses their full voting power behind that choice.nnThis proposal proposes an upgrade to the Cosmos Hub governance module that would allow a staker to optionally split their votes into several voting options. For example, a single address could use 70% of its voting power to vote Yes and 30% of its voting power to vote No. Clients may opt into supporting this feature, as the existing UX of voting for a single option is preserved.nnThis is beneficial because oftentimes the entity owning that address might not be a single individual. For example, a company or organization that owns an address might have different stakeholders who want to vote differently, and so it makes sense to allow them to split their voting power.nnAnother example use case is exchanges and custodians. Many custodians and exchanges custody multiple customers’ ATOMs in the same address and use this address to stake on behalf of them. However, because of this, it makes it infeasible to do 'passthrough voting' and give their customers voting rights over their tokens, if different customers have different voting preferences. With this new proposal, custodians can use split votes to accurately reflect the preferences of their customers in on-chain governance.nnThe technical architecture for this feature can be seen in ADR 037 to the Cosmos SDK: https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-037-gov-split-vote.md nnAcceptance of this governance proposal is signalling approval to adopt this feature in a future upgrade of the Cosmos Hub.

    # 32 Funding for Development of Governance Split Votes

    • Submitted: 2020-11-24T17:22:36.584208993Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.distribution.v1beta1.CommunityPoolSpendProposal

    Sikka is requesting 1776 ATOMs from the community pool to architect and implement the Governance Split Votes feature proposed in Cosmos Hub Proposal #31. This community fund proposal is dependent on the passing of Proposal #31 and thus should only be approved if Proposal #31 is approved. We request 1776 ATOMs, valuing each atom at $5.1 nnSikka has already begun the design of this feature and submitted it as ADR 037 to the Cosmos Hub: https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-037-gov-split-vote.md nn As past contributors to the codebase that runs the Cosmos Hub, we are familiar with the security and code quality requirements to be included in the Cosmos Hub. Sikka will implement & test this feature and will work with the maintainers of the github.com/cosmos/cosmos-sdk repo to get it merged into the x/gov module.

    # 34 Luna Mission - Funding $ATOM

    • Submitted: 2021-01-05T23:09:26.477112871Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.distribution.v1beta1.CommunityPoolSpendProposal

    The Cosmos Hub (ATOM) community is requesting a community pool spend amount of 129,208 ATOM in order to implement a comprehensive ATOM marketing plan that will be executed in collaboration with AiB (Tendermint). The marketing efforts will be initiated immediately upon passing of proposal #34.nn The distribution of funds will be administered by 5 community members, that have been carefully selected by the community via the Cosmos governance working group to administer the marketing plan and release funds to either AiB that will act as a liaison between Cosmos Hub community and third parties or directly to parties that will be in charge of executing the marketing plan based on a majority multisignature approval. At least 3 members will have to approve each milestone-spend for it to be released to AiB based on the expected proposal scope &completion. nn More details can be found in the long form proposal here: https://cloudflare-ipfs.com/ipfs/QmWAxtxf7fUprPVWx1jWyxSKjBNqkcbA3FG6hRps7QTu3k and https://github.com/cosmos/governance/pull/10 and https://forum.cosmos.network/t/draft-governance-proposal-for-a-community-pool-spend-proposal-33-luna-mission-funding-atom/4244/15 nn The multisig administration includes: n @johnniecosmos, @JoeDirtay, @jackzampolin (Jack Zampolin, Pylon Validator), @immasssi (SG-1 Validator), @zakimanian (Zaki Manian, Iqlusion Validator).

    # 35 Cosmos Stargate Hub Upgrade Proposal 2: Time to Upgrade.

    • Submitted: 2021-01-12T01:37:07.471992293Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Proposal to complete the Stargate upgrade, halt cosmoshub-3 at 06:00 UTC on Jan 28th, export the state and start cosmoshub-4 based on gaia 3.0.nn Gaia Commit hash: n d974b27a8caf8cad3b06fbe4678871e4b0b69a51 Proposal details can be found on n github: https://github.com/cosmos/governance/pull/5 n ipfs: https://cloudflare-ipfs.com/ipfs/QmPww2PSmkmuLLu12GGwRdu5ur1Etf9u3Nt3Z6NqB7BQP1 n sia: https://siasky.net/EAALGMzFCafvbKkQjnAieo2cA1mpxk-JLpKsiC4XxuM6eQ

    # 36 Delay of Hub Stargate Upgrade for approximately 2 weeks

    • Submitted: 2021-01-24T15:51:52.051468824Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    The Stargate team is recommending that the Cosmos Hub reschedule the next upgrade to a new commit hash. The new commit hash is expected to be available on Tuesday Jan 26th with a new upgrade proposal immediately after.nnThis governance proposal will signal that proposal 35 (opens new window) will not be executed. The Hub governance will vote on the forthcoming proposal aiming for a final upgrade. The earliest target date would be February 11th. Given that Lunar New Year is on Feb 12th. The next best date is Feb 18th 06:00UTC.nnWe are recommending the delay for the following reasons.nn* Bugs have been identified in the Proposal 29 implementation. They are resolved in this pull requestAdditional review of prop 29 and migration testing by zmanian · Pull Request #559 · cosmos/gaia · GitHub (opens new window)n* A balance validation regression was identified during Prop 29 code review. x/bank: balance and metadata validation by fedekunze · Pull Request #8417 · cosmos/cosmos-sdk · GitHub (opens new window)n* The IBC Go To Market Working Group has identified Ledger hardware wallet (opens new window) support as a necessary feature for the initial launch of IBC on the Hub. We have an opportunity to provide this support in this upgrade. The SDK believes this can be quickly remediated in the time available with merged PRs on Monday.n* The number of Stargate related support requests from integrators has increased significantly since the governance proposal went live but some teams have already announced a period of reduced $ATOM support while they upgrade like https://twitter.com/Ledger_Support/status/1352247403605356551?s=20 (opens new window). The additional time should minimize the disruption for $ATOM holders. Thank so much to the $IRIS team whom is fielding a similar request volume among our non-English community.

    # 37 Stargate Upgrade- Second time is a charm!

    • Submitted: 2021-01-28T21:07:30.044676129Z
    • Status: PROPOSAL_STATUS_PASSED
    • Type: /cosmos.gov.v1beta1.TextProposal

    Proposal to complete the Stargate upgrade, halt cosmoshub-3 at 06:00 UTC on Feb 18th, export the state and start cosmoshub-4 based on gaia 4.0.nn Gaia Commit hash: n a279d091c6f66f8a91c87943139ebaecdd84f689 Proposal details can be found on n github: https://github.com/cosmos/governance/pull/13 n Rendered: https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmYn2SxCMYk5SWs5GMcXdbXR8wMCCXRmCyW19SFyzSeZp1 n ipfs: https://cloudflare-ipfs.com/ipfs/QmYn2SxCMYk5SWs5GMcXdbXR8wMCCXRmCyW19SFyzSeZp1 n sia: https://siasky.net/EACAsPcUjpTEpQlG9_nRI1OR07gNeRiudfEWAvKnf0tj_Q n

    - + diff --git a/main/governance/proposals/proposal-template.html b/main/governance/proposals/proposal-template.html index a28b78d93c4..5d1f4ed701a 100644 --- a/main/governance/proposals/proposal-template.html +++ b/main/governance/proposals/proposal-template.html @@ -8,11 +8,11 @@ - +

    # [Proposal][Draft] Proposal Title

    # Changelog

    • {date}:

    # Authors and Credit

    {Name}:

    # Status

    Use DRAFT if the Governance Proposal is in a draft stage or PROPOSED if it's in review. You can read more about governance proposal stages here.

    # Proposal

    A short (~200 word) description of the governance proposal being considered.

    # Context

    A complete, yet brief account of the current sitation the proposal aims to address. It should clear explain the motivation, goals, and expected outcomes of the proposal as well as how the proposal addresses the situation better than other options.

    # Governance Votes

    The following items summarize the voting options and what it means for this proposal.

    • YES: You approve the {type} proposal to...{one sentence summary}.
    • NO: You disapprove of the proposal in its current form. The NO vote can be a request for improvements or adjustments, please indicated them in the relevant topic in the Cosmos forum (opens new window). You agree that this proposal's motivation is valuable and that the team should create a follow-up proposal once the amendments are included.
    • NO (VETO): You veto the entire motivation for the proposal, are strongly opposed to its implementation, and will exit the network if passed. You are signalling the proposers should not create a follow-up proposal.
    • ABSTAIN: You are impartial to the outcome of the proposal.

    State what voting for each option means in terms of this proposal.

    # Conclusion

    # References

    - + diff --git a/main/governance/state-of-cosmos-governance-2021.html b/main/governance/state-of-cosmos-governance-2021.html index 6aeb23a2658..0c712a3be6a 100644 --- a/main/governance/state-of-cosmos-governance-2021.html +++ b/main/governance/state-of-cosmos-governance-2021.html @@ -8,7 +8,7 @@ - + @@ -39,6 +39,6 @@ 🔗 https://github.com/cosmos/ibc (opens new window)

    "An inter-chain standard (ICS) is a design document describing a particular protocol, standard, or feature expected to be of use to the Cosmos ecosystem. An ICS should list the desired properties of the standard, explain the design rationale, and provide a concise but comprehensive technical specification. The primary ICS author is responsible for pushing the proposal through the standardisation process, soliciting input and support from the community, and communicating with relevant stakeholders to ensure (social) consensus." 🔗 https://github.com/cosmos/ibc/blob/master/spec/ics-001-ics-standard/README.md (opens new window)

    # Process overview

    • Unclear where early discussions would happen
    • ICSs are drafted and submitted using the cosmos/ibc (opens new window) GitHub repo:
    • To propose a new standard, open an issue (opens new window).
    • To start a new standardisation document, copy the template (opens new window) and open a PR.
    • Standardization process has 4 phases, laid out in PROCESS.md (opens new window) for a description of the standardisation process.
      • Stage 1 - Strawman. Start the specification process
      • Stage 2 - Draft. Make the case for the addition of this specification to the IBC ecosystem, describe the shape of a potential solution, and Identify challenges to this proposal.
      • Stage 3 - Candidate. Indicate that further refinement will require feedback from implementations and users
      • Stage 4 - Finalised. Indicate that the addition is included in the formal ICS standard set

    # Process owners

    # Process maturity


    # Observations and Discussion

    This report provides a descriptive account of the existing governance documentation and a snapshot of existing processes. Future work can probe specific questions and assumptions (e.g., if the goals to distribute decision-making or ensure a degree of sovereignty for zones are met) and focus on process refinement and maturity (opens new window).

    # On-chain processes

    # Off-chain processes

    • More clarity is needed on when the CIPs should be used. It could be seen as the canonical home for high level decisions where alignment is required across the ecosystem but needs to be presented as such and the process needs refinement
    • Some CIPS clearly impact all Cosmos ecosystem and blockchains and need ecosystem-wide buy-in, for example CIP-11: Cosmos Hierarchical Deterministic key derivation (opens new window).
    • "RFC Interchain Staking Light Paper" (opens new window) an example of a potential CIP that was PRd to the Gaia repo. The ambiguity makes sense: it fits criteria of informational CIP about the Cosmos environment (Light Paper), but also a shorter and higher level document is needed to function as more of a summary in order to get early user feedback and market ideas that isn't a CIP https://github.com/cosmos/gaia/issues/659 (opens new window)
    • The terms "Cosmos" and "Cosmos Hub" are used interchangeably in the CIPs repository, so the intended audience could be made more clear. The module readiness process and checklist (opens new window), which proposes a process for modules to be adopted by the Gaia team, suggests that the process is intended for teams involved in development related to the Cosmos Hub.
    • Tendermint has an ADR process (opens new window) as well. Documentation around the relationship between the Tendermint ADR and the RFC processes would be valuable.
    - + diff --git a/main/governance/submitting.html b/main/governance/submitting.html index e3b993f69e3..f0b01ff43b8 100644 --- a/main/governance/submitting.html +++ b/main/governance/submitting.html @@ -8,7 +8,7 @@ - + @@ -50,6 +50,6 @@ gaiad tx gov deposit <proposal-id> <deposit> --from <name>

    In our case above, the <proposal-id> would be 59 as queried earlier. The <deposit> is written as 500000uatom, just like the example above.

    # Submitting your proposal to the testnet

    Submitting to the testnet is identical to mainnet submissions aside from a few changes:

    1. The chain-id is theta-testnet-001.
    2. The list of usable endpoints can be found here (opens new window).
    3. You will need testnet tokens, not ATOM. There is a faucet available in the Developer Discord (opens new window).

    You may want to submit your proposal to the testnet chain before the mainnet for a number of reasons:

    1. To see what the proposal description will look like.
    2. To signal that your proposal is about to go live on the mainnet.
    3. To share what the proposal will look like in advance with stakeholders.
    4. To test the functionality of the governance features.
    - + diff --git a/main/gtm-interchain.html b/main/gtm-interchain.html index 87313a3d10f..0c84353b6f3 100644 --- a/main/gtm-interchain.html +++ b/main/gtm-interchain.html @@ -8,7 +8,7 @@ - + @@ -19,6 +19,6 @@
    • Cross chain Validation
    • Validator set formation
  • Community
    • Discoverability Opportunities
  • Connectivity
  • Visibility
    • Wallet, Block Explorer, etc
    1. METRICS: How do we know when IBC is succeeding? How do we know when Hub is providing value to an interconnected ecosystem of sovereign blockchains?

    The go-to-market team should be tracking the extent to which IBC is succeeding or failing in terms of key metrics. This will require continuous experimentation and coordination between entities. An example of a metric that best represents IBC go to market would be # of distinct IBC connections that transport x amount of value. To get to these metrics we need the developer resources and proven business models that encourage developers to use this technology.

    The Cosmos-SDK exposes some existing metrics for IBC (opens new window).

    - + diff --git a/main/guidelines/code-guidelines.html b/main/guidelines/code-guidelines.html index 4ca08d1c2e1..55ca6865f5d 100644 --- a/main/guidelines/code-guidelines.html +++ b/main/guidelines/code-guidelines.html @@ -8,7 +8,7 @@ - + @@ -735,6 +735,6 @@

    In the example above, we must declare a tt variable scoped to the loop iteration because of the use of t.Parallel() below. If we do not do that, most or all tests will receive an unexpected value for tt or a value that changes as they run.

    # Use Subtests

    Always use subtest beside you are using or not table drive tests. This can reduce the scope of the tests and be more transparent and easy to maintain. Each small case of the tests should be a new subtest.

    # Avoid writing directly in the stdout

    Avoid writing logs directly to the stdout or stderr. Use a proper log package for it. It's also easier to maintain. We don't need to find all prints and change the code if we need to change.

    # Avoid panic

    Avoid panic in simple and small methods; all errors should be handled on the top level and application, and we can decide if we will panic or not. We can also create a proper panic recovery to close all states, open connection from the application, and graceful exit without breaking anything.

    - + diff --git a/main/hub-overview/index.html b/main/hub-overview/index.html index daf90947b49..e470a799c1c 100644 --- a/main/hub-overview/index.html +++ b/main/hub-overview/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/hub-overview/overview.html b/main/hub-overview/overview.html index b211028e582..682daa71388 100644 --- a/main/hub-overview/overview.html +++ b/main/hub-overview/overview.html @@ -8,11 +8,11 @@ - +

    # v13 Upgrade

    Cosmos Hub will be upgraded to v13 (opens new window) at block height: 17,380,000 (opens new window)

    To upgrade from v12 check the upgrade guide

    Welcome to the Cosmos Hub

    # Introduction

    The Cosmos Hub is the first of thousands of interconnected blockchains (opens new window) that will eventually comprise the Cosmos Network. The primary token of the Cosmos Hub is the ATOM, but the Hub will support many tokens in the future.

    # The ATOM

    Do you have ATOM tokens? With ATOM, you have the superpower to contribute to the security and governance of the Cosmos Hub. Delegate your ATOM to one or more of the 180 validators on the Cosmos Hub blockchain to earn more ATOM through Proof-of-Stake. You can also vote with your ATOM to influence the future of the Cosmos Hub through on-chain governance proposals.

    Learn more about being a delegator, learn about the security risks, and start participating with one of the following wallets.

    # Cosmos Hub Wallets

    Do your own research and take precautions in regards to wallet security. Neither Tendermint Inc nor the Interchain Foundation is liable if you lose your funds using these third party wallets.

    These community-maintained web and mobile wallets allow you to store & transfer ATOM, delegate ATOM to validators, and vote on on-chain governance proposals. Note that we do not endorse any of the wallets, they are listed for your convenience.

    # Metamask Snaps

    # Cosmos Hub Explorers

    These block explorers allow you to search, view and analyze Cosmos Hub data—like blocks, transactions, validators, etc.

    # Cosmos Hub CLI

    gaiad is a command-line interface that lets you interact with the Cosmos Hub. gaiad is the only tool that supports 100% of the Cosmos Hub features, including accounts, transfers, delegation, and governance. Learn more about gaiad with the delegator's CLI guide.

    # Running a full-node on the Cosmos Hub Mainnet

    In order to run a full-node for the Cosmos Hub mainnet, you must first install gaiad. Then, follow the guide.

    If you are looking to run a validator node, follow the validator setup guide.

    # Join the Community

    Have questions, comments, or new ideas? Participate in the Cosmos community through one of the following channels. Also check out the latest events (opens new window).

    To learn more about the Cosmos Hub and how it fits within the Cosmos Network, visit cosmos.network (opens new window).

    - + diff --git a/main/hub-tutorials/gaiad.html b/main/hub-tutorials/gaiad.html index 067b53fa6e6..c36fe09e986 100644 --- a/main/hub-tutorials/gaiad.html +++ b/main/hub-tutorials/gaiad.html @@ -8,7 +8,7 @@ - + @@ -414,6 +414,6 @@ echo '. gaiacli_completion' >> ~/.bashrc

    Refer to the user's manual of your interpreter provided by your operating system for information on how to enable shell autocompletion.

    - + diff --git a/main/hub-tutorials/index.html b/main/hub-tutorials/index.html index 12c9549dff1..d70453e3c68 100644 --- a/main/hub-tutorials/index.html +++ b/main/hub-tutorials/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/hub-tutorials/join-mainnet.html b/main/hub-tutorials/join-mainnet.html index ade7c8dd8ca..c8d02c2c5f7 100644 --- a/main/hub-tutorials/join-mainnet.html +++ b/main/hub-tutorials/join-mainnet.html @@ -8,7 +8,7 @@ - + @@ -204,6 +204,6 @@ gaiad tx crisis invariant-broken staking supply
    - + diff --git a/main/hub-tutorials/join-testnet.html b/main/hub-tutorials/join-testnet.html index 39d7f5d6d72..3fa7b7fea62 100644 --- a/main/hub-tutorials/join-testnet.html +++ b/main/hub-tutorials/join-testnet.html @@ -8,7 +8,7 @@ - + @@ -135,6 +135,6 @@ # Copy the new binary to the v14 upgrade directory cp ~/go/bin/gaiad ~/.gaia/cosmovisor/upgrades/v14/bin/gaiad

    When the upgrade height is reached, Cosmovisor will stop the gaiad binary, copy the new binary to the current/bin folder and restart. After a few minutes, the node should start syncing blocks using the new binary.

    - + diff --git a/main/hub-tutorials/live-upgrade-tutorial.html b/main/hub-tutorials/live-upgrade-tutorial.html index f441b20dff3..d5cac0d0cd8 100644 --- a/main/hub-tutorials/live-upgrade-tutorial.html +++ b/main/hub-tutorials/live-upgrade-tutorial.html @@ -8,7 +8,7 @@ - + @@ -61,6 +61,6 @@ # verify you can query the block header of the completed upgrade $ gaiad query upgrade applied <plan-name>
    - + diff --git a/main/hub-tutorials/upgrade-node.html b/main/hub-tutorials/upgrade-node.html index 9fa07c703ea..031346eeea4 100644 --- a/main/hub-tutorials/upgrade-node.html +++ b/main/hub-tutorials/upgrade-node.html @@ -8,7 +8,7 @@ - + @@ -61,6 +61,6 @@ Copy gaiad unsafe-reset-all

    Your node is now in a pristine state while keeping the original priv_validator.json and config.toml. If you had any sentry nodes or full nodes setup before, your node will still try to connect to them, but may fail if they haven't also been upgraded.

    - + diff --git a/main/images/index.html b/main/images/index.html index 90babd1f930..343edc582de 100644 --- a/main/images/index.html +++ b/main/images/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/index.html b/main/index.html index 7e70c2ae326..659e12573c2 100644 --- a/main/index.html +++ b/main/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/ko/delegators/delegator-guide-cli.html b/main/ko/delegators/delegator-guide-cli.html index 3fe28afb7e1..b11e906c29f 100644 --- a/main/ko/delegators/delegator-guide-cli.html +++ b/main/ko/delegators/delegator-guide-cli.html @@ -8,7 +8,7 @@ - + @@ -195,6 +195,6 @@ Copy gaiad tx broadcast signedTx.json
    - + diff --git a/main/ko/gaia-tutorials/installation.html b/main/ko/gaia-tutorials/installation.html index 2fdf07879a0..ab4daf463b1 100644 --- a/main/ko/gaia-tutorials/installation.html +++ b/main/ko/gaia-tutorials/installation.html @@ -8,7 +8,7 @@ - + @@ -44,7 +44,7 @@ commit: 89e6316a27343304d332aadfe2869847bf52331c build_tags: netgo,ledger go: go version go1.12.5 darwin/amd64 -

    # 빌드 태그

    빌드 태그는 해당 바이너리에서 활성화된 특별 기능을 표기합니다.

    빌드 태그 설명
    netgo Name resolution이 오직 Go 코드만을 사용합니다
    ledger 렛저 기기(하드웨어 지갑)이 지원됩니다

    # snap을 사용해 바이너리 설치하기 (리눅스에만 해당)

    재현가능한 바이너리 시스템이 완벽하게 구현되기 전까지 snap 바이너리를 실제 노드 운용에 사용하지 않으시는 것을 추천드립니다.

    # 개발자 워크플로우

    코스모스 SDK 또는 텐더민트의 변경 사항을 테스팅하기 위해서는 replace 항목이 go.mod에 추가하여 올바른 import path를 제공해야합니다.

    • 변경 사항 적용
    • go.modreplace github.com/cosmos/cosmos-sdk => /path/to/clone/cosmos-sdk 추가
    • make clean install 또는 make clean build 실행
    • 변경 사항 테스트

    # 다음 절차

    축하합니다! 이제 메인넷에 참가하거나퍼블릭 테스트넷에 참가하시거나 자체 테스트넷을 운영하실 수 있습니다.

    - +

    # 빌드 태그

    빌드 태그는 해당 바이너리에서 활성화된 특별 기능을 표기합니다.

    빌드 태그 설명
    netgo Name resolution이 오직 Go 코드만을 사용합니다
    ledger 렛저 기기(하드웨어 지갑)이 지원됩니다

    # snap을 사용해 바이너리 설치하기 (리눅스에만 해당)

    재현가능한 바이너리 시스템이 완벽하게 구현되기 전까지 snap 바이너리를 실제 노드 운용에 사용하지 않으시는 것을 추천드립니다.

    # 개발자 워크플로우

    코스모스 SDK 또는 텐더민트의 변경 사항을 테스팅하기 위해서는 replace 항목이 go.mod에 추가하여 올바른 import path를 제공해야합니다.

    • 변경 사항 적용
    • go.modreplace github.com/cosmos/cosmos-sdk => /path/to/clone/cosmos-sdk 추가
    • make clean install 또는 make clean build 실행
    • 변경 사항 테스트

    # 다음 절차

    축하합니다! 이제 메인넷에 참가하거나퍼블릭 테스트넷에 참가하시거나 자체 테스트넷을 운영하실 수 있습니다.

    + diff --git a/main/ko/gaia-tutorials/join-mainnet.html b/main/ko/gaia-tutorials/join-mainnet.html index a77c7258357..ba49a14bd9f 100644 --- a/main/ko/gaia-tutorials/join-mainnet.html +++ b/main/ko/gaia-tutorials/join-mainnet.html @@ -8,7 +8,7 @@ - + @@ -68,7 +68,7 @@ CRITICAL please submit the following transaction: gaiad tx crisis invariant-broken staking supply -

    Invariant-broken 트랜잭션을 전송하는 경우 블록체인이 중지되기 떄문에 수수료가 없습니다.

    # 검증인 노드로 업그레이드 하기

    이제 풀노드 설정을 완료하셨습니다. 원하신다면 풀노드를 코스모스 검증인으로 업그레이드 하실 수 있습니다. 보팅 파워 상위 100위 검증인은 코스모스 허브의 새로운 블록 프로포즈 과정에 참여할 수 있습니다. 검증인 세팅하기를 확인하세요.

    - +

    Invariant-broken 트랜잭션을 전송하는 경우 블록체인이 중지되기 떄문에 수수료가 없습니다.

    # 검증인 노드로 업그레이드 하기

    이제 풀노드 설정을 완료하셨습니다. 원하신다면 풀노드를 코스모스 검증인으로 업그레이드 하실 수 있습니다. 보팅 파워 상위 100위 검증인은 코스모스 허브의 새로운 블록 프로포즈 과정에 참여할 수 있습니다. 검증인 세팅하기를 확인하세요.

    + diff --git a/main/ko/gaia-tutorials/join-testnet.html b/main/ko/gaia-tutorials/join-testnet.html index 2c8a38e15aa..7982fec1f2f 100644 --- a/main/ko/gaia-tutorials/join-testnet.html +++ b/main/ko/gaia-tutorials/join-testnet.html @@ -8,7 +8,7 @@ - + @@ -60,7 +60,7 @@

    만약 해당 상태를 기반으로 새로운 네트워크를 시작하시려 한다면, --for-zero-height 플래그를 이용하셔서 내보내기를 실행해주세요:

    Copy gaiad export --height [height] --for-zero-height > [filename].json -

    # 밸리데이터 노드로 업그레이드 하기

    이제 풀노드가 활성화 되었습니다! 다음은 무엇일까요?

    이제는 해당 풀노드를 업그레이드 하여 코스모스 밸리데이터가 될 수 있습니다. 상위 100개 밸리데이터는 코스모스 허브의 블록 생성과 제안을 할 수 있습니다. 밸리데이터 노드로 업그레이드 하시기 위해서는 밸리데이터 설정하기 항목으로 넘어가주세요.

    - +

    # 밸리데이터 노드로 업그레이드 하기

    이제 풀노드가 활성화 되었습니다! 다음은 무엇일까요?

    이제는 해당 풀노드를 업그레이드 하여 코스모스 밸리데이터가 될 수 있습니다. 상위 100개 밸리데이터는 코스모스 허브의 블록 생성과 제안을 할 수 있습니다. 밸리데이터 노드로 업그레이드 하시기 위해서는 밸리데이터 설정하기 항목으로 넘어가주세요.

    + diff --git a/main/ko/gaia-tutorials/what-is-gaia.html b/main/ko/gaia-tutorials/what-is-gaia.html index 8c96022f06f..3a160dababa 100644 --- a/main/ko/gaia-tutorials/what-is-gaia.html +++ b/main/ko/gaia-tutorials/what-is-gaia.html @@ -8,12 +8,12 @@ - +

    # Gaia는 무엇인가요?

    가이아(gaia)는 코스모스 허브의 코스모스 SDK 애플리케이션의 이름입니다. 가이아는 두개의 엔트리 포인트로 구성돼있습니다:

    • gaiad: 가이아 데몬, gaia 애플리케이션의 풀노드를 운영합니다.
    • gaiad: 가이아 커맨드 라인 인터페이스는 유저가 가이아 풀노드와 소통할 수 있게 합니다.

    gaia는 코스모스 SDK의 다음 모듈들을 이용해 제작되었습니다:

    • x/auth: 계정 및 서명
    • x/bank: 토큰 전송
    • x/staking: 스테이킹 로직
    • x/mint: 인플레이션 로직
    • x/distribution: 수수료(보상) 분배 로직(fee distribution logic)
    • x/slashing: 슬래싱 로직
    • x/gov: 거버넌스 로직
    • ibc-go/modules: 인터블록체인 전송
    • x/params: 앱레벨 파라미터 관리

    코스모스 허브에 대해서: 코스모스 허브는 코스모스 네트워크의 최초 허브입니다. 허브는 블록체인 간 전송을 수행하는 역할을 합니다. IBC를 통해 특정 허브에 연결된 블록체인은 해당 허브에 연결되어있는 모든 블록체인과 함께 연결됩니다. 코스모스 허브는 지분증명 기반 퍼블릭 블록체인이며, 고유 토큰은 아톰(Atom)입니다. 다음은 Gaia를 설치하는 방법을 알아보겠습니다. -

    - +

    + diff --git a/main/ko/genesis-state.html b/main/ko/genesis-state.html index 618c18ad42f..b84d64202cf 100644 --- a/main/ko/genesis-state.html +++ b/main/ko/genesis-state.html @@ -8,7 +8,7 @@ - + @@ -25,6 +25,6 @@ GenTxs []json.RawMessage `json:"gentxs"` }

    ABCI에서는 initFromGenesisStateinitChainer의 정의가 호출되며 내부적으로 각 모듈의 InitGenesis를 호출하여 각자의 GenesisState를 파라미터 값으로 지정합니다.

    # 계정(Accounts)

    제네시스 계정은 x/auth 모듈의 GenesisState에 정의되며 accounts 키 내에 존재합니다. 제네시스 계정의 표준 정의는 없으나 모든 제네시스 계정은 x/auth가 정의한 GenesisAccount를 사용합니다.

    각 계정은 유효하고 고유한 계정 번호(account number), 시퀀스 번호(sequence number / nonce)와 주소가 있어야 합니다.

    또한, 계정은 베스팅(락업) 형태로 존재할 수 있으며, 이 경우 필수 락업 정보를 정의해야 합니다. 베스팅 계정은 최소 OriginalVestingEndTime 값을 제공해야 합니다. 만약 StartTime이 정의되는 경우, 해당 계정은 지속적 베스팅 계정으로 취급되며 지정된 스케줄에 따라 지속적으로 토큰의 락업을 해제합니다. 정의되는 StartTimeEndTime값보다 적어야 하지만, 미래에 시작될 수도 있습니다. 즉, 락업 해제는 제네시스 시간과 동일하지 않아도 무관합니다. 만약 Export된 상태(state)가 아닌 신규 상태에서 시작되는 체인일 경우, OriginalVesting 값은 Coin 값과 동일하거나 적어야 합니다.

    - + diff --git a/main/ko/index.html b/main/ko/index.html index e708c6d49fb..91e545b1632 100644 --- a/main/ko/index.html +++ b/main/ko/index.html @@ -8,11 +8,11 @@ - +

    # Gaia Documentation

    Gaia docs에 오신 것을 환영합니다. Gaia 는 코스모스 허브를 위한 코스모스 애플리케이션의 현재 명칭입니다.

    # 코스모스 퍼블릭 테스트넷에 참가하세요

    # 자체 gaia 테스트넷 세팅하기

    # 추가 리소스

    - + diff --git a/main/ko/keys.html b/main/ko/keys.html index 68695ba942f..3f7157b9a87 100644 --- a/main/ko/keys.html +++ b/main/ko/keys.html @@ -8,11 +8,11 @@ - +

    #

    키 관리에 대해서는 CometBFT (opens new window)을 확인하세요.

    gaiad keys --help 명령어를 통해 추가 정보를 얻으실 수 있습니다.

    테스트넷 투토리얼 (opens new window)에서 관련 정보를 확인하실 수 있습니다.

    참고: 이 문서는 현재 작업중에 있습니다.

    - + diff --git a/main/ko/launch/blog-1-kr.html b/main/ko/launch/blog-1-kr.html index c35bdc1914e..3e8d6e3340e 100644 --- a/main/ko/launch/blog-1-kr.html +++ b/main/ko/launch/blog-1-kr.html @@ -8,11 +8,11 @@ - +

    # 코스모스 허브 메인넷의 시작

    # 런칭 준비 체크리스트 & 안전하게 아톰 수령하기

    2016년 여름, 코스모스 백서가 (opens new window) 세상에 공개되었습니다. 이후 2017년 봄, 코스모스의 펀드레이저가 성공적으로 완료되었습니다. 그리고 2019년 2월, 코스모스의 소프트웨어가 기능 완성 (opens new window)(feature complete)단계에 도달했습니다. 이제 코스모스 허브의 런칭을 앞두고 있는 이 시점에서, 아톰 보유자들은 무엇을 해야될까요?

    아톰 보유자는 메인넷에서 본인의 아톰을 검증인에게 위임하고 거버넌스 프로포절에 투표를 할 수 있는 권리를 가질 수 있게 됩니다. 어떻게 보면 위임자들의 선택이 코스모스 네트워크의 성공을 좌우할 수 있다고 볼 수 있습니다. 단, 런칭 초기 아톰 송금 기능은 프로토콜 레벨에서 비활성화될 계획이며, 추후 하드포크를 통해 활성화될 것입니다.

    📒 안전하게 아톰을 위임하기 원하는 아톰 보유자들은 다음 가이드라인을 숙지하시고 따르시기 바랍니다. 본인의 안전을 위해서 CLI 사용법 (opens new window)을 충분히 숙지하기 전에는 별도의 행동을 하시지 않는 것을 추천해 드립니다.

    안전하게 아톰을 위임하는 방법은 이 가이드에 설명된 것 외에는 없습니다. 현재로써 gaiad 외 보안 감사를 거친 월렛 소프트웨어는 없습니다. 다른 월렛은 보안 감사를 시작하지 않은 상태입니다.

    추가로 아톰을 위임하는 행위에는 매우 큰 리스크가 존재한다는 점을 인지하셔야 합니다. 한번 검증인에게 위임된 아톰은 일정 기간동안 묶이게 되며, 이 스테이킹 기간 동안 검증인의 실수로 슬래싱(아톰 삭감)이 발생하는 경우 위임자의 아톰 또한 함께 삭감될 수 있습니다. 검증인들에 대한 충분한 정보를 미리 확인하고 위임을 진행하는 것은 각 위임자의 책임입니다.

    코스모스 허브는 매우 실험적인 소프트웨어입니다. 메인넷 초기에는 다수의 문제, 업데이트 그리고 버그가 존재할 수 있습니다. 현재 제공되는 도구를 사용하는데에는 상당한 기술적 실력이 필요하며, 인터체인 재단과 텐더민트 팀의 컨트롤 밖에 있는 리스크가 존재합니다 (관련 리스크에 대한 자세한 정보는 인터체인 코스모스 펀드레이저 약관 (opens new window)을 참고하세요). 아파치 2.0 라이선스 (opens new window) 기반의 오픈 소스 소프트웨어를 사용함으로 발생하는 리스크는 본인의 책임이며, 어떠한 보증과 조건이 따르지 않습니다. 소프트웨어 사용으로 발생하는 문제에 대해서 인터체인 재단과 텐더민트는 책임을 지지 않습니다. 상당한 주의를 기울이며 신중하게 진행하시기 바랍니다.

    만약 위임 절차에 대한 질문이 있거나, 코스모스 개발자들과 대화를 나누고 싶으시다면 2월 14일에 열리는 온라인 밋업에 참가해주세요. 해당 밋업에서 런칭 때 아톰을 위임하는 절차를 한 단계씩 설명해 드릴 예정입니다.

    등록 링크: gotowebinar.com/register/ (opens new window)

    # 런칭을 위해 남은 마일스톤

    🚦메인넷 런칭 프로세스를 확인하기 위해서는 다음 링크를 참고하세요: cosmos.network/launch (opens new window)

    # 5: 코스모스 SDK 보안 감사 ✔

    지난 1월, 코스모스 SDK는 다수의 외부 보안 감사 절차의 첫 단계를 진행했습니다. 보안 감사는 약 2주 반 기간에 걸려 진행되었습니다. 현재 두 개의 기관이 코스모스 SDK 코드를 검증한 상태이며, 다른 한 개 기관의 보안 감사가 진행 중입니다.

    # 4: 코스모스 SDK 기능 동결 (feature freeze)

    코스모스 SDK의 최종 주요 수정 사항은 SDK v0.31.0 RC에 (opens new window) 반영되었습니다. 해당 RC(Release candidate)가 완료된 후, 코스모스 SDK 팀은 추가적인 디버깅을 진행하여 런칭 전 보안성 확보를 위해 노력을 기울일 예정입니다.

    코스모스 SDK v0.31.0이 릴리즈된 후, 혹시라도 발견되지 않은 버그를 검증하기 위해 Gaia 테스트넷을 추가로 진행할 계획입니다.

    # 3: 게임 오브 스테이크 완료

    지난 2018년 12월, 사상 최초의 경쟁적 테스트넷인 게임 오브 스테이크(GoS, Game of Stakes)가 시작되었습니다. GoS의 목표는 경제적 인센티브 검증, 지분증명으로 보안이 유지되는 블록체인의 사회적 요소를 검증하기 위해 진행되었습니다. 이후, GoS는 무려 3번의 하드 포크를 성공적으로 진행했습니다. GoS가 완료된 후, 점수 측정 기준을 기반으로 우승자를 발표하게 될 계획입니다.

    # 2: 제네시스 트랜잭션 모으기

    제네시스 시점에서 인터체인 재단은 아톰 분배 권고를 작성합니다. 여기에는 코스모스 펀드레이저 참가자, 초기 기여자, 게임 오브 스테이크 우승자 등이 포함됩니다. 아톰 분배 권고 목록에 포함된 인원은 gentx를 제출할 수 있으며, 제네시스 검증인이 되기 위해서 gentx 제출은 필수입니다. 이후 모든 gentx 파일이 모이게 되면 최종 제네시스 파일이 만들어집니다.

    # 1: 코스모스 허브 메인넷 런칭 🔥 🚀 🌔🔥

    +⅔의 보팅 파워가 온라인 상태가 되고, 커뮤니티가 제네시스 파일을 승인하게 된다면 코스모스 메인넷이 시작됩니다.

    # 공식 코스모스 소통 채널

    런칭 관련 소식을 전하는 공식 소통 채널은 다음과 같습니다:

    • 코스모스 트위터 (twitter.com/cosmos)
    • 코스모스 깃허브 (github.com/cosmos)
    • 코스모스 블로그 (blog.cosmos.network)

    또한 코스모스 포럼 (opens new window), 라이엇 그룹 채팅 (opens new window) 그리고 텔레그램 방 (opens new window)은 코스모스의 공식적인 소식을 전달하는 채널이 아니라는 것을 인지하시기 바랍니다.

    만약 앞으로 진행해야 하는 절차가 어렵거나 특정 정보의 소스를 확인할 수 없는 경우, 초기 시점에서 아무 행동을 하지 않고 위 3개의 공식 채널로 전달되는 업데이트를 확인하시기 바랍니다. 12개의 시드 단어를 그 어떤 단톡방 관리자, 웹사이트, 비공식 소프트웨어에 제공하지 마십시오.

    코스모스 팀은 절대로 개인적인 채널을 통해 프라이빗 키 또는 시드 단어를 요청하지 않습니다.

    # 메인넷 런칭때 안전할 수 있는 방법은?

    런칭 시기가 다가오며 코스모스 허브 메인넷에 대한 기대감 또한 커지고 있습니다. 하지만 이런 시기를 틈타 일부는 본인의 이득을 위해 악의적이 행동을 할 확률 또한 높습니다. 사회 공학 (opens new window) (social engineering)을 이용한 범죄는 인류 역사에서 꾸준히 있었으며, 오늘까지 스피어피싱 (opens new window)피싱 공격 (opens new window) 같은 일종의 범죄 수단으로 이어지고 있습니다.

    약 성공한 공격의 95%는 스피어피싱과 피싱 공격으로 이루어졌으며, 이메일 외의 다수의 수단을 통해서도 일어나고 있습니다. 카카오톡, 텔레그램, 문자 메시지, 트위터 등 해커들의 공격 수단은 매우 다양하며, 개인의 자산과 개인 정보를 탈취하고 있습니다.

    이런 공격을 대비하는 것은 벅차게 느껴질 수 있지만 몇 가지 유의 사항을 참고하신다면 공격의 위험을 크게 낮출 수 있습니다. 메인넷 런칭 준비에 관련해서는 다음 가이드라인이 보안적 리스크를 줄이고 정보를 검증하는데 도움이 될 수 있을 것입니다.

    # 다음은 코스모스 메인넷 런칭 준비 유의사항입니다

    • 모든 소프트웨어는 공식 채널을 통해서만 다운로드를 하십시오. 또한, 12개 시드키가 입력될 수 있는 모든 작업은 최신 gaiad 버전만을 사용하시기 바랍니다. 텐더민트, 코스모스 SDK 그리고 gaiad 최신 버전은 공식 코스모스 깃허브를 통해서 배포됩니다. 공식 깃허브를 통해서 소프트웨어를 다운로드 함으로써 악의적으로 수정된 소프트웨어를 사용하는 것을 방지할 수 있습니다.
    • 12개 시드 단어(시드 키)를 그 누구에게도 알려주지 마십시오. 시드 키는 오직 본인만이 관리해야 합니다. 특히 아톰 보관, 거래 등을 대행해주는 행위를 사칭하여 접근하는 사람들을 유의하십시오. 시드키를 안전하게 관리하기 위해서는 도난으로부터 안전한 오프라인 장소에 보관하시고, 혹시 모를 상황을 대비한 백업 수단을 유지하십시오. 시드키를 절대로 제삼자와 공유하지 마십시오.
    • 블록체인 또는 암호화폐 관련된 이메일과 웹사이트에서 다운로드를 유도하는 첨부 파일을 유의하십시오. 해커는 악의적으로 수정된 웹사이트를 통해서 컴퓨터 내에 있는 파일을 탈취할 수 있습니다. Gmail을 사용하신다면 흔히 사용되는 이메일 기반 피싱 공격을 다음 링크에서 확인하세요.
    • 아톰 구매 시 충분한 검증을 진행하세요. 메인넷 런칭 초기에는 아톰 송금이 불가능 하므로, 송금 활성화가 되기 전에는 아톰 매수/매도가 불가능합니다. 또한 송금이 활성화된 후에도 매수/매도를 진행하는 거래소가 안전한지 확인을 하십시오.
    • 텐더민트 팀 또는 인터체인 재단은 절대로 아톰을 팔지 않습니다. 만약 소셜 미디어 또는 이메일을 통한 토큰 세일 제안이 있다면, 해당 정보는 허위 정보입니다.
    • 2단계 인증(2-factor authentication)을 활성화 하시고 주요 계정 복구 수단을 확인하십시오. 이메일, 소셜 미디어 계정, 깃허브 계정, 코스모스 포럼 계정 등은 공격자가 본인의 온라인 계정을 탈취할 수 있는 플랫폼을 제공합니다. 현재 2단계 인증을 사용하고 계시지 않는다면 활성화하시고 추가로 토큰 관리에 하드웨어 기반 키를 사용하시는 방법을 추천해 드립니다. 위 방법은 간단하지만 효율적으로 계정 탈취 가능성을 줄여줍니다.
    • 포럼 또는 단톡방을 통해서 모르는 사람이 기술적 조언을 제공하는 것에 주의를 기울이십시오. 리스크가 높은 행동(토큰 전송, 키 입력 등)들의 명령어에 익숙해지시고 공식 문서를 참고하셔서 본인의 자산을 위험에 취할 수 있는 행동을 숙지하십시오. 코스모스 포럼, 라이엇 채팅 그리고 텔레그램 방은 공식 뉴스 제공 채널이 아니라는 점을 인지하십시오.
    • 모든 송금 트랜잭션을 발생하기 전에 관련 정보를 확인하세요. 코스모스 주소는 길 수 있지만 4개 단어로 묶어서 확인하는 습관이 실수로 토큰을 소각하는 것을 방지할 수 있습니다.

    만약 누군가 과도하게 좋은 조건으로 코스모스 관련 서비스를 제공한다면 우선 의심을 하시는 것을 추천합니다. 주요 정보는 그 어떤 상황에서도 외부인과 공유하면 안 됩니다. 또한 모든 정보를 공식 채널들을 통해 확인하십시오.

    코스모스 팀, 텐더민트 팀 그리고 인터체인 팀은 개인 정보를 요청하거나 12개 시드키를 요구하는 이메일을 보내지 않습니다. 코스모스 팀은 언제나 공식 블로그, 트위터 그리고 깃허브를 통해서만 소통을 진행합니다.

    # Thank you to Cosmos Korea

    참고: 이 글은 정보 제공을 위하여 번역된 글입니다. 내용/해석에 차이가 있을 수 있으며, 이 경우 영문 원문이 상위 권한을 가집니다.

    - + diff --git a/main/ko/launch/blog-2-kr.html b/main/ko/launch/blog-2-kr.html index 53ff05c11e0..d33e8853a4e 100644 --- a/main/ko/launch/blog-2-kr.html +++ b/main/ko/launch/blog-2-kr.html @@ -8,11 +8,11 @@ - +

    # 코스모스 허브 메인넷의 세 가지 단계

    # 메인넷 후 개발 로드맵과 유저들을 위한 필수 정보

    코스모스 허브의 런칭은 단계별로 나뉘어 진행될 계획입니다. 다음은 각 단계별로 어떤 사항들이 진행될지에 대한 요약입니다.

    # 🚨1단계: 네트워크 안정성 확보 🚨

    메인넷의 최초 단계인 1단계에서 코스모스 네트워크는 다소 불안정할 수 있습니다. 메인넷 초기에는 네트워크 중단 같은 문제들이 발생할 확률이 존재합니다.

    혹시라도 발생할 수 있는 문제들을 해결하기 위해서는 코스모스 허브 검증인 간, 풀노드 운영자 등 참여자들 간의 긴밀한 협업이 필요합니다.

    유저는 충분한 네트워크 안정성이 확보될 때까지 문제들이 발생할 수 있다는 것을 인지해야 합니다.

    블록체인 롤백과 메인넷 런칭

    블록체인 기술의 핵심 이념 중 하나는 불가역성(immutability)입니다.

    불가역성이란 이미 진행된 블록체인의 기록을 되돌아가 바꾸지 않는다는 것입니다. 블록체인의 불가역성은 소프트웨어 계층에서 합의 프로토콜의 형태로 전개되지만, 궁극적으로 네트워크 참여자들의 사회적 계약(social contract) 형태로 유지됩니다.

    여기서 참고할 것은 코스모스 허브는 의도적으로 포크와 롤백 절차를 간소화할 수 있도록 설계되었다는 것입니다. 코스모스 커뮤니티는 테스트넷 단계에서 이런 기능을 실제 사용했으며, 메인넷에서 또한 사용될 수 있습니다. 포크와 롤백 기능은 특정 카르텔 집단이 네트워크를 점령하는 것에 대한 대응 도구로 사용될 수 있습니다.

    대다수의 블록체인 커뮤니티는 롤백을 부정적으로 인식하고 있으며 매우 신중하게 결정되어야 합니다. 블록체인의 상태를 되돌린다는 것은 블록체인 네트워크의 경제적 완결성(economic finality)을 깨트리는 행동입니다. 그렇기 때문에 블록체인 롤백은 이더리움의 The DAO 하드포크 같은 극한 상황 상황에서만 사용되어야 합니다.

    단, 코스모스 허브 네트워크의 초기 단계에서는 토큰 전송 기능이 비활성화된 상태로 시작됩니다. 이런 특성은 블록체인 롤백의 중대성을 줄이게 되며 블록체인 상태의 변경의 ‘경제적 완결성’을 낮추게 됩니다. 버그 등 문제 발생으로 블록체인 롤백이 필요하다는 판단이 내려지는 경우, 테스트넷과 같이 블록체인 상태 롤백이 제네시스 블록까지도 진행될 수 있습니다.

    거버넌스에 의하여 토큰 전송이 활성화되는 경우, 코스모스 네트워크는 경제적 완결성을 따르게 됩니다.

    위 내용을 요약하자면, 토큰 전송이 활성화되기 전 코스모스 허브에 에러 또는 취약점이 발견되는 경우, 블록체인의 (제네시스 상태까지) 롤백이 진행될 수 있습니다.

    하지만 토큰 전송이 활성화된 뒤라면 블록체인 롤백을 정당화하는 것은 상당히 어렵게 됩니다.

    개발자 참고 사항: 코스모스 메인넷 런칭은 펀드레이저 참가자들이 협동하여 코스모스 허브 소프트웨어를 운영하는 첫 단계입니다. 생태계 내 대다수의 탈중앙화 애플리케이션 개발자는 코스모스 SDK (opens new window) 또는 Comet BFT (opens new window)를 사용하고 있는 것으로 예상됩니다. 각 코스모스 SDK/Comet BFT 기반 애플리케이션의 개발 진행은 코스모스 허브와 별도로 진행되어도 무관합니다. 다만, IBC (opens new window)(Inter-Blockchain Communication)을 사용하기 위해서는 메인넷 3단계까지 기다리거나 IBC 테스트넷에서 시범운영을 하실 수 있습니다.

    유저 참고 사항: 메인넷 최초 단계에서는 코스모스 아톰을 거래하지 않는 것을 강력하게 권고합니다 (예, 법적 계약을 통한 거래). 1단계에서는 제네시스 블록까지 긴급 롤백이 진행될 수 있으므로 트랜잭션이 번복될 수 있는 위험이 존재합니다.

    다만, 유저는 CLI 가이드 또는 하단의 영상 투토리얼을 참고하여 안전하게 아톰 위임을 진행하실 수는 있습니다. 다만 만약 블록체인 롤백이 진행되는 경우, 스테이킹으로 받은 리워드와 인플레이션 리워드의 손실이 있습니다.

    첫 단계에서 오직 CLI를 사용해서 트랜잭션을 발생하는 것을 코스모스 허브와 소통할 때 사용될 보이저(Voyager) 지갑은 현재 알파 단계에 있기 때문에 안전하게 사용할 수 있는 프로그램은 CLI 뿐이라는 것을 강조합니다. 보이저 지갑이 안전하다는 판단이 내려지고 베타가 시작될때 별도의 공지가 있겠습니다.

    CLI 가이드 🔗: https://github.com/cosmos/cosmos-sdk/blob/develop/docs/translations/kr/gaia/delegator-guide-cli.md (opens new window)

    CLI 위임 투토리얼 (영어): https://www.youtube.com/watch?v=ydZw6o6Mzy0 (opens new window)

    # 2단계: 토큰 전송 활성화

    요약: 메인넷이 충분히 안정성을 확보했다는 판단이 내려진 후, 위임된 아톰을 보유한 홀더들은 아톰 토큰 전송 활성화에 대한 프로포절에 투표를 할 수 있습니다. 해당 절차는 블록체인 상의 거버넌스 절차를 통해 진행됩니다.

    거버넌스 프로포절 현황에 대한 정보는 다양한 코스모스 익스플로러를 통해 확인하실 수 있습니다. 코스모스 익스플로러 목록은 여기 (opens new window)를 참고하세요.

    유저 참고 사항: 토큰 전송 활성화 프로포절이 통과하고 전송이 활성화된 후 아톰 이동이 가능해집니다.

    # 3단계: IBC 활성화

    요약: 3단계에서는 IBC 프로토콜이 공개됩니다. 토큰 홀더는 IBC 기능을 코스모스 SDK의 코어 모듈 라이브러리로 활성화할지에 대한 거버넌스 투표를 하게됩니다.

    개발자 참고 사항: 이 단계에서 코스모스 SDK/텐더민트 BFT를 기반으로 만들어진 애플리케이션 특화 블록체인(application-specific blockchain)은 IBC를 통해 중앙화된 제삼자 없이 코스모스 허브와 소통할 수 있게 됩니다. IBC를 이용해 블록체인 간 다양한 토큰과 NFT(Non-fungible token)들의 이동이 가능해집니다.

    # 메인넷 검증인 준비 사항

    1. 메인넷에서 사용할 검증인 컨센서스 키(validator consensus key)를 생성하고 안전한 형태로 보관하십시오.
    2. 게임 오브 스테이크 상금 / 펀드레이저 계정에서 트랜잭션 생성 및 서명을 할 수 있도록 준비하십시오
    3. ICF의 제네시스 토큰 분배 제안이 공개된 후 메인넷 Gentx 수집 작업을 시작합니다.

    # 글을 마무리 하며

    코스모스의 목적은 모든 블록체인을 연결하여 ‘블록체인의 인터넷’을 만드는 것입니다.

    앞으로 가야 할 길이 멀다는 것을 알고 있습니다.

    메인넷이 런칭된 후, 토큰 이코노미 기반의 세상을 설계하는 본격적인 일이 본격적으로 시작돼야 할 것입니다.

    하지만 미국 전 대통령 존 케네디의 말을 인용하자면, “우리는 달에 가기로 결정하였습니다. 그것이 쉽기 때문이 아니라 어렵기 때문에 이렇게 결정한 것입니다.”

    달에 도착하는 그 날까지… 🚀

    - + diff --git a/main/ko/resources/gaiad.html b/main/ko/resources/gaiad.html index 8f855104bc9..cfcf1890ad8 100644 --- a/main/ko/resources/gaiad.html +++ b/main/ko/resources/gaiad.html @@ -8,7 +8,7 @@ - + @@ -343,6 +343,6 @@ echo '. gaiad_completion' >> ~/.bashrc echo '. gaiacli_completion' >> ~/.bashrc

    셸 자동 완성을 사용하시려면 사용하시는 OS의 매뉴얼을 참고하십시오.

    - + diff --git a/main/ko/resources/genesis.html b/main/ko/resources/genesis.html index 6227abaaa6b..22c3be75ffe 100644 --- a/main/ko/resources/genesis.html +++ b/main/ko/resources/genesis.html @@ -8,7 +8,7 @@ - + @@ -172,6 +172,6 @@ Copy gaiad collect-gentxs

    위 명령어는 ~/.gaia/config/gentx에 있는 모든 gentxs를 제네시스 파일에 추가합니다. 제네시스 트랜잭션을 생성하기 위해서는 여기를 확인하세요.

    - + diff --git a/main/ko/resources/hd-wallets.html b/main/ko/resources/hd-wallets.html index 4022022c4a3..52d30154bda 100644 --- a/main/ko/resources/hd-wallets.html +++ b/main/ko/resources/hd-wallets.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ | | +-------------------+

    시드로부터 계정을 생성하는 과정은 결정론적(deterministic)입니다. 즉, 동일한 시드로 부터 동일한 path를 입력한 경우, 생성되는 private key는 언제나 동일합니다.

    계정에 보관되어있는 자산은 프라이빗 키를 사용해 관리됩니다. 프라이빗 키는 네모닉으로 부터 일방적 함수를 적용해 생성됩니다. 만약 프라이빗 키를 분실하신 경우, 네모닉을 사용해 프라이빗 키를 다시 찾을 수 있으나, 네모닉을 분실하신 경우 연관된 모든 프라이빗 키에 대한 소유권을 잃으실 수 있습니다. 또한 유저의 네모닉이 타인에게 노출이된 경우, 네모닉과 연관된 모든 계정의 소유권을 가지게 됩니다.

    24 단어로 구성된 네모닉을 누구와도 공유하지 마세요. 자산의 도난과 분실을 예방하기 위해서 다수의 네모닉 키를 안전한 곳에 보관하는 것이 좋습니다. 만약 타인이 당신의 네모닉을 소유하게 되면, 연관된 모든 계정의 소유권을 함께 가지게 됩니다.

    - + diff --git a/main/ko/resources/ledger.html b/main/ko/resources/ledger.html index 7d18ea4f1cb..f3693990533 100644 --- a/main/ko/resources/ledger.html +++ b/main/ko/resources/ledger.html @@ -8,7 +8,7 @@ - + @@ -63,6 +63,6 @@ Copy gaiad keys show <keyName> -d

    렛저에 표기되는 주소와 Lunie.io에 표기되는 주소가 동일한지 먼저 확인하시고 다음 단계를 진행하세요. 확인이 된 경우, Lunie에서 렛저 키를 사용해 트랜잭션을 서명할 수 있습니다.

    Lunie에 대해 더 알고싶으시면 이 투토리얼 (opens new window)을 참고하셔서 아톰 위임과 Lunie 웹 지갑에 대해서 더 알아보세요.

    # 코스모스 표준 트랜잭션

    코스모스의 트랜잭션은 코스모스 SDK의표준 트랜잭션 타입(Standard Transaction Type) (opens new window)를 응용합니다. 렛저 기기는 이 오브젝트의 시리얼화된 JSON을 기기에서 표기하며, 트랜잭션 서명 전 검토하실 수 있습니다. 각 필드에 대한 설명은 다음과 같습니다:

    • chain-id: 트랜잭션을 전송할 체인, (예, gaia-13003 테스트넷 또는 cosmoshub-2 메인넷)
    • account_number: 계정에 최초로 자금을 입금할때 생성되는 계정의 고유 글로벌 ID
    • sequence: 계정의 논스 값. 이후 발생하는 트랜잭션 마다 이 값은 증가합니다.
    • fee: 트랜잭션 수수료, 가스 수량, 그리고 수수료의 단위를 설명하는 JSON 오브젝트
    • memo: (선택 값) 트랜잭션 태깅 등의 용도로 사용되는 텍스트 값
    • msgs_<index>/<field>: 트랜잭션에 포함된 메시지 어레이. 더블클릭하여 하위 JSON 값을 확인하실 수 있습니다.

    # 지원

    추가적인 지원이 필요하신 경우, 코스모스 포럼의 과거 글 (opens new window)을 참고하세요.

    텔레그램 채널 (opens new window)을 통해 문의하시거나 다음 커뮤니티 가이드를 참고하세요:

    - + diff --git a/main/ko/upgrade-node.html b/main/ko/upgrade-node.html index 31e97a4a8c0..7000eb51759 100644 --- a/main/ko/upgrade-node.html +++ b/main/ko/upgrade-node.html @@ -8,7 +8,7 @@ - + @@ -38,6 +38,6 @@ Copy gaiad start
    - + diff --git a/main/ko/validators/overview.html b/main/ko/validators/overview.html index 7b36e240844..6f3e8dd7380 100644 --- a/main/ko/validators/overview.html +++ b/main/ko/validators/overview.html @@ -8,11 +8,11 @@ - +

    # 검증인(밸리데이터) 개요

    # 소개

    코스모스 허브텐더민트 기반으로 만들어졌으며 특정 검증인들이 블록체인에 새로운 블록을 기록하는 절차를 기반으로 설계되었습니다. 검증인들은 각 검증인들의 프라이빗키로 서명된 암호화된 표(votes)를 전파하면서 합의 프로토콜에 참여합니다.

    검증인 후보는 본인들의 아톰을 자체적으로 위임하거나, 위임자들의 아톰을 위임받을 수 있습니다. 코스모스 허브는 100개의 검증인으로 시작하여 300개의 검증인으로 숫자를 늘려나갈 예정입니다. 검증인은 위임량에 따라서 정해지며, 상위 100위 검증인은 코스모스 검증인으로 선출됩니다.

    검증인들과 위임자들은 텐더민트 합의 프로토콜에 참여하며 블록생성에 대한 보상을 지급받게 됩니다. 초기에 트랜잭션 수수료는 아톰으로 결제되지만, 거버넌스로 통과된 '화이트리스트 토큰'들이 수수료 토큰으로 이용될 수 있습니다. 추가적으로 검증인들은 본인의 검증인 서비스 제공에 대한 커미션을 측정할 수 있습니다.

    만약 검증인이 이중서명(double sign)을 하거나, 자주 오프라인 되거나 또는 거버넌스에 참여하지 않는 경우, 그들의 아톰과 해당 검증인에게 위임된 아톰은 '슬래싱'당할 수 있습니다. 슬래싱 페널티는 악의적 행동의 중대성에 따라 비례합니다.

    # 하드웨어

    현재 검증인의 키 관리에 적합한 클라우드 솔루션은 없습니다. 앞으로 클라우드 SGX 도입이 되면서 조금 더 안전한 솔루션이 제공될 수 있을 것으로 기대되고 있습니다. 하지만 현재로써 클라우드 키 관리에 리스크가 있기 때문에 검증인들은 제한된 안전한 구역에 장비를 세팅하는 것을 추천합니다. 보안이 확보되는 특정 데이터 센터의 코로케이션(co-location) 같은 형태로 운영이 될 수 있습니다.

    검증인들은 서버 장비가 운영되는 데이터센터에 스토리지 백업, 복수 회선, 그리고 전력 백업 등의 시스템이 갖춰져 있는 것을 확인해야 합니다. 광선, 방화벽, 스위칭 등 또한 중복되어있는 것을 추천드립니다. 하드웨어 성능에는 중저형 서버로 시작해도 충분할 것으로 예상되나, 충분한 검증과 테스팅을 실행하시는 것을 추천드립니다.

    코스모스 생태계 초기의 네트워크 사용량은 크지 않을 것으로 예상되며, 현재 테스트넷은 대량의 리소스를 필요로 하지 않습니다. 하지만 네트워크가 성장하며 대역폭, CPU와 메모리 사용량이 높아질 것으로 예상됩니다. 추가적으로, 몇년의 블록체인 기록을 저장해야되기 때문에 대용량 하드드라이브를 이용하시는 것을 추천드립니다.

    # 웹사이트 세팅하기

    검증인의 고유 웹사이트를 만드시고, 코스모스 포럼 (opens new window)을 통해서 검증인 참여 의사를 알려주십시오. 위임인들은 위임 대상 검증인에 대한 정보를 확인하려 할 수 있으니, 관련 정보를 기제해주시기 바랍니다.

    # 법적 검토

    검증인 사업을 운영하시기 전에 전문 법적 검토를 미리 받으실 것을 추천드립니다.

    # 검증인 커뮤니티

    추가적으로 검증인을 운영하는 것에 대한 질문과 정보는 검증인 커뮤니티 채팅방과 포럼을 이용하세요:

    - + diff --git a/main/ko/validators/security.html b/main/ko/validators/security.html index 7f8a425ce41..28343f1f4f1 100644 --- a/main/ko/validators/security.html +++ b/main/ko/validators/security.html @@ -8,7 +8,7 @@ - + @@ -25,6 +25,6 @@ # Comma separated list of peer IDs to keep private (will not be gossiped to other peers) private_peer_ids = "프라이빗_피어_노드_ID"

    # 환경 변수

    기본적으로 다음 프리픽스(prefix)의 대문자 환경 변수(environment variables)는 소문자 커맨드라인 플래그를 대체하게 됩니다:

    • GA (for Gaia 플래그)
    • TM (for Tendermint 플래그)
    • BC (for democli 또는 basecli 플래그)

    예를들어 GA_CHAIN_ID 환경 변수는 --chain-id 커맨드라인 플래그에 매핑됩니다. 명백한(explicit) 커맨드라인 플래그는 환경 변수 보다 상위에 속하며, 환경 변수는 모든 설정 파일 보다 상위에 속합니다. 중요한 파라미터는 CLI의 플래그로 정의되어야 하며 환경 변수의 수정 가능성을 줄이는 것이 중요합니다.

    - + diff --git a/main/ko/validators/validator-faq.html b/main/ko/validators/validator-faq.html index dd5eaf51b99..b6750dbea5c 100644 --- a/main/ko/validators/validator-faq.html +++ b/main/ko/validators/validator-faq.html @@ -8,11 +8,11 @@ - +

    # 검증인 FAQ

    경고

    코스모스 프로젝트는 현재 진행형입니다. 메커니즘과 값은 추후 변경될 수 있다는 점을 확인하십시오.

    # 기본 개념

    # 검증인이란 무엇인가?

    코스모스 허브텐더민트 기반으로 특정 검증인 들이 네트워크의 보안을 지키는 허브입니다. 검증인들은 풀노드를 운영하며 본인의 프라이빗키로 서명된 암호화된 서명으로 투표를 하며, 이 표를 네트워크에 전파하여 합의 절차에 참여하게 됩니다. 검증인들은 새로운 블록은 블록체인에 기록하고, 이런 역할에 대한 보상을 받게됩니다. 또한 검증인은 프로포절에 대한 투표를 하며 거버넌스 절차에 참여합니다. 검증인들의 순위는 위임 받은 코인 수량에 따라서 정해집니다.

    # '스테이킹'은 무엇인가?

    코스모스 허브는 퍼블릭 지분증명 블록체인입니다. 이는 각 검증인들의 순위가 각자가 위임받아 본딩된 스테이킹 토큰(아톰)의 수량에 따라 순위가 정해진다는 것입니다. 검증인은 스테이킹은 검증인 자체 물량 또는 위임자가 위임한 토큰이 될 수 있습니다.

    검증인이 될 의사가 있는 유저는 누구나 create-validator 트랜잭션을 발생시켜 의사를 표시하고 검증인이 될 수 있습니다.

    (스테이킹 수량으로 결정되는) 검증인의 가중치(weight)는 해당 검증인이 실제 블록 생성에 참여할 수 있는지를 결정하며, 얼마나 자주 블록은 제안할 수 있는지와 얼마나 많은 보상을 가저가는지에 영향을 끼칩니다. 초기에는 가중치가 높은 125개의 검증인들이 실제 블록생성에 참여합니다. 만약 검증인이 이중서명을 하거나, 자주 오프라인 상태로 전환되거나, 거버넌스 절차에 참여하지 않을경우 위임된 모든 아톰(자체물량과 위임 받은 물량 포함)은 '슬래싱'되어 사라지게 됩니다.

    # 풀노드는 무엇인가?

    풀노드는 블록의 블록과 트랜잭션을 검증하는 프로그램입니다. 라이트노드와의 차이점은 라이트노드의 경우 블록헤더와 일부 소량의 트랜잭션을 처리하지만, 풀노드는 모든 거래와 모든 기록을 저장하고 검증합니다. 풀노드를 운영하기 위해서는 라이트노드보다 많은 리소스가 필요하지만, 검증인을 운영하기 위해서는 필수적입니다. 실질적으로 풀노드를 운영한다는 것은 최신 버전과 안전성이 확보된 소프트웨어를 다운타임과 네트워크 지연없이 운영하는 것입니다.

    검증인을 운영할 의사가 없는 유저들도 풀노드를 운영할 수 있습니다.

    # 위임인은 무엇인가?

    위임자/위임인은 아톰을 보유하고 있지만 검증인을 운영할 수 없거나, 운영할 의사가 없는 유저입니다. 위임인은 [코스모스 보이저]Cosmos Voyager 또는 다른 지갑을 통해 본인의 아톰을 검증인에게 위임하여 검증인 보상의 일부를 돌려받을 수 있습니다(보상 분배에 대한 자세한 정보는 스테이킹의 인센티브검증인 커미션은 무엇인가? 항목을 확인하십시오).

    위임인은 검증인들과 보상을 나누기 때문에, 위임인에게도 책임이 주어집니다. 만약 검증인이 악의적인 행동을 한다면 위임인들의 토큰 또한 함께 슬래싱될 수 있습니다. 그렇기 때문에 위임인들은 위임을 하기 전 충분한 검토와 조사를 실시한 후 위임을 해야하며, 다수의 검증인에게 분산위임하는 방법을 추천합니다.

    위임인들은 코스모스 네트워크를 운영하는 검증인들을 선택하는 역할을 하기 때문에네 네트워크의 핵심적인 역할을 하는 유저입니다. 위임인은 수동적인 역할을 하는 유저가 아닙니다. 활발하게 검증인들의 활동과 행동을 모니터링하고 그들의 거버넌스 참여 투표 등을 자주 확인해야할 필요가 있습니다.

    # 검증인 되기

    # 어떻게 검증인이 되는가?

    네트워크에 참여하는 모든 유저는 create-validator 트랜잭션을 통해 본인이 검증인이 될 의사를 표시할 수 있습니다. 해당 트랜잭션에는 다음과 같은 값이 포함되어야 합니다:

    • 검증인의 PubKey: PubKey와 연관된 프라이빗키는 prevoteprecommit 을 서명하는데 사용됩니다. 이런 방식을 통해서 검증인은 유동적 자금이 있는 계정과 검증용 계정을 따로 관리할 수 있습니다.
    • 검증인 주소: 애플리케이션 단 주소입니다. 이 주소는 공개적으로 검증인의 신원을 확인할때 이용됩니다. 해당 주소와 연관되어있는 프라이빗키는 본딩, 언본딩, 보상 수령, 거버넌스 참여 등에서 이용됩니다.
    • 검증인 이름(moniker)
    • 검증인 웹사이트(선택 사항)
    • 검증인 설명(선택 사항)
    • 최초 커미션: 블록 검증으로 받는 보상에서 위임인들 지불되기 전 삭감되는 수수료
    • 최대 커미션: 해당 검증인이 설정한 최대 수수료
    • 최소 셀프본딩 수량: 검증인이 최소로 본딩해야 하는 아톰의 수량. 만약 해당 검증인의 총 위임 수량이 이 값보다 떨어지는 경우, 스테이킹 풀 전체는 언본딩 됩니다.
    • 최초 셀프본딩 수량: 최초로 검증인이 자체 스테이킹 하는 수량.

    이제 검증인이 만들어지면, 위임인들은 해당 검증인에게 아톰을 위임하며 해당 스테이킹 풀의 수량을 늘려갈 수 있습니다. 특정 주소의 총 스테이크는 자체 스테이킹 물량 + 위임 받은 스테이킹 물량입니다.

    검증인으로 참가할 의사를 밝힌 모든 검증인 중 스테이킹 수량이 가장 많은 상위 125개의 검증인은 '활성화된 검증인'으로 블록생성에 참여할 수 있게 됩니다. 상위 125 순위 밖으로 나가게 되는 검증인은 bonded 검증인이 되며 검증인 권한을 일게됩니다. 이때 해당 검증인의 물량은 언본딩 모드로 들어가면서 서서히 언본딩 됩니다.

    코스모스 허브의 검증인 수는 시간이 지날수록 다음과 같이 인상될 예정입니다:

    • 0년차: 100
    • 1년차: 125
    • 2년차: 130
    • 3년차: 144
    • 4년차: 163
    • 5년차: 184
    • 6년차: 208
    • 7년차: 235
    • 8년차: 265
    • 9년차: 300
    • 10년차: 300

    # 테스트넷

    # 어떻게 테스트넷에 참여할 수 있나요?

    테스트넷은 로치 전에 검증인 세팅을 확인할 수 있는 좋은 환경입니다. 테스트넷에 참가함으로 본인이 검증인 운영을 위해 준비해왔다는 것을 보여주는 기회가 될 수도 있습니다. 테스트넷에 관련된 정보는 여기 (opens new window)여기 (opens new window)에서 확인하실 수 있습니다.

    # 어떤 종류들의 '키'가 있나요?

    간략하게 설명하면 두가지 종류의 키가 있습니다:

    • 텐더민트 키: 이 키는 블록 해시를 서명할때 이용되는 고유 키입니다. 해당 키는 cosmosvalconspub 퍼블릭키와 연관되어 있습니다.

      • gaiad init으로 노드가 생성될때 키가 생성되며
      • 해당 키 정보는 gaiad tendermint show-validator 명령어로 확인하실 수 있습니다. 예) cosmosvalconspub1zcjduc3qcyj09qc03elte23zwshdx92jm6ce88fgc90rtqhjx8v0608qh5ssp0w94c
    • 애플리케이션 키: 이 키는 애플리케이션에 의하여 생성되고 트랜잭션을 서명할때 이용됩니다. 검증인으로써는 이 키를 스테이킹 관련 트랜잭션과 거버넌스 관련 트랜잭션을 서명할때 이용하시게 됩니다. 애플리케이션 키는 cosmospub 퍼블릭키와 cosmos 주소와 연관되어있습니다. 두 키 모두 gaiad keys add 명령으로 생성됩니다.

      • 참고: 특정 검증인의 운영키는 애플리케이션키와 연관이 있으나 cosmosvalopercosmosvaloperpub같은 특정 용도에만 맞는 사전 정의된 prefix를 이용합니다.

    # 밸리데이터들의 '상태(state)'에는 어떤 것들이 있나요?

    create-validator 트랜잭션을 통해 만들어진 검증인은 총 3개의 상태가 있을 수 있습니다:

    • bonded: 검증인은 현재 합의에 참가하고 있는 활성화된 검증인입니다. 이 검증인은 블록 보상을 받을 수 있으며, 악의적인 행동에 대한 슬래싱 페널티를 받을 수도 있습니다.
    • unbonding: 검증인은 현재 합의에 참가하고 있지 않으면 활성화된 검증인 세트에 포함되어있지 않습니다. 검증인은 블록 생성을 받지 않지만 악의적인 행동에 대한 슬래싱 페널티는 적용될 수 있습니다. 이 상태는 bonded 상태인 검증인이 unbonded으로 전환되는 중간 상태이며, 만약 unbonding 상태에서 rebond 트랜잭션을 발생하지 않으면 최대 3주간 중간 단계에 머무를 수 있습니다.
    • unbonded: 검증인은 합의에 참가하고 있지 않은 검증인이며, 활성화된 검증인 세트에 포함되어있지 않습니다. 이 검증인은 블록 생성 보상을 받지 않으며 슬래싱 페널티도 적용되지도 않습니다. 이 검증인에게 아톰을 위임하는 것은 가능합니다. unbonded 상태인 검증인으로 부터의 언본딩은 바로 처리 됩니다.

    위임인들은 관련 검증인들과 동일한 상태를 가지게 됩니다.

    Note that delegation are not necessarily bonded. Atoms can be delegated and bonded, delegated and unbonding, delegated and unbonded, or liquid

    # 셀프본딩은 무엇이며 어떻게 셀프본딩을 늘릴 수 있나요?

    # 테스트넷 토큰은 어떻게 받을 수 있나요?

    테스트넷 토큰을 받고 싶으시다면 faucet (opens new window)을 통해서 받으실 수 있습니다.

    # 활성화된 검증인이 되기 위해서 최소 필요한 아톰 수량이 있나요?

    합의 프로세스에 참여하며 블록을 생성하는 검증인이 되기 위해서 특정 수량의 아톰이 필요하지는 않습니다. 다만, 셀프본딩 수량과 위임 받은 수량의 합이 사우이 100위에 들어야 활성화된 검증인이 되실 수 있습니다.

    # 위임인들은 어떻게 검증인들을 선택하나요?

    위임인들은 본인들이 설정한 기준에 따라 검증인을 선택할 자유가 있습니다. 검증인을 선택할때 고려해야하는 주요 사항은 다음과 같습니다:

    • 셀프본딩 수랑: 특정 검증인이 자체 본딩한 아톰의 수량입니다. 셀프본딩 수량이 높은 검증인은 본인의 행동에 따라 잃을 수 있는 것이 많기 때문에 더 많은 책임감이 부여될 수 있습니다.
    • 위임된 아톰 수량: 해당 검증인이 위임받은 아톰의 총 수량. 높은 위임 수량은 해당 검증인에 대한 신뢰도가 높다는 것을 뜻할 수 있습니다. 다만, 대형 검증인은 책임지고 있는 물량이 많기 때문에 해커들의 타겟이 될 수 있다는 위험이 존재할 수 있습니다. 해커들은 특정 검증인이 위임하고 있는 물량의 일정 %를 보상으로 받기 때문에 해커는 대형 검증인을 타겟할 확률이 높습니다. 검증인이 위임받고 있는 아톰이 과도할 경우, 높은 위임 수량은 단점으로 적용될 수 있습니다.
    • 커미션: 해당 검증인이 생성하는 보상에 대하여 위임인들에게 청구하는 수수료입니다.
    • 검증인 활동 기록: 위임인들은 본인들의 아톰을 위임하기 전 검증인들의 활동 기록을 먼저 살펴볼 수 있습니다. 이 항목에는 활동 기간, 과거 투표 현황, 업타임 기록, 노드 공격 기록 등이 포함될 수 있습니다.

    위에 표기된 항목 외에도 검증인 정보에 포함되어있는 웹사이트를 통해서 검증인에 대한 정보를 받을 수 있습니다. 검증인 세팅에 대해 외부 감사를 받은 경우 이를 표기하는 것도 좋은 기록이 될 수 있습니다. 참고로 텐더민트 팀은 특정 검증인에 대한 감사를 진행하지 않습니다. 검증인 선택 기준에 대한 더 많은 정보는 이 블로그 글 (opens new window)에서 확인하실 수 있습니다.

    # 검증인들의 책임

    # 검증인을 하기 위해서는 신원을 밝혀야 하나요?

    아닙니다. 각 위임인들은 본인들이 설정한 기준으로 각자 투표를 합니다. 검증인들은 홍보 용도를 위해서 본인들에 대한 정보가 표기된 웹사이트를 공개하는 것을 추천합니다. 해당 웹사이트에서 본인들의 정보를 공개할 것인지 또는 익명으로 본인들의 활동 기록만을 공개할 것인지는 검증인의 선택입니다. 코스모스 허브에는 익명의 팀과 팀 정보를 공개하는 팀이 공존할 확률이 높습니다.

    # 검증인들이 되기 위해서는 어떤 책임이 있나요?

    검증인들은 다음과 같은 책임이 있습니다:

    • 언제나 올바른 소프트웨어로 노드를 운영하기: 검증인들은 본인들의 서버가 언제나 온라인 상태며 프라이빗키가 탈취당하지 않게 관리를 해야합니다.
    • 활발하게 거버넌스에 참가하기: 검증인들은 모든 프로포절에 투표를 해야 합니다.

    추가적으로 검증인들은 코스모스 커뮤니티에서 활동을 해야합니다. 검증인들은 생태계의 현재 상황에 대해 언제나 인지하며 혹시 있을 변화에 유연하게 대처할 수 있어야 합니다.

    # '거버넌스에 참여'한다는 것은 무슨 뜻인가요?

    코스모스 허브의 검증인들과 위임인들은 블록 가스 제한 같은 운영적 파라미터(operational parameters) 변경을 요청하거나, 소프트웨어 업그레이드를 조율하거나, 코스모스 허브에 대한 헌법을 제안할 수 있습니다.

    검증인들은 거버넌스 시스템에서 특별한 역할을 합니다. 검증인들은 코스모스 허브의 기둥으로써 모든 프로포절에 투표를 해야합니다. 이는 투표에 참가하지 않는 위임인들이 검증인들의 투표를 따르기 때문에 특히 중요합니다. 프로포절에 투표를 하지 않는 검증인에게는 슬래싱 페널티가 부여됩니다.

    # 스테이킹은 어떤 의미를 가지나요?

    아톰을 스테이킹하는 것은 검증 활동에 대한 보증금이라고 생각하시면 됩니다. 만약 특정 검증인 또는 위임인이 본인의 아톰의 전체(또는 일부)를 언본딩 하기 위해서는 언본딩 트랜잭션을 발생해야 합니다. 이후, 해당 아톰은 3주 간의 언본딩 기간을 두며 검증인들의 악의적인 행동에 대해 함께 책임을 지게 됩니다.

    검증인과 해당 검증인에 위임을 한 위임인들은 블록 생성에 대한 보상, 수수료 보상, 그리고 거버넌스에 참여할 권한을 부여받습니다. 만약 특정 검증인이 악의적인 행동을 한다면 해당 검증인의 검증 권한에 있는 아톰은 슬래싱 페널티를 받을 수 있습니다. 그렇기 때문에, 위임인들은 검증인이 안정적이고 안전성을 보장할 수 있는 여부를 확인할 필요가 있습니다.

    # 검증인은 위임인들의 위임된 아톰을 탈취할 수 있나요?

    검증인에게 위임을 하는 위임인은 '스테이킹 파워(staking power)'를 위임하는 것입니다. 검증인의 스테이킹 파워가 많을수록 해당 검증인은 합의 절차와 거버넌스 절차에서 가지는 힘이 커집니다. 하지만 검증인은 위임인의 아톰의 소유권을 가지지는 앖습니다. 코스모스 허브의 설계는 검증인이 위임인들의 아톰을 탈취할 수 없게 설계되었습니다.

    검증인들은 위임인들의 자산을 직접적으로 탈취할 수 없지만, 검증인들의 악의적인 행동으로 발생하는 페널티에 대한 슬래싱은 검증인과 위임인들에게 동일하게 적용됩니다.

    # 검증인들은 얼마나 자주 블록 생성 제안을 할 수 있는건가요? 확률은 스테이킹된 아톰에 비례해서 올라가나요?

    블록체인의 다음 블록을 제안하는 검증인은 '제안자(proposer)'라고 불립니다. 각 제안자는 결정론적이게 선택되며, 제안자로 선택될 확률은 총 스테이킹 물량(셀프 본딩 스테이크 + 위임받은 스테이크)에 비례합니다. 예를들어, 모든 검증인들의 시스템상의 모든 스테이킹 수량이 100 아톰이고, 특정 검증인의 스테이킹 수량이 10아톰일 경우, 해당 검증인이 제안자로 선택될 확률은 10% 입니다.

    # 코스모스 허브의 검증인은 코스모스 생태계 내 다른 존을 검증해야될 수도 있나요?

    네, 그렇습니다. 초기에는 코스모스 허브의 검증인은 최초 이더민트 존을 검증해야합니다. 거버넌스에 의하여 결정된 경우, 코스모스 허브의 검증인은 코스모스 생태계 내의 다른 존 또한 검증해야 합니다. 검증인들은 이더민트 존과 동일하게 다른 존을 검증하는 것에 대한 블록 생성 보상과 트랜잭션 수수료를 보상으로 받을 수 있습니다.

    # 인센티브

    # 스테이킹을 할 인센티브는 무엇이 있나요?

    특정 검증인의 스테이킹 풀의 참여자는 다수의 형태로 수익을 받을 수 있습니다:

    • 블록 생성 보상: 검증인들이 운영하는 특정 블록체인 애플리케이션의 고유 스테이킹 토큰(예, 코스모스 허브의 아톰)은 블록 생성을 통한 인플레이션이 있습니다. 인플레이션은 아톰 부유자들이 스테이킹을 할 인센티브를 부여하기 위한 목적이 있으며, 스테이킹을 하지 않는 아톰의 가치는 시간이 지날수록 희석됩니다.
    • 블록 리워드:: 이더민트 존의 경우, 블록 생성 보상은 포톤(photon) 토큰으로 지급됩니다. 포톤은 초기에 이더리움에서 '하드 스푼(hard spoon)'을 통해 분배되며 이더리움 수량의 1:1 비율로 지급될 예정입니다(거버넌스에 따라 해당 사항은 변경될 수 있습니다).
    • 트랜잭션 수수료: 코스모스 허브는 트랜잭션 수수료로 지불이 가능한 토큰들의 화이트리스트를 관리합니다.

    위에 나열된 보상과 수수료로 발생하는 수익은 각 검증인의 총 스테이킹 물량에 비례하여 지급되며, 각 검증인 풀에 위임한 위임인들은 이 수익을 분배받습니다. 보상 수익은 각 검증인의 커미션을 차감한 후 지급된다는 점을 참고하시기 바랍니다.

    # 검증인을 운영할 인센티브는 무엇이 있나요?

    검증인은 커미션을 통해서 위임인들 보다 많은 보상을 받을 수 있습니다.

    또한, 검증인들은 거버넌스 절차에서 더 큰 권한을 보유합니다. 예를 들어, 거버넌스 투표를 하지 않는 위임인은 본인이 스테이킹 한 검증인들의 표를 따르게 됩니다. 이런 이유로 검증인들은 생태계 내에서 중대한 책임감을 지게 됩니다.

    # 검증인 커미션은 무엇인가요?

    검증인 풀에게 지급되는 수익은 검증인과 위임인들 사이에서 나눠어집니다. 각 검증인은 위임인들에게 지급하는 수익에서 일정의 수수료를 '커미션'의 형태로 차감할 수 있습니다. 커미션은 퍼센트 값으로 설정됩니다. 각 검증인은 본인 정책에 따라 최초 커미션을 설정할 수 있으며, 일일 최대 변경값 또한 정할 수 있습니다. 코스모스 허브는 해당 검증인이 설정한 파라미터를 따릅니다. 이런 값은 검증인이 초기에 검증인 참여 의사를 밝힐때 설정할 수만 있으며, 검증인으로 선택된 이후 변경될 수 없습니다.

    # 블록 생성 보상은 어떻게 나누어지나요?

    블록 생성 보상은 검증인의 총 위임 물량에 비례하여 분배됩니다. 코스모스 허브는 블록을 생성한 검증인만 보상을 받지만 확률적으로 특정 기간 안에서 검증인들의 전체적인 블록 보상률은 스테이킹 수량에 비례하게 설계되었습니다.

    10명의 검증인이 동일한 스테이킹 물량과 동일한 1%의 커미션을 가진 경우를 예시롤 들겠습니다. 만약 블록 생성에 대한 보상이 1,000 아톰이며 검증인들은 각자 20%의 스테이킹 물량을 자체 위임(셀프본딩) 했다고 보겠습니다. 1,000개의 블록생성 보상은 제안자에게 바로 지급되지 않으며, 검증인들 사이에서 스테이킹 수량에 비례하여 분배됩니다. 즉, 10명의 검증인들은 각자 100 아톰의 보상을 받게되는 것입니다. 이후 이 100 아톰은 다음과 같이 위임인들과 검증인들 사이에서 분배됩니다:

    • 커미션: 100*80%*1% = 0.8아톰
    • 밸리데이터가 가지는 보상: 100\*20% + 커미션 = 20.8 아톰
    • 모든 위임인들이 나누는 보상: 100\*80% - 커시면 = 79.2 아톰

    이후 각 위임인은 79.2 아톰 중에서 각자 위임한 물량에 비례하는 보상을 수령할 수 있습니다. 포톤(photon) 또한 이와 동일한 메커니즘을 통해 분배됩니다.

    # 수수료는 어떻게 나누어지나요?

    수수료는 위와 비슷하게 분배되지만, 제안자가 최소 프리커밋(precommit) 보다 많은 프리커밋을 받을 경우 수수료에 대한 보너스를 지급 받습니다.

    블록 제안자로 선택된 검증인은 다른 검증인 2/3 이상의 서명을 통해 프리커밋을 받아야 블록을 생성할 수 있습니다. 추가적으로, 제안자는 특정 블록에서 검증인 2/3 이상의 서명을 받는 것에 대한 인센티브가 존재합니다. 보너스는 선형적으로 증가합니다: 2/3의 프리커밋을 받은 경우 1% 보너스로 시작하여 100% 프리커밋을 받은 경우 5% 보너스로 증가합니다. 하지만 제안자는 프리커밋을 과도하게 기다릴 경우 블록 제안 시간을 초과하여 제안자 순서가 다른 검증인으로 넘어갈 수 있다는 점을 유의해야 합니다. 이런 이유로 검증인들은 시간을 초과하지 않되 최대한 많은 프리커밋을 받을 수 있는 기간의 균형을 찾아야 합니다. 이 메커니즘은 검증인이 빈 블록을 생성하는 것을 방지하고 검증인 간 네트워킹 향상하며 검증인 검열을 방지하기 위해 도입되었습니다.

    이 개념에 대한 예시를 들겠습니다. 10명의 동일한 스테이킹 물량을 가진 검증인들이 각자 1% 커미션과 20% 자체 본딩을 하고 있는 상황을 가정합니다. 새로운 총 1025.51020408 아톰의 보상이 있는 새로운 블록이 생성됩니다.

    우선 2% 수수료가 삭감되고 예비 풀(reserve pool)로 이동합니다. 이 예비 풀은 거버넌스를 통해 업그레이드와 버그 바운티를 지급하는데 이용됩니다.

    • 2% \* 1025.51020408 = 20.51020408 아톰이 예비 풀로 이동합니다.

    이제 1005 아톰이 남아있습니다. 만약 블록 제안자가 해당 블록에 100% 프리커밋 서명을 포함했다면 최대 보너스인 5%를 지급받습니다.

    각 검증인들에 대한 보상인 R을 찾기 위해서는 다음의 공식을 적용합니다:

    9*R + R R*5% = 1005 ⇔ R = 1005/10.05 = 100

    • 제안자 검증인:

      • 풀(pool)이 R + R * 5%를 얻음: 105 아톰
      • 커미션: 105 * 80% * 1% = 0.84 아톰
      • 검증인 보상: 105 * 20% + 커미션 = 21.84 아톰
      • 위임인 보상: 105 * 80% - 커미션 = 83.16 아톰 (각 위임인은 본인의 위임 수량에 비례하는 보상을 받음)
    • 제안을 하지 않은 검증인:

      • 풀이 R 아톰을 얻음: 100 아톰
      • 커미션: 100 * 80% * 1% = 0.8 아톰
      • 검증인 보상: 105 * 20% + 커미션 = 20.8 아톰
      • 위임인 보상: 100 * 80% - 커미션 = 79.2 아톰 (각 위임인은 본인의 위임 수량에 비례하는 보상을 받음)

    # 슬래싱 페널티를 발생하는 경우는 무엇이 있나요?

    특정 검증인이 악의적으로 행동할 경우, 검증인에게 본딩된 아톰(위임인들의 아톰 포함)은 슬래싱이 됩니다. 슬래싱 페널티는 악의적인 행동에 비례한 가중치가 적용됩니다. 검증인과 위임인들의 스테이크가 슬래싱 되는 경우는 3개가 있습니다:

    • 이중 서명(더블 사이닝): 누군가 체인A에서 특정 검증인이 동일한 높이의 두개의 블록을 체인A와 체인B에서 서명한 경우 (체인A 와 체인B 가 동일한 ancestor에서 유례한 경우) 해당 검증인은 체인A에서 슬래싱될 수 있습니다.
    • 오프라인(unavailability): 특정 검증인의 서명이 X 블록동안 포함되지 않았을 경우, 해당 검증인은 X 에 비례한 소량의 아톰이 슬래싱됩니다. 만약 X가 사전에 설정된 Y 한도보다 높을 경우, 해당 검증인은 언본딩 됩니다.
    • 미투표(non-voting): 특정 검증인이 거버넌스 프로포절에 투표를 하지 않는 경우 소량의 스테이크가 슬래싱될 수 있습니다.

    검증인의 행동의 의도적으로 악의적이지 않아도(예시: 노드 에러, 인터넷 연결 문제, DDoS, 프라이빗 탈취) 검증인은 슬래싱될 수 있다는 점을 참고하시기 바랍니다.

    # 검증인은 꼭 자체 위임(셀프본딩)을 해야하나요?

    검증인은 자체 위임을 하지 않아도 검증인을 할 수 있습니다. 검증인의 총 스테이킹 수량은 셀프본딩 수량과 위임 수량의 합입니다. 셀프본딩이 낮은 검증인은 많은 위임인들의 스테이크를 통해 총 스테이킹 수량을 늘릴수 있습니다. 이런 이유로 검증인의 평판은 중요한 요소로 적용합니다.

    검증인이 셀프본딩 할 의무는 없을 수 있지만, 위임인들의 대다수는 검증인들이 셀프본딩을 하는 것을 선호할 수 있습니다. 본인에 행동에 대한 책임감을 보여줄 수 있기 때문입니다.

    검증인들은 본인의 책임감을 표기하기 위해서 자체적인 최소 셀프본딩 수량을 설정할 수 있습니다. 만약 해당 검증인의 셀프본딩률이 해당 수치보다 낮아질 경우, 해당 검증인들과 모든 위임인들의 아톰은 언본딩 됩니다.

    # 상위 검증인에게 스테이킹이 몰리는 현상은 어떻게 막을 수 있나요?

    현재로써는 커뮤니티가 자체적으로 이런 위험성을 인지하고 위임하는 것을 예상하고 있습니다. 비트코인의 경우, 특정 채굴풀이 과도한 해시파워를 확보한 경우 커뮤니티는 자체적으로 해당 채굴풀에 대한 위임을 멈춥니다. 코스모스는 초기에 이와 비슷한 형태로 채굴풀의 중앙화를 조절할 수 있을 것으로 기대하고 있습니다. 추후에는 이런 현상을 막을 수 있는 장치들이 소개될 예정입니다:

    • 무-페널티 재위임(penalty-free re-delegation): 특정 검증인에 과도하게 묶여있는 현상을 줄이기 위해서 한 검증인에서 다른 검증인으로 위임을 쉽게 바꿀 수 있는 방식.
    • 해킹 바운티: 커뮤니티가 검증인을 해킹하는 것을 장려하는 정책. 바운티 보상은 검증인이 스테이킹 하고 있는 물량의 크기에 비례.
    • UI 경고: 코스모스 보이저(Cosmos Voyager) 지갑을 이용하는 유저는 이미 과도한 스테이킹 물량을 보유하고 있는 검증인에게 위임을 하려고 할때 경고를 받는다.

    # 기술적 요건

    # 필요한 하드웨어 장비는 무엇인가요?

    검증인은 전력, 네트워킹, 방화벽, 하드웨어 보안 모듈과 서버 백업이 있는 하나 이상의 데이터 센터를 제공할 것을 추천합니다.

    네트워크 초기의 하드웨어 요건은 그리 고성능이 아닐 것으로 예상하고 있지만, 네트워크 사용량이 증가하면서 하드웨어 스펙 또한 증가할 것을 예상하고 있습니다. 테스트넷에 참가해서 하드웨어 세팅을 실험해보는 것을 추천드립니다.

    # 필요한 소프트웨어는 무엇인가요?

    코스모스 허브 노드 외에도 모니터링, 알림, 관리 솔루션을 준비해야할 것으로 예상하고 있습니다.

    # 필요한 대역폭은 어느 정도 인가요?

    코스모스 네트워크는 이더리움과 비트코인에 비교해서 많은 대역폭과 쓰루풋(throughput)을 필요로 합니다.

    데이터 센터 노드는 신뢰할 수 있는 클라우드 풀노드와 사회적으로 신뢰할 수 있는 다른 검증인들에게만 연결하는 것을 추천드립니다. 이는 데이터 센터의 노드과 DDoS 공격의 피해를 입는 것을 방지할 수 있습니다.

    네트워크가 성장하면서 매일 몇 기가바이트 이상의 대역폭을 사용하는 것은 현실적인 것으로 판단됩니다.

    # 검증인을 하는 것은 운영 측면에서 어떤가요?

    성공적인 검증인은 다수의 실력있는 운영 인력이 확보되어야 할 것으로 예측됩니다. 코스모스 검증인 운영은 비트코인 채굴에 비해서 높은 난이도에 속합니다.

    # 키 관리는 어떻게 하는 것이 바람직한가요?

    검증인은 ed25519 키를 지원하는 하드웨어 보안 모듈(HSM, Hardware Security Module)을 이용하는 것을 추천드립니다. 다음은 추천이 가능한 HSM들의 일부입니다:

    • YubiHSM 2
    • Ledger Nano S
    • Ledger BOLOS SGX enclave
    • Thales nShield support

    텐더민트 팀은 특정 회사의 솔루션을 지목하여 추천하지 않습니다. 검증인 커뮤니티는 자체적으로 HSM을 이용한 보안 솔루션을 연구하여 향상시킬 것을 권장합니다.

    # 운영 측면에서 어떤 요소들이 있나요?

    효율적으로 검증인을 운영하는 것은 예측 할 수 없는 언본딩과 슬래싱을 막는 것입니다. 이는 공격에 대한 대응, 전력 단절, 네트워크 단절, 보안 등에 대한 모든 위험 요소를 차단하고 준비하는 것입니다.

    # 보수 측면에서 어떤 것들이 요구되나요?

    검증인은 정기적으로 소프트웨어 업그레이드와 버그 패치를 적용해야합니다. 네트워크 초기에는 다수의 문제들이 발생할 수 있을 것으로 예상되기 때문에 검증인들은 유심히 네트워크 상태를 모니터링 해야 합니다.

    # 검증인은 어떻게 DDoS 공격에 방어를 할 수 있을까요?

    DDoS 공격은 공격자가 특정 IP의 서버에게 인터넷 트래픽을 과도하게 발생시켜 인터넷에 연결되는 것을 막는 공격입니다.

    공격자는 네트워크를 스캔하여 특정 IP 주소를 지목하고 엄청난 트래픽을 발생시켜 공격을 하여 해당 노드의 정상적인 운영을 막습니다.

    이런 공격을 막을 수 있는 하나의 방법은 노드에 센트리노드 아키텍쳐를 도입하여 방어율을 높이는 것입니다.

    검증인 노드는 본인이 직접 운영하는 풀노드 또는 사회적으로 신뢰가 가능한 다른 검증인이 운영하는 풀노드에만 연결해야 합니다. 검증인 노드의 대다수는 데이터 센터에서 운영이 되며, 대다수의 데이터 센터는 다른 클라우드 서비스 제공자와 직접적인 연결을 제공합니다. 검증이는 이런 직접 연결을 통해서 클라우드에 있는 센트리노드를 연결할 수 있습니다. 이런 형태의 아키텍처는 DDoS 공격의 부담을 검증 노드에서 센트리 노드로 우회합니다. 공격 상황에서 새로운 센트리노드를 생성하는 것은 다소 쉽기 때문에 공격의 위험성을 줄일 수 있습니다.

    센트리노드는 새로 생성되거나 IP 주소를 변경할 수 있습니다. 센트리노드와 검증노드 간의 연결은 프라이빗 IP를 통해서 이루어지기 떄문에 공격자는 직접적으로 공격을 할 수 없습니다. 이는 검증 노드가 언제나 블록 제안과 블록 투표에 참여할 수 있게 합니다.

    올바른 운영과 아키텍쳐를 이용하는 검증이는 이런 공격 가능성을 막을 수 있을 것으로 기대됩니다.

    센트리노드에 대한 추가적인 정보는 여기 (opens new window)에서 확인 가능합니다.

    - + diff --git a/main/ko/validators/validator-setup.html b/main/ko/validators/validator-setup.html index 15d9032e89c..0851be23dde 100644 --- a/main/ko/validators/validator-setup.html +++ b/main/ko/validators/validator-setup.html @@ -8,7 +8,7 @@ - + @@ -98,6 +98,6 @@ [Install] WantedBy=multi-user.target
    - + diff --git a/main/launch/blog-1-en.html b/main/launch/blog-1-en.html index 1740f2f8d81..34fdee7df6c 100644 --- a/main/launch/blog-1-en.html +++ b/main/launch/blog-1-en.html @@ -8,7 +8,7 @@ - + @@ -128,6 +128,6 @@ email that asks for you to share any kind of account credentials or your 12 words with us, and we will always use our official blog, Twitter and GitHub accounts to communicate important news directly to the Cosmos community.

    - + diff --git a/main/launch/blog-2-en.html b/main/launch/blog-2-en.html index 30d85cec34a..acc4e384902 100644 --- a/main/launch/blog-2-en.html +++ b/main/launch/blog-2-en.html @@ -8,13 +8,13 @@ - +

    # The 3 Phases of the Cosmos Hub Mainnet

    # Post-Mainnet Development Roadmap & Expectations for Users

    The launch of the Cosmos Hub mainnet is expected to happen in phases. Here we outline what to expect in each phase.

    # 🚨Phase I: Network Gains Stability 🚨

    In the first phase, the network is likely to be unstable; it may experience halts or other forms of failure requiring intervention and coordination among Cosmos Hub validators and full node operators to deploy a fix. This type of failure is not unexpected while the network gains stability.

    # State Reversions and Mainnet launch

    One of the core ideologies around blockchains is immutability. This is the idea that we don't go back and edit past state transitions. While this notion of immutability is implemented directly via consensus protocols in the software, it is ultimately upheld by social contract among participants.

    That said, the technology underlying the Cosmos Hub was intentionally developed to enable low-friction forks and rollbacks. We’ve seen the community practice these techniques numerous times on the test networks. It’s likely they will need to be used on a mainnet as well. Ultimately, they are a countervailing force to the risk of cartel takeover.

    Reverting state is often seen as highly grievous, as it compromises the network’s economic finality. Hence it should only be used in extreme conditions, as witnessed in the case of Ethereum with the DAO Hard Fork. That said, in the early days of the Cosmos Hub network, transfers will not be active, and hence the severity of state reversions will be reduced, as state transitions will be much less “economically final”. If necessary in case of bugs, the state can be exported from a past height and the network restarted, as practiced on the testnets.

    Once governance chooses to enable transfers, the importance of economic finality must be respected by the network.

    To summarize, if there are errors or vulnerabilities in the Cosmos Hub in the days before transfers are enabled, users should expect arbitrary state rollbacks even to genesis.

    Once transfers are enabled, state rollbacks will be much more difficult to justify.

    What this means for developers: The Cosmos mainnet launch is the first phase in which fundraiser participants will be working together to operate the software. As a decentralized application developer, you are likely a user of either the Cosmos-SDK framework (opens new window) or Tendermint Core (opens new window). The progress of your Cosmos-SDK or Tendermint-based application should be independent of the Cosmos Hub roadmap. However, if your project requires the use of Inter-Blockchain Communication, you must wait until Phase III, or participate in the IBC testnets that will begin shortly.

    What this means for users: In this phase, we strongly recommend that you do not arrange to trade Atoms (eg. by legal contract as they will not be transferable yet) as there is the risk of state being reverted.

    You can, however, safely delegate Atoms to validators in this phase by following the CLI guideline and video tutorial linked below. Of course, in the event of a state reversion, any earned fees and inflation may be lost. Note that only gaiad should be used for making transactions. Voyager, the GUI for interacting with the Cosmos Hub, is currently in alpha and undergoing development. A separate announcement will be made once Voyager is safer for use.

    CLI Guide 🔗

    Watch CLI delegation tutorial: Cosmos YouTube (opens new window)

    # Phase II: Transfers Enabled

    Summary: Once mainnet is deemed sufficiently stable, bonded Atom holders will vote to decide whether or not Atom transfers should be enabled. This procedure will happen through on-chain governance.

    The best way to check on the status of governance proposals is to view them through Cosmos explorers. A list of explorers can be found on the launch page: cosmos.network/launch (opens new window).

    What this means for users: If the proposal is accepted and transfers are enabled, then it becomes possible to transfer Atoms.

    # Phase III: IBC Enabled

    Summary: In Phase III, the IBC protocol is released and Atom holders vote via on-chain governance on whether or not to enable it as part of the core module library within the Cosmos-SDK.

    What this means for developers: Application-specific blockchains that are built using the Cosmos-SDK or Tendermint BFT will be able to connect to the Hub and interoperate/compose with all of the other blockchains that are connected to it.

    What this means for users: You will be able to transfer various tokens and NFTs directly from one IBC-connected chain to another IBC-connected chain without going through a centralized third-party platform.

    # Housekeeping for Validators: Submitting a gentx for mainnet

    1. You should have generated and secured the validator consensus key you are going to be validating under during mainnet.
    2. Be prepared to sign a transaction under an address in the genesis file either from the fundraiser or Game of Stakes depending on where you received your ATOM allocation.
    3. We will begin collecting Gentxs for mainnet once the recommended genesis allocations are published.

    # In Closing

    The Cosmos mission is to build bridges to connect all blockchains—to build an Internet of Blockchains. Clearly, we have a long road of development ahead of us. And after mainnet, the real work to a world of deeply integrated token economies is still ahead of us. But as John Fitzgerald Kennedy once said in the face of adversity:

    “We choose to go to the moon...not because they are easy, but because they are hard….”

    To the Moon 🚀

    - + diff --git a/main/launch/index.html b/main/launch/index.html index cb52a3cfe90..47058ed5c34 100644 --- a/main/launch/index.html +++ b/main/launch/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/migration/cosmoshub-2/cosmoshub-2.html b/main/migration/cosmoshub-2/cosmoshub-2.html index acb6d97fd9f..9a9ce3e26bf 100644 --- a/main/migration/cosmoshub-2/cosmoshub-2.html +++ b/main/migration/cosmoshub-2/cosmoshub-2.html @@ -8,7 +8,7 @@ - + @@ -117,7 +117,7 @@ found in the riot validator room (opens new window).
  • We expect that developers with iOS or Android based apps may have to notify their users of downtime and ship an upgrade for cosmoshub-3 compatibility unless they have some kind of switch they can throw for the new tx formats. Server side applications should experience briefer service interruptions and -be able to just spin up new nodes and migrate to the new apis.
  • - +be able to just spin up new nodes and migrate to the new apis.
    + diff --git a/main/migration/cosmoshub-3/cosmoshub-3.html b/main/migration/cosmoshub-3/cosmoshub-3.html index 022aa10f793..0ad6b8b4603 100644 --- a/main/migration/cosmoshub-3/cosmoshub-3.html +++ b/main/migration/cosmoshub-3/cosmoshub-3.html @@ -8,7 +8,7 @@ - + @@ -186,7 +186,7 @@ snapshot-interval = 0 # snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all). snapshot-keep-recent = 2 -
    - +
    + diff --git a/main/migration/cosmoshub-3/cosmoshub-3[ES_es].html b/main/migration/cosmoshub-3/cosmoshub-3[ES_es].html index 1396e3f9ee8..e794c691d9e 100644 --- a/main/migration/cosmoshub-3/cosmoshub-3[ES_es].html +++ b/main/migration/cosmoshub-3/cosmoshub-3[ES_es].html @@ -8,7 +8,7 @@ - + @@ -102,7 +102,7 @@ # snapshot-keep-recent especifica el número de instantáneas recientes a conservar y servir # (0 para conservar todas). snapshot-keep-recent = 2 -
    - +
    + diff --git a/main/migration/cosmoshub-3/cosmoshub-3[KR_kr].html b/main/migration/cosmoshub-3/cosmoshub-3[KR_kr].html index 34c3ede2355..a12f49d4636 100644 --- a/main/migration/cosmoshub-3/cosmoshub-3[KR_kr].html +++ b/main/migration/cosmoshub-3/cosmoshub-3[KR_kr].html @@ -8,7 +8,7 @@ - + @@ -99,7 +99,7 @@ snapshot-interval = 0 # snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all). snapshot-keep-recent = 2 -
    - +
    + diff --git a/main/migration/cosmoshub-4-delta-upgrade.html b/main/migration/cosmoshub-4-delta-upgrade.html index 156c65b2908..25d6ea23183 100644 --- a/main/migration/cosmoshub-4-delta-upgrade.html +++ b/main/migration/cosmoshub-4-delta-upgrade.html @@ -8,7 +8,7 @@ - + @@ -16,6 +16,6 @@ Copy cp -r ~/.gaia ./gaia_backup

    Note: use the home directory relevant to your node's Gaia configuration (if different from ~/.gaia).

    1. Replace the Gaia v4.2.1 binary with the Gaia v5.0.0 binary
    2. Start the Gaia v5.0.0 binary using the following command (also applying any additional flags and parameters to the binary needed by the operator, e.g., --home $HOME):

    gaiad start --x-crisis-skip-assert-invariants

    IMPORTANT: The flag --x-crisis-skip-assert-invariants is optional and can be used to reduce memory and processing requirements while the in-place ugprade takes place before resuming connecting to the network.

    1. Wait until 2/3+ of voting power has upgraded for the network to start producing blocks
    2. You can use the following commands to check peering status and state:

    curl -s http://127.0.0.1:26657/net_info (opens new window) | grep n_peers

    curl -s localhost:26657/consensus_state | jq -r .result.round_state.height_vote_set[].prevotes_bit_array

    # Upgrade duration

    The upgrade may take several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v4.2.1 binary using the following command:

    gaiad start --unsafe-skip-upgrade 6910000

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #validators-verified channel of the Cosmos Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand - requests to join the #validators-verified channel can be sent to the #validators-public channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # FAQ

    1. If I am a new operator and I want to join the network, what should I do?

    In order to join the cosmoshub-4 network after the Delta upgrade, you have two options:

    • Use a post-delta upgrade state snapshot, such as one provided by quicksync (opens new window) and start a node using the gaia v5.0.0 binary.
    • If not using a snapshot, or using a pre-delta upgrade snapshot, sync with the network using the gaia v4.2.1 binary until the upgrade height and panic, then switch the gaia binary for v5.0.0.
    1. Does the post-Delta upgrade introduce any changes of note?

    The core Cosmos SDK and Tendermint dependencies have only their minor versions bumped, so there are no significant changes of note to the API.

    The only integration points that would be affected would be anything that parses all Cosmos SDK messages. The additional messages are here (opens new window).

    1. Is Amino still supported in the post-Delta upgrade?

    Amino is still supported. Amino support is still present in the master branch of the Cosmos SDK. No upgrade to remove Amino is currently scheduled.

    1. Has the Gravity DEX module undergone a professional 3rd-party audit?

    Yes, the audit was led by Least Authority, and have released the audit report (opens new window).

    1. We have some self-healing node infrastructure in place. If the node starts failing when the chain halts, and we automatically spin up another 4.2.1 node with state from within the past couple of hours, is there a risk of it double signing transactions as it "catches up" to the point where block processing stops?

    When the network is halted, there is no risk of double-signing since no blocks are being produced. You only need to ensure that the self-healing infrastructure does not launch multiple validators when the network resumes block production. As well, if any new node is spun up while the chain is halted, live peers will continue to share historical blocks without producing new blocks.

    - + diff --git a/main/migration/cosmoshub-4-v10-upgrade.html b/main/migration/cosmoshub-4-v10-upgrade.html index 1f7e34a66a5..11f4583b4f8 100644 --- a/main/migration/cosmoshub-4-v10-upgrade.html +++ b/main/migration/cosmoshub-4-v10-upgrade.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ ERR UPGRADE "v10" NEEDED at height: 15816200: upgrade to v10 and applying upgrade "v10" at height:15816200

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/v10/bin and download the Gaia v10.0.1 binary to this folder according to links in the --info field of the upgrade proposal. This may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.
    • Users should run their node on v9.1.1 if they use the cosmovisor v1.3.0 with auto-download enabled for upgrade process.

    # Upgrade duration

    The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v9.1.1 binary using the following command:

    gaiad start --unsafe-skip-upgrade 15816200

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #cosmos-hub-validators-verified channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #cosmos-hub-validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    Join Cosmos Hub Mainnet (opens new window)

    - + diff --git a/main/migration/cosmoshub-4-v11-upgrade.html b/main/migration/cosmoshub-4-v11-upgrade.html index 816b6ed9530..08f610ca541 100644 --- a/main/migration/cosmoshub-4-v11-upgrade.html +++ b/main/migration/cosmoshub-4-v11-upgrade.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ ERR UPGRADE "v11" NEEDED at height: 16596000: upgrade to v11 and applying upgrade "v11" at height:16596000

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/v11/bin and download the Gaia v11.0.0 binary to this folder according to links in the --info field of the upgrade proposal. This may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.
    • Users should run their node on v10.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.

    # Upgrade duration

    The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v10.0.2 binary using the following command:

    gaiad start --unsafe-skip-upgrade 16596000

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #cosmos-hub-validators-verified channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #cosmos-hub-validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    Join Cosmos Hub Mainnet (opens new window)

    - + diff --git a/main/migration/cosmoshub-4-v12-upgrade.html b/main/migration/cosmoshub-4-v12-upgrade.html index 97ca47da95e..574929d12c4 100644 --- a/main/migration/cosmoshub-4-v12-upgrade.html +++ b/main/migration/cosmoshub-4-v12-upgrade.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ ERR UPGRADE "v12" NEEDED at height: 16985500: upgrade to v12 and applying upgrade "v12" at height:16985500

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/v12/bin and download the Gaia v12.0.0 binary to this folder according to links in the --info field of the upgrade proposal. This may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.
    • Users should run their node on v11.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.

    # Upgrade duration

    The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v11.0.0 binary using the following command:

    gaiad start --unsafe-skip-upgrade 16985500

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #cosmos-hub-validators-verified channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #cosmos-hub-validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    Join Cosmos Hub Mainnet (opens new window)

    - + diff --git a/main/migration/cosmoshub-4-v13-upgrade.html b/main/migration/cosmoshub-4-v13-upgrade.html index b6a1f67c1b2..e9193885f8d 100644 --- a/main/migration/cosmoshub-4-v13-upgrade.html +++ b/main/migration/cosmoshub-4-v13-upgrade.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ ERR UPGRADE "v13" NEEDED at height: 17380000: upgrade to v13 and applying upgrade "v13" at height:17380000

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/v13/bin and download the Gaia v13.0.0 binary to this folder according to links in the --info field of the upgrade proposal. This may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.
    • Users should run their node on v12.0.x if they use the cosmovisor v1.5.0 with auto-download enabled for upgrade process.

    # Upgrade duration

    The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v12.0.0 binary using the following command:

    gaiad start --unsafe-skip-upgrade 17380000

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #cosmos-hub-validators-verified channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #cosmos-hub-validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    Join Cosmos Hub Mainnet (opens new window)

    - + diff --git a/main/migration/cosmoshub-4-v7-Theta-upgrade.html b/main/migration/cosmoshub-4-v7-Theta-upgrade.html index 079a2717ae6..75ab0fdb46f 100644 --- a/main/migration/cosmoshub-4-v7-Theta-upgrade.html +++ b/main/migration/cosmoshub-4-v7-Theta-upgrade.html @@ -8,7 +8,7 @@ - + @@ -89,6 +89,6 @@ ERR UPGRADE "v7-Theta" NEEDED at height: 10085397: upgrade to v7-Theta and applying upgrade "v7-Theta" at height:10085397

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/v7-Theta/bin and download Gaia v7.0.0 binary to this folder according to links in the --info field of the upgrade proposal 65. This may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.
    • Users should use run node on v6.0.4 if they use the cosmovisor v1.1.0 with auto-download enabled for upgrade process.

    # Upgrade duration

    The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v6.0.x binary using the following command:

    gaiad start --unsafe-skip-upgrade 10085397

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #validators-verified channel of the Cosmos Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    cosmos/v7-Theta-test (opens new window) join Cosmos Hub Mainnet (opens new window)

    - + diff --git a/main/migration/cosmoshub-4-v8-Rho-upgrade.html b/main/migration/cosmoshub-4-v8-Rho-upgrade.html index 9a477d8d6ea..e6ead580cc8 100644 --- a/main/migration/cosmoshub-4-v8-Rho-upgrade.html +++ b/main/migration/cosmoshub-4-v8-Rho-upgrade.html @@ -8,7 +8,7 @@ - + @@ -88,6 +88,6 @@ ERR UPGRADE "v8-Rho" NEEDED at height: 14099412: upgrade to v7-Theta and applying upgrade "v8-Rho" at height:14099412

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/v8-rho/bin and download the Gaia v8.0.0 binary to this folder according to links in the --info field of the upgrade proposal 97. This may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.
    • Users should use run node on v7.1.1 if they use the cosmovisor v1.1.0 with auto-download enabled for upgrade process.

    # Upgrade duration

    The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v7.1.1 binary using the following command:

    gaiad start --unsafe-skip-upgrade 14099412

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #validators-verified channel of the Cosmos Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    join Cosmos Hub Mainnet (opens new window)

    - + diff --git a/main/migration/cosmoshub-4-v9-Lambda-upgrade.html b/main/migration/cosmoshub-4-v9-Lambda-upgrade.html index 7169332edf8..93753201da4 100644 --- a/main/migration/cosmoshub-4-v9-Lambda-upgrade.html +++ b/main/migration/cosmoshub-4-v9-Lambda-upgrade.html @@ -8,7 +8,7 @@ - + @@ -90,6 +90,6 @@ ERR UPGRADE "v9-Lambda" NEEDED at height: 14470501: upgrade to v9-Lambda and applying upgrade "v9-Lambda" at height:14470501

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/v9-lambda/bin and download the Gaia v9.0.0 binary to this folder according to links in the --info field of the upgrade proposal 97. This may take 7 minutes to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If users want to have the highest guarantee users should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk and users should take at your own discretion.
    • Users should use run node on v8.0.1 if they use the cosmovisor v1.3.0 with auto-download enabled for upgrade process.

    # Upgrade duration

    The upgrade may take a few minutes to several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v8.0.1 binary using the following command:

    gaiad start --unsafe-skip-upgrade 14470501

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #cosmos-hub-validators-verified channel of the Cosmos Hub Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #cosmos-hub-validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    Join Cosmos Hub Mainnet (opens new window)

    - + diff --git a/main/migration/cosmoshub-4-vega-upgrade.html b/main/migration/cosmoshub-4-vega-upgrade.html index d403ff02f41..2ee4e40672f 100644 --- a/main/migration/cosmoshub-4-vega-upgrade.html +++ b/main/migration/cosmoshub-4-vega-upgrade.html @@ -8,7 +8,7 @@ - + @@ -89,6 +89,6 @@ ERR UPGRADE "Vega" NEEDED at height: 8695000: upgrade to Vega and applying upgrade "Vega" at height:8695000

    Then the Cosmovisor will create $GAIA_HOME/cosmovisor/upgrades/Vega/bin and download Gaia v6.0.4 binary to this folder according to links in the --info field of the upgrade proposal 59. This may take 20 min to a few hours, afterwards, the chain will continue to produce blocks once validators with a total sum voting power > 2/3 complete their nodes upgrades.

    Please Note:

    Auto-download the new binary is not recommended for the following reasons:

    • In general, auto-download comes with the risk that the verification of correct download is done automatically. If you want to have the highest guarantee you should confirm the check-sum manually. We hope more node operators will use the auto-download for this release but please be aware this is a risk you should take at your own discretion.
    • For the Vega upgrade, Gaia will upgrade its dependency on Cosmos SDK v0.42 to Cosmos SDK v0.44, this will require Cosmovisor v0.1 (opens new window). Later versions of Cosmovisor do not support Cosmos SDK v0.42 or earlier if the auto-download option is enabled.
    • By using Cosmovisor v0.1 you might experience a node hanging issue (opens new window) when querying a result with a large output size. For example, gaiad q gov proposals will hang the node being queried, this issue will not appear for Cosmovisor versions newer than v0.1.

    # Upgrade duration

    The upgrade may take several hours to complete because cosmoshub-4 participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network.

    # Rollback plan

    During the network upgrade, core Cosmos teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.

    Steps to skip this upgrade proposal are simply to resume the cosmoshub-4 network with the (downgraded) v5.0.x binary using the following command:

    gaiad start --unsafe-skip-upgrade 8695000

    Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Cosmos teams.

    Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote.

    # Communications

    Operators are encouraged to join the #validators-verified channel of the Cosmos Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand. Requests to join the #validators-verified channel can be sent to the #general-support channel.

    # Risks

    As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.

    The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.

    # Reference

    cosmos/vega-test (opens new window)

    Delta upgrade instruction (opens new window)

    - + diff --git a/main/migration/index.html b/main/migration/index.html index 38304757a67..9ddf9a65cbc 100644 --- a/main/migration/index.html +++ b/main/migration/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/modules/globalfee.html b/main/modules/globalfee.html index ea192d50106..d89e580f55d 100644 --- a/main/modules/globalfee.html +++ b/main/modules/globalfee.html @@ -8,7 +8,7 @@ - + @@ -114,6 +114,6 @@ "/ibc.core.channel.v1.MsgTimeout",
    "/ibc.core.channel.v1.MsgTimeoutOnClose"
    ]

    • msgs=["/ibc.core.channel.v1.MsgRecvPacket", "/ibc.core.client.v1.MsgUpdateClient"] with paidfee="" and gas=1,100,000, fail (gas limit exceeded for bypass transactions)
    • msgs=["/ibc.core.channel.v1.MsgRecvPacket", "/ibc.core.client.v1.MsgUpdateClient"] with paidfee="200 * 1uatom" and gas=200, fail (insufficient funds)
    • msgs=["/ibc.core.channel.v1.MsgRecvPacket", "/ibc.core.client.v1.MsgUpdateClient"] with paidfee="1,100,000 * 1uatom", pass

    # References

    - + diff --git a/main/modules/index.html b/main/modules/index.html index 93542523694..bb26b794f1d 100644 --- a/main/modules/index.html +++ b/main/modules/index.html @@ -8,12 +8,12 @@ - +

    # Gaia Modules

    Here you can find an overview of the modules included on the Cosmos Hub (gaia) blockchain with relevant info and links for each one.

    # New Modules in Rho V8

    - + diff --git a/main/resources/archives.html b/main/resources/archives.html index c09c2b7ba65..add9e076ecc 100644 --- a/main/resources/archives.html +++ b/main/resources/archives.html @@ -8,11 +8,11 @@ - +

    # Cosmos Hub Archives

    With each breaking upgrade of the Cosmos Hub, the network is restarted at height 0. During this process, an export of the last state of the previous network is made to produce the genesis state of the new one.

    As a result, the blocks of the previous networks are not downloaded by new clients (as they sync from the new genesis state), and may be deleted by existing full-nodes.

    In an effort to maintain transparency, the interchain hosts archives of the previous versions of the Cosmos Hub network. These archives can be found here (opens new window).

    If you would like to search explorers for previous hub data, these are some links where you can find the information:

    # Big Dipper

    If you want to makes archives available to the community, feel free to open a PR to this file and add them.

    - + diff --git a/main/resources/genesis.html b/main/resources/genesis.html index ac5653ee826..c0fdde81cc7 100644 --- a/main/resources/genesis.html +++ b/main/resources/genesis.html @@ -8,7 +8,7 @@ - + @@ -172,6 +172,6 @@ Copy gaiad collect-gentxs

    This command will add all the gentxs stored in ~/.gaia/config/gentx to the genesis file. In order to create a genesis transaction, click here.

    - + diff --git a/main/resources/hd-wallets.html b/main/resources/hd-wallets.html index 4188ac6847c..b08fa942c27 100644 --- a/main/resources/hd-wallets.html +++ b/main/resources/hd-wallets.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ | | +-------------------+

    The process of derivating accounts from the seed is deterministic. This means that given the same path, the derived private key will always be the same.

    The funds stored in an account are controlled by the private key. This private key is generated using a one-way function from the mnemonic. If you lose the private key, you can retrieve it using the mnemonic. However, if you lose the mnemonic, you will lose access to all the derived private keys. Likewise, if someone gains access to your mnemonic, they gain access to all the associated accounts.

    Do not lose or share your 24 words with anyone. To prevent theft or loss of funds, it is best to keep multiple copies of your mnemonic stored in safe, secure places. If someone is able to gain access to your mnemonic, they will fully control the accounts associated with them.

    - + diff --git a/main/resources/index.html b/main/resources/index.html index a549a764f21..ac911b53954 100644 --- a/main/resources/index.html +++ b/main/resources/index.html @@ -8,11 +8,11 @@ - +
    - + diff --git a/main/resources/ledger.html b/main/resources/ledger.html index 26c399735cb..054bd3a1e77 100644 --- a/main/resources/ledger.html +++ b/main/resources/ledger.html @@ -8,7 +8,7 @@ - + @@ -66,6 +66,6 @@ Copy gaiad tx --help

    # The Cosmos Standard Transaction

    Transactions in Cosmos embed the Standard Transaction type (opens new window) from the Cosmos SDK. The Ledger device displays a serialized JSON representation of this object for you to review before signing the transaction. Here are the fields and what they mean:

    • chain-id: The chain to which you are broadcasting the tx, such as the gaia-13003 testnet or cosmoshub-2: mainnet.
    • account_number: The global id of the sending account assigned when the account receives funds for the first time.
    • sequence: The nonce for this account, incremented with each transaction.
    • fee: JSON object describing the transaction fee, its gas amount and coin denomination
    • memo: optional text field used in various ways to tag transactions.
    • msgs_<index>/<field>: The array of messages included in the transaction. Double click to drill down into nested fields of the JSON.

    # Support

    For further support, start by looking over the posts in our forum (opens new window)

    Feel welcome to reach out in our Telegram channel (opens new window) to ask for help.

    Here are a few relevant and helpful tutorials from the wonderful Cosmos community:

    - + diff --git a/main/resources/reproducible-builds.html b/main/resources/reproducible-builds.html index cc3fc696aea..0cadd090f84 100644 --- a/main/resources/reproducible-builds.html +++ b/main/resources/reproducible-builds.html @@ -8,7 +8,7 @@ - + @@ -42,6 +42,6 @@ 7ef98f0041f1573f0a8601abad4a14b1c163f47481c7ba1954fd81ed423a6408 gaiad-v4.2.1-windows-amd64.exe 422883ba43c96a6ea5ef9512d39321dd1356633c6a9505517b9c651788df4a7f gaiad-v4.2.1.tar.gz
    - + diff --git a/main/resources/service-providers.html b/main/resources/service-providers.html index f9b72aa7f1e..03ac945fb53 100644 --- a/main/resources/service-providers.html +++ b/main/resources/service-providers.html @@ -8,7 +8,7 @@ - + @@ -153,6 +153,6 @@ gaiad tx bank send [from_key_or_address] [to_address] [amount] [flags]

    Parameters:

    • <from_key_or_address>: Key name or address of sending account.
    • <to_address>: Address of the recipient.
    • <amount>: This parameter accepts the format <value|coinName>, such as 1000000uatom.

    Flags:

    • --chain-id: This flag allows you to specify the id of the chain. There are different ids for different testnet chains and mainnet chains.
    • --gas-prices: This flag allows you to specify the gas prices you pay for the transaction. The format is used as 0.0025uatom

    # REST API

    The REST API documents (opens new window) list all the available endpoints that you can use to interact with your full node. Learn how to enable the REST API on your full node.

    # Listen for Incoming Transactions

    The recommended way to listen for incoming transactions is to periodically query the blockchain by using the following HTTP endpoint:

    /cosmos/bank/v1beta1/balances/{address} (opens new window)

    - + diff --git a/main/roadmap/cosmos-hub-roadmap-2.0.html b/main/roadmap/cosmos-hub-roadmap-2.0.html index b1214d1e65d..b47984424b8 100644 --- a/main/roadmap/cosmos-hub-roadmap-2.0.html +++ b/main/roadmap/cosmos-hub-roadmap-2.0.html @@ -8,11 +8,11 @@ - +

    # The Cosmos Hub Roadmap

    This Cosmos Hub roadmap serves as a reference for the current planned features of upcoming releases. For past releases, please see the following document.

    The Cosmos Hub is decentralized and other teams contribute to it as well.

    The Informal Systems roadmap can be found here (opens new window). Other teams also contribute actively to the Hub, but that information lives in other repos or project boards.

    - + diff --git a/main/roadmap/index.html b/main/roadmap/index.html index 676ed6cbfee..33e972af3da 100644 --- a/main/roadmap/index.html +++ b/main/roadmap/index.html @@ -8,7 +8,7 @@ - + @@ -24,6 +24,6 @@
  • IBC Packet Forward Middleware v3.1.1
  • IBC Msg Whitelist to skip MinFee in CheckTX
  • Global Fee Module
  • # v9-Lambda Upgrade (expected Q1 2023)

    • Gaia v9.0.x
    • Cosmos SDK v0.45-ics
    • IBC 4.2
    • Interchain Security - Replicated Security
      • The Cosmos solution to shared security that uses IBC Cross Chain Validation (CCV) to relay validator set composition from a Provider Chain (Cosmos Hub) to a Consumer Chain. This validator set is in charge of producing blocks on both networks using separate nodes. Misbehavior on the Consumer Chain results in slashing Provider Chain staking tokens (ATOM).

    # Cosmos Hub Summary

    Upgrade Name Date Height Chain Identifier Tm Cosmos SDK Gaia IBC
    Mainnet Launch 13/03/19 0 cosmoshub-1 v0.31.x (opens new window) v0.33.x (opens new window) Included in Cosmos SDK n/a
    Security Hard Fork (opens new window) 21/04/19 482,100 cosmoshub-1 v0.31.x (opens new window) v0.34.x (opens new window) Included in Cosmos SDK) n/a
    Upgrade #1 21/01/20 500043 cosmoshub-2 v0.31.x (opens new window) v0.34.x (opens new window) Included in Cosmos SDK) n/a
    Upgrade #2 07/08/20 2902000 cosmoshub-3 v0.32.x (opens new window) v0.37.x (opens new window) v2.0.x (opens new window) n/a
    Stargate 18/02/21 5200791 cosmoshub-4 v0.34.x (opens new window) v0.40.x (opens new window) v4.0.x (opens new window) Included in Cosmos SDK
    Security Hard Fork ? ? cosmoshub-4 v0.34.x (opens new window) v0.41.x (opens new window) v4.2.x (opens new window) Included in Cosmos SDK
    Delta (Gravity DEX) 13/07/21 6910000 cosmoshub-4 v0.34.x (opens new window) v0.42.x (opens new window) v5.0.x (opens new window) Included in Cosmos SDK
    Vega v6 13/12/21 8695000 cosmoshub-4 v0.34.x (opens new window) v0.44.x (opens new window) v6.0.x (opens new window) v2.0.x (opens new window)
    Theta v7 12/04/22 10085397 cosmoshub-4 v0.34.x (opens new window) v0.45.x (opens new window) v7.0.x (opens new window) v3.0.x (opens new window)
    Rho v8 16/02/23 14099412 cosmoshub-4 v0.34.x (opens new window) v0.45.x (opens new window) v8.0.x (opens new window) v3.4.x (opens new window)
    Lambda v9 15/03/23 14470501 cosmoshub-4 v0.34.x (opens new window) v0.45.x (opens new window) v9.0.x (opens new window) v4.2.x (opens new window)
    v10 21/06/23 15816200 cosmoshub-4 v0.34.x (opens new window) v0.45.x (opens new window) v10.0.x (opens new window) v4.4.x (opens new window)
    v11 16/08/23 16596000 cosmoshub-4 v0.34.x (opens new window) v0.45.x (opens new window) v11.x (opens new window) v4.4.x (opens new window)
    v12 13/09/23 16985500 cosmoshub-4 v0.34.x (opens new window) v0.45.x (opens new window) v12.x (opens new window) v4.4.x (opens new window)
    v13 11/10/23 17380000 cosmoshub-4 v0.34.x (opens new window) v0.45.x (opens new window) v13.x (opens new window) v4.4.x (opens new window)
    - + diff --git a/main/sitemap.xml b/main/sitemap.xml index 7df8232b99b..ef3d6636220 100644 --- a/main/sitemap.xml +++ b/main/sitemap.xml @@ -1 +1 @@ -https://hub.cosmos.network/main/DOCS_README.htmldailyhttps://hub.cosmos.network/main/architecture/adr-001-interchain-accounts.htmldailyhttps://hub.cosmos.network/main/architecture/dailyhttps://hub.cosmos.network/main/architecture/PROCESS.htmldailyhttps://hub.cosmos.network/main/dailyhttps://hub.cosmos.network/main/architecture/adr-template.htmldailyhttps://hub.cosmos.network/main/delegators/dailyhttps://hub.cosmos.network/main/es/dailyhttps://hub.cosmos.network/main/es/gaia-tutorials/installation.htmldailyhttps://hub.cosmos.network/main/es/gaia-tutorials/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/es/governance/community-pool-spend/dailyhttps://hub.cosmos.network/main/getting-started/dailyhttps://hub.cosmos.network/main/getting-started/installation.htmldailyhttps://hub.cosmos.network/main/getting-started/quickstart.htmldailyhttps://hub.cosmos.network/main/getting-started/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/governance/dailyhttps://hub.cosmos.network/main/governance/process.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/dailyhttps://hub.cosmos.network/main/governance/proposal-types/community-pool-spend.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/param-change.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Auth.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Crisis.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Bank.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/param-index.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/text-prop.htmldailyhttps://hub.cosmos.network/main/governance/proposals/2020-10-blocks-per-year/dailyhttps://hub.cosmos.network/main/governance/proposals/2020-11-inflation-rate-change/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-delay-stargate-upgrade/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-03-enable-ibc-transfers/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-07-atom-liquidity-incentives/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-04-lower-deposit-requirement/dailyhttps://hub.cosmos.network/main/governance/proposals/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-09-hub-ibc-router/dailyhttps://hub.cosmos.network/main/governance/proposals/proposal-template.htmldailyhttps://hub.cosmos.network/main/gtm-interchain.htmldailyhttps://hub.cosmos.network/main/hub-overview/dailyhttps://hub.cosmos.network/main/hub-overview/overview.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/dailyhttps://hub.cosmos.network/main/hub-tutorials/live-upgrade-tutorial.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/upgrade-node.htmldailyhttps://hub.cosmos.network/main/ko/dailyhttps://hub.cosmos.network/main/images/dailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/installation.htmldailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/join-testnet.htmldailyhttps://hub.cosmos.network/main/ko/genesis-state.htmldailyhttps://hub.cosmos.network/main/ko/keys.htmldailyhttps://hub.cosmos.network/main/ko/launch/blog-2-kr.htmldailyhttps://hub.cosmos.network/main/ko/upgrade-node.htmldailyhttps://hub.cosmos.network/main/ko/resources/hd-wallets.htmldailyhttps://hub.cosmos.network/main/ko/validators/overview.htmldailyhttps://hub.cosmos.network/main/ko/validators/security.htmldailyhttps://hub.cosmos.network/main/migration/dailyhttps://hub.cosmos.network/main/launch/dailyhttps://hub.cosmos.network/main/launch/blog-2-en.htmldailyhttps://hub.cosmos.network/main/modules/dailyhttps://hub.cosmos.network/main/resources/dailyhttps://hub.cosmos.network/main/resources/archives.htmldailyhttps://hub.cosmos.network/main/resources/hd-wallets.htmldailyhttps://hub.cosmos.network/main/roadmap/cosmos-hub-roadmap-2.0.htmldailyhttps://hub.cosmos.network/main/resources/reproducible-builds.htmldailyhttps://hub.cosmos.network/main/validators/dailyhttps://hub.cosmos.network/main/validators/kms/kms.htmldailyhttps://hub.cosmos.network/main/validators/kms/kms_ledger.htmldailyhttps://hub.cosmos.network/main/validators/overview.htmldailyhttps://hub.cosmos.network/main/validators/security.htmldailyhttps://hub.cosmos.network/main/validators/validator-setup.htmldailyhttps://hub.cosmos.network/main/zh/dailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/installation.htmldailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/join-testnet.htmldailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/zh/genesis-state.htmldailyhttps://hub.cosmos.network/main/zh/launch/blog-2-cn.htmldailyhttps://hub.cosmos.network/main/zh/resources/ledger.htmldailyhttps://hub.cosmos.network/main/zh/validators/overview.htmldailyhttps://hub.cosmos.network/main/zh/validators/validator-setup.htmldailyhttps://hub.cosmos.network/main/zh/validators/security.htmldailyhttps://hub.cosmos.network/main/architecture/adr-002-globalfee.htmldailyhttps://hub.cosmos.network/main/delegators/delegator-faq.htmldailyhttps://hub.cosmos.network/main/delegators/delegator-security.htmldailyhttps://hub.cosmos.network/main/es/gaia-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/governance/best-practices.htmldailyhttps://hub.cosmos.network/main/governance/formatting.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Distribution.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Governance.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Mint.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Slashing.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Staking.htmldailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-atom2021_marketing/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-stargate-upgrade-b/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-stargate-upgrade/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-04-advancing-ethermint/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-05-gravity-bridge-deployment/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-04-prop34-continuation/dailyhttps://hub.cosmos.network/main/governance/submitting.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/join-testnet.htmldailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/ko/launch/blog-1-kr.htmldailyhttps://hub.cosmos.network/main/ko/resources/ledger.htmldailyhttps://hub.cosmos.network/main/ko/validators/validator-setup.htmldailyhttps://hub.cosmos.network/main/launch/blog-1-en.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-2/cosmoshub-2.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-delta-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v10-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v11-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v12-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v7-Theta-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v8-Rho-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v13-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v9-Lambda-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-vega-upgrade.htmldailyhttps://hub.cosmos.network/main/modules/globalfee.htmldailyhttps://hub.cosmos.network/main/resources/ledger.htmldailyhttps://hub.cosmos.network/main/resources/service-providers.htmldailyhttps://hub.cosmos.network/main/roadmap/dailyhttps://hub.cosmos.network/main/zh/launch/blog-1-cn.htmldailyhttps://hub.cosmos.network/main/zh/resources/genesis.htmldailyhttps://hub.cosmos.network/main/es/governance/params-change/Governance.htmldailyhttps://hub.cosmos.network/main/ko/resources/genesis.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-3/cosmoshub-3.htmldailyhttps://hub.cosmos.network/main/resources/genesis.htmldailyhttps://hub.cosmos.network/main/zh/delegator/delegator-guide-cli.htmldailyhttps://hub.cosmos.network/main/zh/resources/gaiad.htmldailyhttps://hub.cosmos.network/main/zh/validators/validator-faq.htmldailyhttps://hub.cosmos.network/main/delegators/delegator-guide-cli.htmldailyhttps://hub.cosmos.network/main/governance/state-of-cosmos-governance-2021.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/gaiad.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/ko/resources/gaiad.htmldailyhttps://hub.cosmos.network/main/validators/validator-faq.htmldailyhttps://hub.cosmos.network/main/governance/proposals/previous-proposals/dailyhttps://hub.cosmos.network/main/guidelines/code-guidelines.htmldailyhttps://hub.cosmos.network/main/ko/delegators/delegator-guide-cli.htmldailyhttps://hub.cosmos.network/main/ko/validators/validator-faq.htmldailyhttps://hub.cosmos.network/main/404.htmldaily \ No newline at end of file +https://hub.cosmos.network/main/DOCS_README.htmldailyhttps://hub.cosmos.network/main/architecture/PROCESS.htmldailyhttps://hub.cosmos.network/main/dailyhttps://hub.cosmos.network/main/architecture/dailyhttps://hub.cosmos.network/main/architecture/adr-001-interchain-accounts.htmldailyhttps://hub.cosmos.network/main/architecture/adr-template.htmldailyhttps://hub.cosmos.network/main/delegators/dailyhttps://hub.cosmos.network/main/es/dailyhttps://hub.cosmos.network/main/es/gaia-tutorials/installation.htmldailyhttps://hub.cosmos.network/main/es/gaia-tutorials/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/es/governance/community-pool-spend/dailyhttps://hub.cosmos.network/main/getting-started/installation.htmldailyhttps://hub.cosmos.network/main/getting-started/dailyhttps://hub.cosmos.network/main/getting-started/quickstart.htmldailyhttps://hub.cosmos.network/main/getting-started/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/governance/dailyhttps://hub.cosmos.network/main/governance/process.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/dailyhttps://hub.cosmos.network/main/governance/proposal-types/community-pool-spend.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/param-change.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Auth.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Crisis.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Bank.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/param-index.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/text-prop.htmldailyhttps://hub.cosmos.network/main/governance/proposals/2020-10-blocks-per-year/dailyhttps://hub.cosmos.network/main/governance/proposals/2020-11-inflation-rate-change/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-delay-stargate-upgrade/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-03-enable-ibc-transfers/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-04-lower-deposit-requirement/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-07-atom-liquidity-incentives/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-09-hub-ibc-router/dailyhttps://hub.cosmos.network/main/governance/proposals/dailyhttps://hub.cosmos.network/main/governance/proposals/proposal-template.htmldailyhttps://hub.cosmos.network/main/gtm-interchain.htmldailyhttps://hub.cosmos.network/main/hub-overview/dailyhttps://hub.cosmos.network/main/hub-overview/overview.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/live-upgrade-tutorial.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/dailyhttps://hub.cosmos.network/main/hub-tutorials/upgrade-node.htmldailyhttps://hub.cosmos.network/main/images/dailyhttps://hub.cosmos.network/main/ko/dailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/installation.htmldailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/join-testnet.htmldailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/ko/genesis-state.htmldailyhttps://hub.cosmos.network/main/ko/keys.htmldailyhttps://hub.cosmos.network/main/ko/launch/blog-2-kr.htmldailyhttps://hub.cosmos.network/main/ko/resources/hd-wallets.htmldailyhttps://hub.cosmos.network/main/ko/upgrade-node.htmldailyhttps://hub.cosmos.network/main/ko/validators/overview.htmldailyhttps://hub.cosmos.network/main/ko/validators/security.htmldailyhttps://hub.cosmos.network/main/launch/dailyhttps://hub.cosmos.network/main/launch/blog-2-en.htmldailyhttps://hub.cosmos.network/main/migration/dailyhttps://hub.cosmos.network/main/modules/dailyhttps://hub.cosmos.network/main/resources/dailyhttps://hub.cosmos.network/main/resources/archives.htmldailyhttps://hub.cosmos.network/main/resources/hd-wallets.htmldailyhttps://hub.cosmos.network/main/resources/reproducible-builds.htmldailyhttps://hub.cosmos.network/main/roadmap/cosmos-hub-roadmap-2.0.htmldailyhttps://hub.cosmos.network/main/validators/dailyhttps://hub.cosmos.network/main/validators/kms/kms.htmldailyhttps://hub.cosmos.network/main/validators/kms/kms_ledger.htmldailyhttps://hub.cosmos.network/main/validators/overview.htmldailyhttps://hub.cosmos.network/main/validators/security.htmldailyhttps://hub.cosmos.network/main/validators/validator-setup.htmldailyhttps://hub.cosmos.network/main/zh/dailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/installation.htmldailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/what-is-gaia.htmldailyhttps://hub.cosmos.network/main/zh/gaia-tutorials/join-testnet.htmldailyhttps://hub.cosmos.network/main/zh/genesis-state.htmldailyhttps://hub.cosmos.network/main/zh/launch/blog-2-cn.htmldailyhttps://hub.cosmos.network/main/zh/resources/ledger.htmldailyhttps://hub.cosmos.network/main/zh/validators/security.htmldailyhttps://hub.cosmos.network/main/zh/validators/overview.htmldailyhttps://hub.cosmos.network/main/zh/validators/validator-setup.htmldailyhttps://hub.cosmos.network/main/architecture/adr-002-globalfee.htmldailyhttps://hub.cosmos.network/main/delegators/delegator-faq.htmldailyhttps://hub.cosmos.network/main/delegators/delegator-security.htmldailyhttps://hub.cosmos.network/main/es/gaia-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/governance/best-practices.htmldailyhttps://hub.cosmos.network/main/governance/formatting.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Governance.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Distribution.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Slashing.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Mint.htmldailyhttps://hub.cosmos.network/main/governance/proposal-types/params-change/Staking.htmldailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-atom2021_marketing/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-stargate-upgrade-b/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-01-stargate-upgrade/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-04-advancing-ethermint/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-04-prop34-continuation/dailyhttps://hub.cosmos.network/main/governance/proposals/2021-05-gravity-bridge-deployment/dailyhttps://hub.cosmos.network/main/governance/submitting.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/join-testnet.htmldailyhttps://hub.cosmos.network/main/ko/gaia-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/ko/launch/blog-1-kr.htmldailyhttps://hub.cosmos.network/main/ko/resources/ledger.htmldailyhttps://hub.cosmos.network/main/ko/validators/validator-setup.htmldailyhttps://hub.cosmos.network/main/launch/blog-1-en.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-2/cosmoshub-2.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-3/cosmoshub-3%5BKR_kr%5D.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-3/cosmoshub-3%5BES_es%5D.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-delta-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v10-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v12-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v11-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v13-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v8-Rho-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v7-Theta-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-v9-Lambda-upgrade.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-4-vega-upgrade.htmldailyhttps://hub.cosmos.network/main/modules/globalfee.htmldailyhttps://hub.cosmos.network/main/resources/ledger.htmldailyhttps://hub.cosmos.network/main/roadmap/dailyhttps://hub.cosmos.network/main/resources/service-providers.htmldailyhttps://hub.cosmos.network/main/zh/launch/blog-1-cn.htmldailyhttps://hub.cosmos.network/main/zh/resources/genesis.htmldailyhttps://hub.cosmos.network/main/es/governance/params-change/Governance.htmldailyhttps://hub.cosmos.network/main/ko/resources/genesis.htmldailyhttps://hub.cosmos.network/main/migration/cosmoshub-3/cosmoshub-3.htmldailyhttps://hub.cosmos.network/main/resources/genesis.htmldailyhttps://hub.cosmos.network/main/zh/delegator/delegator-guide-cli.htmldailyhttps://hub.cosmos.network/main/zh/resources/gaiad.htmldailyhttps://hub.cosmos.network/main/zh/validators/validator-faq.htmldailyhttps://hub.cosmos.network/main/delegators/delegator-guide-cli.htmldailyhttps://hub.cosmos.network/main/governance/state-of-cosmos-governance-2021.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/gaiad.htmldailyhttps://hub.cosmos.network/main/hub-tutorials/join-mainnet.htmldailyhttps://hub.cosmos.network/main/ko/resources/gaiad.htmldailyhttps://hub.cosmos.network/main/validators/validator-faq.htmldailyhttps://hub.cosmos.network/main/governance/proposals/previous-proposals/dailyhttps://hub.cosmos.network/main/guidelines/code-guidelines.htmldailyhttps://hub.cosmos.network/main/ko/delegators/delegator-guide-cli.htmldailyhttps://hub.cosmos.network/main/ko/validators/validator-faq.htmldailyhttps://hub.cosmos.network/main/404.htmldaily \ No newline at end of file diff --git a/main/validators/index.html b/main/validators/index.html index b9840101f54..ffb7dff50a9 100644 --- a/main/validators/index.html +++ b/main/validators/index.html @@ -8,12 +8,12 @@ - +

    # Validators

    This folder contains documentation relevant to validators of the Cosmos Hub and other gaia blockchains.

    - + diff --git a/main/validators/kms/kms.html b/main/validators/kms/kms.html index c57c7a60fb3..70a6526161b 100644 --- a/main/validators/kms/kms.html +++ b/main/validators/kms/kms.html @@ -8,11 +8,11 @@ - +

    # KMS - Key Management System

    Tendermint KMS (opens new window) is a key management service that allows separating key management from Tendermint nodes. In addition it provides other advantages such as:

    • Improved security and risk management policies
    • Unified API and support for various HSM (hardware security modules)
    • Double signing protection (software or hardware based)

    It is recommended that the KMS service runs in a separate physical hosts.

    # Building

    Detailed build instructions can be found here (opens new window).

    When compiling the KMS, ensure you have enabled the applicable features:

    Backend Recommended Command line
    YubiHSM cargo build --features yubihsm
    Ledger+Tendermint App cargo build --features ledgertm

    # Configuration

    A KMS can be configured in various ways:

    # Using a YubiHSM

    Detailed information on how to setup a KMS with YubiHSM2 can be found here (opens new window)

    # Using a Ledger device running the Tendermint app

    Detailed information on how to setup a KMS with Ledger Tendermint App can be found here

    - + diff --git a/main/validators/kms/kms_ledger.html b/main/validators/kms/kms_ledger.html index 716abb2b3e3..88140e23242 100644 --- a/main/validators/kms/kms_ledger.html +++ b/main/validators/kms/kms_ledger.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ Copy gaiad gentx --name kmsval --pubkey {.ValidatorKey}

    Now start gaiad. You should see that the KMS connects and receives a signature request.

    Once the ledger receives the first message, it will ask for confirmation that the values are adequate.

    Click the right button, if the height and round are correct.

    After that, you will see that the KMS will start forwarding all signature requests to the ledger:

    Warning

    The word TEST in the second picture, second line appears because they were taken on a pre-release version.

    Once the app as been released in Ledger's app store, this word should NOT appear.

    - + diff --git a/main/validators/overview.html b/main/validators/overview.html index d53382f7b97..cb0db1b8b97 100644 --- a/main/validators/overview.html +++ b/main/validators/overview.html @@ -8,11 +8,11 @@ - +

    # Validators Overview

    # Introduction

    The Cosmos Hub is based on CometBFT (opens new window) that relies on a set of validators that are responsible for committing new blocks in the blockchain. These validators participate in the consensus protocol by broadcasting votes that contain cryptographic signatures signed by each validator's private key.

    Validator candidates can bond their own ATOM and have ATOM "delegated", or staked, to them by token holders. The Cosmos Hub has 180 validators (opens new window), but over time the number of validators can be increased with governance proposals. The validators are determined by the total number of ATOM tokens delegated to them — the top 180 validator candidates with the most voting power are the current Cosmos validators.

    Validators and their delegators earn ATOM as block provisions and tokens as transaction fees through execution of the Tendermint consensus protocol. Note that validators can set a commission percentage on the fees their delegators receive as additional incentive. You can find an overview of all current validators and their voting power on Mintscan (opens new window).

    If validators double sign or are offline for an extended period, their staked ATOM (including ATOM of users that delegated to them) can be slashed. The penalty depends on the severity of the violation.

    # Hardware

    For validator key management, validators must set up a physical operation that is secured with restricted access. A good starting place, for example, would be co-locating in secure data centers.

    Validators are expected to equip their datacenter location with redundant power, connectivity, and storage backups. Expect to have several redundant networking boxes for fiber, firewall, and switching and then small servers with redundant hard drive and failover.

    You can find the minimum hardware requirements on the instructions for joining the Cosmos Hub mainnet. As the network grows, bandwidth, CPU, and memory requirements rise. Large hard drives are recommended for storing years of blockchain history, as well as significant RAM to process the increasing amount of transactions.

    # Create a Validator Website

    To get started as a validator, create your dedicated validator website and signal your intention to become a validator in the Cosmos Discord (opens new window). Posting your validator website is essential because delegators want to have information about the entity they are delegating their ATOM to.

    As always, do your own research and seek legal advice if you intend to run a validator node.

    # Community

    Discuss the finer details of being a validator on our community Discord and sign up for the Cosmos newsletter to get regular updates:

    - + diff --git a/main/validators/security.html b/main/validators/security.html index 0b120fe9ed9..2c45539bcc5 100644 --- a/main/validators/security.html +++ b/main/validators/security.html @@ -8,7 +8,7 @@ - + @@ -27,6 +27,6 @@ private_peer_ids = "node_ids_of_private_peers"

    # Environment Variables

    By default, uppercase environment variables with the following prefixes will replace lowercase command-line flags:

    • GA (for Gaia flags)
    • TM (for Tendermint/CometBFT flags)
    • BC (for democli or basecli flags)

    For example, the environment variable GA_CHAIN_ID will map to the command line flag --chain-id. Note that while explicit command-line flags will take precedence over environment variables, environment variables will take precedence over any of your configuration files. For this reason, it's imperative that you lock down your environment such that any critical parameters are defined as flags on the CLI or prevent modification of any environment variables.

    - + diff --git a/main/validators/validator-faq.html b/main/validators/validator-faq.html index 4cca83d9671..f1c24132aaf 100644 --- a/main/validators/validator-faq.html +++ b/main/validators/validator-faq.html @@ -8,7 +8,7 @@ - + @@ -19,6 +19,6 @@ Copy gaiad tx staking validator-bond cosmosvaloper13h5xdxhsdaugwdrkusf8lkgu406h8t62jkqv3h <delegator> --from mykey

    There are no partial Validator Bonds: when a delegator or validator converts their shares to a particular validator into Validator Bond, their entire delegation to that validator is converted to Validator Bond. If a validator or delegator wishes to convert only some of their delegation to Validator Bond, they should transfer those funds to a separate address and Validator Bond from that address, or redelegate the funds that they do not wish to validator bond to another validator before converting their delegation to validator bond.

    To convert Validator Bond back into a standard delegation, simply unbond the shares.

    # How does a delegator or validator mark their delegation as a validator bond?

    Once delegated to a validator, sign a ValidatorBond message.

    # Are validator bonds subject to additional slashing conditions?

    No, in the event of a slash, a validator bond is slashed at the same rate as a regular bond.

    # Can I unbond my validator bond?

    If all the liquid staking capacity made available by a validator’s validator bond is utilized, validator bond delegated to that validator cannot be unbonded. If new capacity becomes available (either by redemption of liquid staking tokens or addition or new validator bond), then existing validator bond can be undelegated.

    Example: Suppose the validator bond factor is 250 and Validator V bonds 2 ATOM, then liquid staking providers delegate 500 ATOM to Validator V. Now Validator V cannot remove any of their validator bond because the full liquid staking capacity made available by Validator V’s validator bond is consumed.

    If liquid staking providers undelegate 250 ATOM from Validator V, Validator V can now remove 1 ATOM of validator bond.

    If, instead, the ICF or a community member validator bonds 1 additional ATOM to Validator V, Validator V can now remove 1 ATOM of validator bond.

    # Can I validator bond some of my tokens and delegate the remaining portion normally?

    The ValidatorBond message converts the full balance delegated to a validator into validator bond. To validator bond some tokens and delegate the remaining portion normally, use two addresses: the first will delegate + ValidatorBond, and the second will just delegate.

    # Technical Requirements

    # What are hardware requirements?

    A modest level of hardware specifications is initially required and rises as network use increases. Participating in the testnet is the best way to learn more. You can find the current hardware recommendations in the Joining Mainnet documentation.

    Validators are recommended to set up sentry nodes (opens new window) to protect your validator node from DDoS attacks.

    # What are software requirements?

    In addition to running a Cosmos Hub node, validators are expected to implement monitoring, alerting, and management solutions. There are several tools (opens new window) that you can use.

    # What are bandwidth requirements?

    The Cosmos network has the capacity for very high throughput relative to chains like Ethereum or Bitcoin.

    We recommend that the data center nodes connect only to trusted full nodes in the cloud or other validators that know each other socially. This connection strategy relieves the data center node from the burden of mitigating denial-of-service attacks.

    Ultimately, as the network becomes more heavily used, multigigabyte per day bandwidth is very realistic.

    # How to handle key management?

    Validators are expected to run an HSM that supports ed25519 keys. Here are potential options:

    • YubiHSM 2
    • Ledger Nano S
    • Ledger BOLOS SGX enclave
    • Thales nShield support

    The Interchain Foundation does not recommend one solution above the other. The community is encouraged to bolster the effort to improve HSMs and the security of key management.

    # What can validators expect in terms of operations?

    Running an effective operation is key to avoiding unexpected unbonding or slashing. Operations must be able to respond to attacks and outages, as well as maintain security and isolation in the data center.

    # What are the maintenance requirements?

    Validators are expected to perform regular software updates to accommodate chain upgrades and bug fixes. It is suggested to consider using Cosmovisor (opens new window) to partially automate this process.

    During an chain upgrade, progress is discussed in a private channel in the Cosmos Developer Discord (opens new window). If your validator is in the active set we encourage you to request access to that channel by contacting a moderator.

    # How can validators protect themselves from denial-of-service attacks?

    Denial-of-service attacks occur when an attacker sends a flood of internet traffic to an IP address to prevent the server at the IP address from connecting to the internet.

    An attacker scans the network, tries to learn the IP address of various validator nodes, and disconnects them from communication by flooding them with traffic.

    One recommended way to mitigate these risks is for validators to carefully structure their network topology using a sentry node architecture.

    Validator nodes are expected to connect only to full nodes they trust because they operate the full nodes themselves or the trust full nodes are run by other validators they know socially. A validator node is typically run in a data center. Most data centers provide direct links to the networks of major cloud providers. The validator can use those links to connect to sentry nodes in the cloud. This mitigation shifts the burden of denial-of-service from the validator's node directly to its sentry nodes, and can require that new sentry nodes are spun up or activated to mitigate attacks on existing ones.

    Sentry nodes can be quickly spun up or change their IP addresses. Because the links to the sentry nodes are in private IP space, an internet-based attack cannot disturb them directly. This strategy ensures that validator block proposals and votes have a much higher chance to make it to the rest of the network.

    For more sentry node details, see the CometBFT Documentation (opens new window) or the Sentry Node Architecture Overview (opens new window) on the forum.

    - + diff --git a/main/validators/validator-setup.html b/main/validators/validator-setup.html index 8fff58d2f98..9b7372b90e0 100644 --- a/main/validators/validator-setup.html +++ b/main/validators/validator-setup.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ [Install] WantedBy=multi-user.target
    - + diff --git a/main/zh/delegator/delegator-guide-cli.html b/main/zh/delegator/delegator-guide-cli.html index 5cedbe2a3b7..f63d5f65c75 100644 --- a/main/zh/delegator/delegator-guide-cli.html +++ b/main/zh/delegator/delegator-guide-cli.html @@ -8,7 +8,7 @@ - + @@ -203,6 +203,6 @@ Copy gaiad tx broadcast signedTx.json
    - + diff --git a/main/zh/gaia-tutorials/installation.html b/main/zh/gaia-tutorials/installation.html index 024139f1818..6c26fced24a 100644 --- a/main/zh/gaia-tutorials/installation.html +++ b/main/zh/gaia-tutorials/installation.html @@ -8,7 +8,7 @@ - + @@ -33,6 +33,6 @@ build tags: netgo ledger go version go1.12 linux/amd64
    # Build Tags

    build tags 指定了可执行程序具有的特殊特性。

    Build Tag Description
    netgo Name resolution will use pure Go code
    ledger 支持 Ledger 设备(硬件钱包)

    # 接下来

    然后你可以选择 加入主网公共测试网 或是 创建私有测试网

    - + diff --git a/main/zh/gaia-tutorials/join-mainnet.html b/main/zh/gaia-tutorials/join-mainnet.html index 4e4bf6dedb3..3c1df170896 100644 --- a/main/zh/gaia-tutorials/join-mainnet.html +++ b/main/zh/gaia-tutorials/join-mainnet.html @@ -8,7 +8,7 @@ - + @@ -70,7 +70,7 @@ Copy gaiad export --height [height] --for-zero-height > [filename].json

    # 升级成为验证人节点

    你现在有了一个运行状态的全节点。接下来,你可以升级你的全节点,成为一个Cosmos验证人。排名前100的验证人节点可以向Cosmos Hub提议新的区块。请查看创建验证人节点。 -

    - +

    + diff --git a/main/zh/gaia-tutorials/join-testnet.html b/main/zh/gaia-tutorials/join-testnet.html index 87460cdd019..8e63a36a3c4 100644 --- a/main/zh/gaia-tutorials/join-testnet.html +++ b/main/zh/gaia-tutorials/join-testnet.html @@ -8,7 +8,7 @@ - + @@ -31,7 +31,7 @@ make install

    ::: 提示 注意:如果在这一步出现问题,请检查是否安装了最新稳定版本的 Go。 -:::

    注意这里我们使用的是包含最新稳定发布版本的master分支。请查看testnet repo (opens new window)查看哪个版本的测试网需要哪一个 Cosmos-SDK 版本,在SDK 发布版 (opens new window)中对应的详细信息。

    你的全节点已经升级成功!

    - +:::

    注意这里我们使用的是包含最新稳定发布版本的master分支。请查看testnet repo (opens new window)查看哪个版本的测试网需要哪一个 Cosmos-SDK 版本,在SDK 发布版 (opens new window)中对应的详细信息。

    你的全节点已经升级成功!

    + diff --git a/main/zh/gaia-tutorials/what-is-gaia.html b/main/zh/gaia-tutorials/what-is-gaia.html index bc78f7f3d98..ae291a8d4ba 100644 --- a/main/zh/gaia-tutorials/what-is-gaia.html +++ b/main/zh/gaia-tutorials/what-is-gaia.html @@ -8,11 +8,11 @@ - + -

    # Gaia是什么

    gaia是作为Cosmos SDK应用程序的Cosmos Hub的名称。它有两个主要的入口:

    • gaiad : Gaia的服务进程,运行着gaia程序的全节点。
    • gaiad : Gaia的命令行界面,用于同一个Gaia的全节点交互。

    gaia基于Cosmos SDK构建,使用了如下模块:

    • x/auth : 账户和签名
    • x/bank : token转账
    • x/staking : 抵押逻辑
    • x/mint : 增发通胀逻辑
    • x/distribution : 费用分配逻辑
    • x/slashing : 处罚逻辑
    • x/gov : 治理逻辑
    • ibc-go/modules : 跨链交易
    • x/params : 处理应用级别的参数

    关于Cosmos Hub : Cosmos Hub是第一个在Cosmos Network中上线的枢纽。枢纽的作用是用以跨链转账。如果区块链通过IBC协议连接到枢纽,它会自动获得对其它连接至枢纽的区块链的访问能力。Cosmos Hub是一个公开的PoS区块链。它的权益代币称为Atom。

    接着,学习如何安装Gaia

    - +

    # Gaia是什么

    gaia是作为Cosmos SDK应用程序的Cosmos Hub的名称。它有两个主要的入口:

    • gaiad : Gaia的服务进程,运行着gaia程序的全节点。
    • gaiad : Gaia的命令行界面,用于同一个Gaia的全节点交互。

    gaia基于Cosmos SDK构建,使用了如下模块:

    • x/auth : 账户和签名
    • x/bank : token转账
    • x/staking : 抵押逻辑
    • x/mint : 增发通胀逻辑
    • x/distribution : 费用分配逻辑
    • x/slashing : 处罚逻辑
    • x/gov : 治理逻辑
    • ibc-go/modules : 跨链交易
    • x/params : 处理应用级别的参数

    关于Cosmos Hub : Cosmos Hub是第一个在Cosmos Network中上线的枢纽。枢纽的作用是用以跨链转账。如果区块链通过IBC协议连接到枢纽,它会自动获得对其它连接至枢纽的区块链的访问能力。Cosmos Hub是一个公开的PoS区块链。它的权益代币称为Atom。

    接着,学习如何安装Gaia

    + diff --git a/main/zh/genesis-state.html b/main/zh/genesis-state.html index 36a473b11e7..e37a59df906 100644 --- a/main/zh/genesis-state.html +++ b/main/zh/genesis-state.html @@ -8,7 +8,7 @@ - + @@ -28,6 +28,6 @@ EndTime int64 `json:"end_time"` // vesting end time (UNIX Epoch time) }

    除序列号(nonce)和地址外,每个帐户还必须具有有效且唯一的账户编号。

    账户也可能锁仓,此时他们必须提供必要的锁仓信息,锁仓帐户必须至少提供OriginalVestingEndTime。如果还提供了StartTime,则该帐户将被视为“连续”锁仓帐户,其中按预定义的时间表锁仓 coins。 提供的StartTime必须小于EndTime,但可能是未来的时间。 换句话说,它不必等于创世时间。 在从新状态(未导出)开始的新链中,OriginalVesting必须小于或等于Coins

    - + diff --git a/main/zh/index.html b/main/zh/index.html index f05765c45bd..3830d3da333 100644 --- a/main/zh/index.html +++ b/main/zh/index.html @@ -8,11 +8,11 @@ - +

    # gaia文档

    欢迎阅读Gaia文档。 Gaia是Cosmos Hub目前的应用程序名。

    # 加入Cosmos Hub主网

    # 加入Cosmos Hub公共测试网

    # 部署你自己的gaia测试网络

    # 额外资源

    - + diff --git a/main/zh/launch/blog-1-cn.html b/main/zh/launch/blog-1-cn.html index c749a2a04a7..82b29387e1e 100644 --- a/main/zh/launch/blog-1-cn.html +++ b/main/zh/launch/blog-1-cn.html @@ -8,12 +8,12 @@ - +

    # Cosmos Hub主网上线计划

    • 2016年夏天,Cosmos首次发表了项目白皮书。
    • 2017年春天,Cosmos完成了首次募资。
    • 2019年一月,Cosmos Hub软件完成功能开发。
    • 至此,Cosmos Hub主网即将启动。
    • 那么,Cosmos 主网上线将为Cosmos通证(Atom)的持有者带来什么呢?

    如果你是一个Atom通证的持有者,你可以将通证委托给主网的验证人并参加对链上治理提案的投票。 实际上,通证持有者的委托和参与治理对于未来网络的成功具有决定性的意义。 然而,通证持有者暂时还不能在网络上实现交易。 在下一个允许交易的硬分叉启动之前,交易协议是关闭的。

    Atom通证持有人务必仔细阅读以下内容,以保障您的通证能够安全委托给验证人。在您开始实际操作前,请先仔细阅读整个CLI指南并熟悉所有命令

    CLI指南中所介绍的流程是至今为止唯一经过验证的在主网实现通证委托的安全途径。这是因为指南中用到的gaiacli工具是唯一正在进行第三方安全审计的数字钱包软件,目前尚没有其他数字钱包供应商通过类似的安全审计。

    请记住,通证委托有一定风险。 一旦您将通证委托给了一个验证人,通证将在委托期内锁定,无法回收。 如果在这段时间内,被委托的验证人有任何违规行为,您的部分或者全部通证将被罚没焚毁。因此,在委托前,您有责任对验证人进行尽职调查。

    Cosmos Hub主网仍然是个实验型的网络。在主网的早期,估计仍会出现一些问题,比如软件升级,或发现新的漏洞。现有的工具要求使用者具有很高的专业技术能力,并且可能还会存在我们跨链基金会或者Tendermint团队无法控制的风险(请见跨链 Cosmos 贡献条款中的风险部分条款)。使用Cosmos Hub开源软件需要遵守Apache 2.0授权协议,使用者需要自己承担所有风险,而且软件将依照“现状”提供,不提供任何形式的保证或条件,并且跨链基金会和/或Tendermint团队不对因软件引起的损失承担任何责任。所以,务必请谨慎行事!

    如果您希望获得更多关于通证委托的介绍并且愿意和Cosmos的开发者做直接的交流,您可以参加我们2月14日的线上直播,在直播中我们将介绍主网启动后通证委托的整个流程。

    注册链接:gotowebinar.com/register/ (opens new window)

    # 主网启动的里程碑

    欢迎收藏cosmos.network/launch (opens new window),跟踪主网启动全过程。

    • Cosmos-SDK 安全审计✔: 在1月初,Cosmos-SDK启动了2019年一季度计划进行的一系列第三方安全评估的第一个评估项目。此次安全评估审计持续2周半的时间,2个不同的安全审计公司对Cosmos-SDK各部分做了安全评估,而第三家安全审计公司的评估工作也正在进行中。
    • Cosmos-SDK正式发布版本: RC版本一旦完成,Cosmos-SDK的功能在主网上线前将不再变更,此后Cosmos-SDK团队将开始一轮内部漏洞检测,以便进一步确保在发布前完成最终的安全性检查。Cosmos-SDK v0.31.0 一发布,我们将启动一个新的Gaia测试网,以便在实际运行环境中找到那些在测试中难以被发现的漏洞。
    • 权益争夺赛结束: 2018年12月启动的权益争夺赛(GoS)是同类区块链网络的第一个对抗性的测试网络。GoS旨在对纯PoS网络中的经济激励和社区协作进行压力测试。到目前为止,GoS区块链网络已经完成了3次硬分叉。GoS任务结束后,我们将通过记分准则来判断获胜者,并且在整个活动结束时宣布对获胜者的奖励。GoS记分准则 (opens new window)
    • 创世交易的收集: 跨链基金会将对创世时Atom通证的分配情况发布一个议案,提出了对Cosmos投资者,参与者,早期贡献者和权益争夺赛的获胜者的通证分配方案。任何被推荐获得通证分配的个人(或机构)都可以提交一个gentx文件,只有提交了该文件才有可能在主网启动创世时成为Cosmos验证人。推荐分配数量和gentx收集的最终结果将保存在创世genesis文件中
    • Cosmos Hub 主网启动🔥 🚀 🌔🔥: 一旦社区接受了genesis文件, 并且占有2/3以上投票权的验证人们上线,Cosmos主网就可以启动了。

    # Cosmos官方交流渠道

    以下是Cosmos有关主网启动的官方渠道

    如果你对下一步应该做什么或者消息来源的可信度还有什么疑虑,那么在启动时请先不要有任何行动,您可以关注以上三个Cosmos官方渠道发布的最新情况,另外不要向任何管理员、网站或者非官方软件提供您的助记词。

    切记,我们绝不会要求您提供您的私钥或者助记词。

    # 在主网启动期间确保资产安全可靠

    任何公链启动都会令人十分激动,但同时也会有一些唯利是图的人趁机作恶。自人类起源,社会工程学就已经存在了,在当今技术时代,网络钓鱼和鱼叉式网钓是利用社会工程学原理实行欺诈的主要形式。这两种攻击方式都非常有效,95%以上的账户安全漏洞都是由这两种攻击造成的,而且现在也不仅是通过电子邮件来发动攻击这么简单了。今天,网络钓鱼可能会随机或有针对性地发生在您所有的信息接收渠道,无论您是使用Signal,Telegram,SMS,Twitter或只是在论坛、社交媒体上接收信息,都有可能受到网络攻击,盗取您的重要信息和资产。

    虽然作恶者的攻击听起来很可怕,但我们仍可以做很多事情来保护自己免受各种攻击。在准备主网启动期间,我们有必要为您提供一些培训来提高您发现和规避安全风险的能力,提供验证信息的可靠渠道,并通过一些技术手段来减少或避免关键风险和证件被窃风险。

    # 安全规则

    # 参与Cosmos主网启动,您需要熟记以下规则

    • 直接从官方来源下载软件,并确保在您进行助记词相关的任何操作时始终使用最新、最安全的gaiacli版本。最新版的Tendermint,Cosmos-SDK和gaiacli只能从我们官方GitHub仓库中获取,从这些渠道下载可避免上当受骗,避免使用恶意修改的软件版本。
    • 不要将助记词告诉给任何人,你是助记词的唯一保管人。如果有人试图为您的Atom提供托管服务,那么就要警惕了:为了避免对通证失去控制,您应该将其离线存储,最大限度降低被盗风险,并制定安全的备份策略,永远不要与任何人分享。
    • 对于在区块链或加密货币环境中要求您访问来自可疑或不熟悉网站的附件或电子邮件要保持警惕。攻击者可能会试图引诱您访问虚假网站,以从您的计算机窃取敏感信息。如果您是Gmail用户,请在此处对钓鱼邮件进行测试 (opens new window)
    • 在购买Atoms之前,请做好充分的信息调研。通证在主网启动时是不允许交易的,所以它们不能进行买卖。只有到实现交易功能的硬叉发布后才能实现通证的在线交易。通证的在线交易功能实现后,请首先对卖方和交易所进行全面调研,确保Atom通证的来源可信。
    • Tendermint团队和跨链基金会都不会出售Atom通证,所以,如果您在社交媒体或者电子邮件中看到我们发出的通证销售广告,请不要相信,一定是假的。
    • 对于来自论坛或者技术交流群中的陌生人提供的技术建议必须保持警惕!您需要熟悉所有重要的指令,特别是那些可能存在高风险的操作指令。您可以查阅我们的官方文档,以避免上当受骗,损害自身及他人的利益。请牢记:Cosmos论坛,Riot群,和Telegram群都不是Cosmos官方信息或者新闻的发布渠道。
    • 在发送交易前再次确认交易。链上地址的确很长,但请仔细检查,确保交易发送到正确的地址,防止错误发送。

    如果突然出现的交易极具诱惑,或显示的消息要求您提供永远不应该与其他人分享的信息,您就应该立刻通过Cosmos网站或者其他官方渠道来验证这些信息。请再次牢记,来自Cosmos,Tendermint团队或跨链基金会的任何人都不会发送电子邮件要求您提供任何类型的帐户凭据或您的助记词,我们仅会通过我们的官方博客,Twitter和GitHub帐户与Cosmos社区沟通重要新闻和进展。

    - + diff --git a/main/zh/launch/blog-2-cn.html b/main/zh/launch/blog-2-cn.html index d58c47258bc..eadbd945a7f 100644 --- a/main/zh/launch/blog-2-cn.html +++ b/main/zh/launch/blog-2-cn.html @@ -8,11 +8,11 @@ - +

    # Cosmos主网上线三部曲

    Cosmos主网启动将分成3个阶段分布完成,下面我们将具体介绍每一阶段的预期目标。

    # 🚨第一阶段:网络逐步趋于稳定🚨

    在第一阶段,主网可能会不太稳定,也许会出现暂停或其他故障,可能需要Cosmos主网验证人和全节点运营者们一起来协助修复。在网络趋于稳定过程中,出现此类故障并不意外。

    状态修改和主网启动:

    区块链的核心价值之一是其不可篡改性,也就是说我们不会通过回滚来修改过去的状态记录。最终,这种不可篡改的理念在软件共识协议层面得到了支持,并最终在社区参与者之间形成了社会契约。

    也就是说,Cosmos Hub的底层技术开发是能够实现低难度的分叉和回滚的, 我们已经看到社区在测试网上做过多次相应的演练。这些技术也会在主网上应用,用以最终抵御卡特尔风险的发生。

    回滚网络状态通常被认为是非常严重的问题,因为这将损害网络的经济最终性。因此,回滚网络状态只能在极端状态下使用,比如以太网的DAO硬分叉,也就是说,在Cosmos Hub主网启动初期,转账交易不会开启,因此回滚的危害性很小,因为状态转换远比“经济最终性”的影响低。 如果需要,比如发现漏洞,我们可以将过去某一个高度时的网络状态导出,然后重启网络,就如同我们在测试网上演练过的那样。

    一旦链上治理决定开启交易功能,全网将会遵从经济最终性。

    总而言之,如果在链上交易功能开启之前,Cosmos Hub发现任何错误或漏洞,那么用户可期望回滚至任意状态,甚至创世块。

    一旦链上交易功能开始后,状态回滚方式将很难被采纳。

    对开发人员的建议:Cosmos主网启动是投资者参与主网的第一阶段。作为分布式应用的开发人员,您可能是Cosmos-SDK框架或Tendermint Core的用户。开发者基于Cosmos-SDK (opens new window)Tendermint (opens new window)的应用开发进度现阶段应该不受Cosmos Hub的影响,但如果您的项目需要使用IBC (opens new window)(链间通信协议),则必须要等到第三阶段或参与即将开始的IBC测试网络。

    对于用户的建议:在此阶段,我们强烈建议您不要交易Atoms(其实法律合同也限定不能交易),因为在这个阶段仍然存在状态回滚的风险。

    但是,您可以通过下面链接的CLI指南和视频教程的指导,在此阶段将Atoms通证委托给验证人。当然,如果发生状态修改,那么所有收益(包括手续费和通胀收益)都将丢失。Voyager是用于与Cosmos Hub交互的图形化客户端,目前处于alpha版,正在持续开发中。一旦Voager beta版上线,并可以安全使用,我们将另行公告。

    CLI指南和视频教程:https://v.qq.com/x/page/q08425izfhi.html (opens new window)

    # 第二阶段:链上交易开启

    摘要:

    一旦我们认为主网足够稳定,在链上抵押了Atom的通证持有者将会通过链上治理过程投票决定是否开启链上交易。

    Cosmos浏览器是查看治理提案状态的最佳途径,可以在我们的主网启动页面上找到多款Cosmos浏览器 (opens new window)

    对用户来说:如果提案被社区接受,并且链上交易开启,您就可以在链上转移您的Atom了。

    # 第三阶段:启用IBC协议

    摘要:

    第三阶段我们将会发布IBC协议 (opens new window),并且对是否将其纳入Cosmos-SDK的核心模块库进行链上治理投票。

    对开发人员的建议:使用Cosmos-SDK或Tendermint BFT构建的应用专有链将能够连接到 Cosmos Hub,并与连接到Hubs上的其他任意区块链进行跨链交互。

    对用户的建议:您可以将各种通证和NFT直接从采用IBC协议连接的一个链转移到另一个通过IBC协议连接的链,而无需通过一个第三方中心化平台。

    # 验证人提示: 提交您的主网gentx文件

    1. 验证人应该已经生成并且安全的保存好用于主网验证的共识密钥。

    2. 验证人根据自己获得ATOM通证的来源,比如募资参与者或权益争夺活动的获奖者,准备好在创世文件(Genesis)中需要签署的交易。

    3. 一旦创世通证分配计划发布,我们将开始征集gentx文件。

    # 总结

    Cosmos旨在建立所有区块链间的桥梁,最终建立一个区块链互联网。然而,路漫漫其修远兮,我们还有很长的路要走。主网上线之后,我们需要完成与整个通证经济世界的深度融合,很多的工作要做等着我们去完成。正如肯尼迪在逆境中曾经说过的那样:

    “我们选择去月球,不是因为很容易,而是因为很难......”

    走更崎岖的路,才会看见更美的风景!


    - + diff --git a/main/zh/resources/gaiad.html b/main/zh/resources/gaiad.html index b7080bd9c4e..85a77d19a69 100644 --- a/main/zh/resources/gaiad.html +++ b/main/zh/resources/gaiad.html @@ -8,7 +8,7 @@ - + @@ -338,7 +338,7 @@ Copy echo '. gaiad_completion' >> ~/.bashrc echo '. gaiacli_completion' >> ~/.bashrc -

    有关如何启用shell自动完成的信息,请参阅操作系统提供的解释器用户手册。

    - +

    有关如何启用shell自动完成的信息,请参阅操作系统提供的解释器用户手册。

    + diff --git a/main/zh/resources/genesis.html b/main/zh/resources/genesis.html index 93852eddc20..d45bc3d894a 100644 --- a/main/zh/resources/genesis.html +++ b/main/zh/resources/genesis.html @@ -8,7 +8,7 @@ - + @@ -173,6 +173,6 @@ gaiad collect-gentxs

    此命令将存储在~/.gaia/config/gentx中的所有gentxs添加到genesis文件中。 要创建创世纪交易,请单击此处

    - + diff --git a/main/zh/resources/ledger.html b/main/zh/resources/ledger.html index db467f4299c..7c169895d55 100644 --- a/main/zh/resources/ledger.html +++ b/main/zh/resources/ledger.html @@ -8,7 +8,7 @@ - + @@ -48,6 +48,6 @@

    从种子中推导出帐户的过程是确定性的。这意味着给定相同的路径,派生出私钥将始终相同。

    存储在帐户中的资金由私钥控制。此私钥对助记词使用单向函数生成的。如果丢失了私钥,则可以使用助记词恢复它。但是,如果丢失了助记词,则将无法访问所有派生的私钥。同样,如果有人获得了你的助记词访问权限,他们就可以访问所有相关帐户。

    # Ledger支持HD钱包

    在Ledger钱包的内核,有一个用于生成私钥的助记词。初始化Ledger时,会生成助记词。

    ::: 危险 不要遗失或与任何人分享你的12/24个单词。为防止盗窃或资金损失,最好确保备份多个助记词拷贝,并将其存放在安全可靠的地方,并且只有你知道如何访问。如果有人能够访问你的助记词,他们将能够访问你的私钥并控制与其关联的帐户 :::

    助记词与Cosmos帐户体系兼容。用于在Cosmos Hub网络上生成地址和交易的工具称为gaiad,它支持从Ledger种子派生帐户私钥。请注意,Ledger钱包充当种子和私钥的沙盒,并且对交易进行签名的过程完全在内部进行。没有任何私人信息会离开Ledger钱包。

    要将gaiad与Ledger钱包一起使用,你需要具备以下条件:

    现在,你都准备好去发送交易到网络.

    - + diff --git a/main/zh/validators/overview.html b/main/zh/validators/overview.html index f86fd4def52..d8f0975108c 100644 --- a/main/zh/validators/overview.html +++ b/main/zh/validators/overview.html @@ -8,11 +8,11 @@ - + -

    # 验证人概览

    # 介绍

    Cosmos Hub基于CometBFT,它依赖于一组负责在区块链中提交新区块的验证人。这些验证人通过广播投票来参与共识协议,投票包含由每个验证人的私钥签名的加密签名。

    验证人候选者可以绑定他们自己的Atoms=,还能让token持有者将Atoms=“委托”或“抵押”给他们。Cosmos Hub将有100个验证人,但随着时间的推移,将根据预定义的时间表增加到300个验证人。验证人根据谁拥有最多的投票权来确定——拥有最多股权的前100名验证人候选者将成为Cosmos的验证人。

    验证人及其委托人能通过执行CometBFT共识协议赚取Atom作为区块增发奖励和作为交易手续费的其他token。最初,交易费用将以Atom支付,但在将来,Cosmos生态中的任何token如果通过治理加入到白名单中,就能作为有效的交易手续费。请注意,验证人可以设置从他们的委托人身上收取的佣金作为额外奖励。

    如果验证人双签,频繁下线或不参与治理,则可以削减其抵押的Atom(包括那些用户委托给他们的Atom)。处罚取决于违规的严重程度。

    # 硬件

    目前还没有合适的针对验证人密钥管理的云解决方案。这可能会等到2018年云解决方案SGX变得更加普及时才会有所改善。由于这个原因,验证人必须设置一个受限访问的物理操作。例如,安置在安全的数据中心。

    验证人期望为他们的数据中心装备充足的电力,带宽及存储备份。期望有数个充足的对应光纤,防火墙还有路由的需求的网络设备,一台有着足够硬盘和容错能力的小型服务器。硬件可以先从低端的数据中心配置开始。

    我们预计最初的网络需求是比较低的。当前的测试网络只需要极小的资源。之后,带宽,CPU和内存的需求将会随着网络的发展而增长。要存储数年区块链的历史信息的话,推荐配置足够大的的硬盘。

    # 创建一个网站

    建立一个专门的用以显示验证人信息网站,并在我们的论坛 (opens new window)上表明您想成为验证人的意图。这非常重要,因为委托人希望获得关于他们予以Atom委托的验证人的信息。

    # 寻求法律建议

    如果您打算成为一个验证人,请寻求法律建议

    # 社区

    在我们的社区聊天频道和论坛上讨论有关成为验证人的更多细节:

    - +

    # 验证人概览

    # 介绍

    Cosmos Hub基于CometBFT,它依赖于一组负责在区块链中提交新区块的验证人。这些验证人通过广播投票来参与共识协议,投票包含由每个验证人的私钥签名的加密签名。

    验证人候选者可以绑定他们自己的Atoms=,还能让token持有者将Atoms=“委托”或“抵押”给他们。Cosmos Hub将有100个验证人,但随着时间的推移,将根据预定义的时间表增加到300个验证人。验证人根据谁拥有最多的投票权来确定——拥有最多股权的前100名验证人候选者将成为Cosmos的验证人。

    验证人及其委托人能通过执行CometBFT共识协议赚取Atom作为区块增发奖励和作为交易手续费的其他token。最初,交易费用将以Atom支付,但在将来,Cosmos生态中的任何token如果通过治理加入到白名单中,就能作为有效的交易手续费。请注意,验证人可以设置从他们的委托人身上收取的佣金作为额外奖励。

    如果验证人双签,频繁下线或不参与治理,则可以削减其抵押的Atom(包括那些用户委托给他们的Atom)。处罚取决于违规的严重程度。

    # 硬件

    目前还没有合适的针对验证人密钥管理的云解决方案。这可能会等到2018年云解决方案SGX变得更加普及时才会有所改善。由于这个原因,验证人必须设置一个受限访问的物理操作。例如,安置在安全的数据中心。

    验证人期望为他们的数据中心装备充足的电力,带宽及存储备份。期望有数个充足的对应光纤,防火墙还有路由的需求的网络设备,一台有着足够硬盘和容错能力的小型服务器。硬件可以先从低端的数据中心配置开始。

    我们预计最初的网络需求是比较低的。当前的测试网络只需要极小的资源。之后,带宽,CPU和内存的需求将会随着网络的发展而增长。要存储数年区块链的历史信息的话,推荐配置足够大的的硬盘。

    # 创建一个网站

    建立一个专门的用以显示验证人信息网站,并在我们的论坛 (opens new window)上表明您想成为验证人的意图。这非常重要,因为委托人希望获得关于他们予以Atom委托的验证人的信息。

    # 寻求法律建议

    如果您打算成为一个验证人,请寻求法律建议

    # 社区

    在我们的社区聊天频道和论坛上讨论有关成为验证人的更多细节:

    + diff --git a/main/zh/validators/security.html b/main/zh/validators/security.html index e57faf0cedf..654db925dc3 100644 --- a/main/zh/validators/security.html +++ b/main/zh/validators/security.html @@ -8,7 +8,7 @@ - + @@ -25,7 +25,7 @@ # Comma separated list of peer IDs to keep private (will not be gossiped to other peers) private_peer_ids = "ipaddress of validator nodes"

    # 环境变量

    默认情况下,具有以下前缀的大写环境变量将替换小写命令行标志:

    • GA(对应Gaia的标识)
    • TM(对应Tendermint, 现在 CometBFT的标识)
    • BC(对应democli或basecli的标识)

    例如,环境变量GA_CHAIN_ID将映射到命令行标识--chain-id。注意,虽然显式命令行标识优先于环境变量,但环境变量优先于任何配置文件。因此,必须锁定环境,以便在CLI上将任何关键参数定义为标识或防止修改任何环境变量。 -

    - +

    + diff --git a/main/zh/validators/validator-faq.html b/main/zh/validators/validator-faq.html index cd9891b9481..86c42d57050 100644 --- a/main/zh/validators/validator-faq.html +++ b/main/zh/validators/validator-faq.html @@ -8,7 +8,7 @@ - + @@ -18,7 +18,7 @@
    • 使用gaiad init创建节点时生成。
    • 使用gaiad tendermint show-validator查看,如cosmosvalconspub1zcjduc3qcyj09qc03elte23zwshdx92jm6ce88fgc90rtqhjx8v0608qh5ssp0w94c
  • Application keys :这些密钥是由应用程序创建的,用于签名交易。作为验证人,你可能会使用一个密钥来签名与抵押相关的交易,另一个密钥用于签署与治理相关的交易。应用程序私钥和公钥cosmospub及地址cosmos相关联。两者都来自gaiad keys add生成的帐户私钥。
    • 注意:验证人的操作员的私钥直接绑定到应用程序私钥,但为此目的保留前缀:cosmosvalopercosmosvaloperpub
  • # 验证人可以具有哪些不同的状态

    使用create-validator交易创建验证人后,它可以处于三种状态:

    • bonded : 验证人在活跃集合中并参与共识。验证人正在获得奖励,并且可能因为不当行为而遭到削减处罚。
    • unbonding : 验证人不在活跃集合中,也不参与共识。验证人没有获得奖励,但仍然可能因为不当行为而遭到削减处罚。这是从bondedunbonding的过渡状态。如果验证人在unbonding模式下未发送rebond交易,则状态转换将需要三周时间才能完成。
    • unbonded : 验证人不在活跃集合中,因此不签署区块。验证人不能遭到削减处罚,也不会获得任何奖励。仍然可以将Atom委托给此验证人。从unbonded状态的验证人取消委托是立即的。

    委托人与其验证人具有相同的状态。

    请注意,委托不一定是绑定的。Atom可以是delegated和bonded状态,delegated和unbonding状态,delegated和unbonded状态,或流通状态。

    # 什么是self-bond?怎样增加我的self-bond?有水龙头吗?

    如果你想获得测试网的测试币,你可以使用这个水龙头 (opens new window)

    # 成为一个活跃的(=bonded)验证人必须要抵押最小数量的Atom吗?

    没有最小限制。总股权(总股权=自抵押股权+委托股权)最高的前100名是活跃验证人。

    # 委托人要怎样选择验证人?

    委托人可以根据他们的主观判断随意去选择验证人。也就是说,包括对以下内容的判断相当重要:

    • 自抵押的Atom数量:一个验证人在股权池里自抵押的Atom数量。有着更多自抵押Atom的验证人承担了更大的风险,将促使其对自己的行为更加负责。
    • 委托的Atom总量: 委托给某个验证人的Atom总量。大量的股权显示社区对该验证人的信任,但这也意味着该验证人更容易成为黑客们的目标。实际上,黑客更倾向攻击更大的验证人,这样他们可能会从不能抵御攻击的验证人那里获得更多。随着委托的Atom的增长,验证人也被期待不要太过引人注目。
    • 佣金比率: 在把奖励分散给委托人之前抽成一部分佣金来奖励验证人。
    • 跟踪记录:委托人很可能去查看他们计划去委托的验证人的行为记录。包括资历,过去对提议的投票,历史的平均运行时长和验证人节点掉线的频率。

    除去这些会展示在Cosmos Voyager上的评判标准,验证人还可能向公众展示一个网站来完善他们的简历。验证人需要通过多种方式去树立良好的声誉来吸引委托人。比如,验证人让第三方来审计他们的设置就是一个很好的实践。注意,CometBFT团队将不会批准和引导任何对自身的审计。有关尽职调查的更多信息,请参阅此博客 (opens new window)

    # 责任

    # 验证人需要公开表明身份吗?

    不需要。每个委托人会用他们自己的评判标准去衡量验证人的价值。验证人可以(也被推荐)在他们提名自己时注册一个网站,以便他们可以按照自己的意愿宣传自己的行动。一些委托人可能更喜欢通过一个清楚展示团队是如何去运行验证人节点以及团队成员的简历的网站来帮助选择,尽管其他一些委托人更偏好那些隐藏了行为记录的匿名验证人。最有可能的是身份明确的验证人和匿名的验证人都会存在于验证人集合中。

    # 一个验证人要担负哪些责任?

    验证人有两个主要的职责:

    • 能够不断运行软件的正确版本:验证人需要去保证他们的服务器任何时刻都在线,保护其私钥避免遭到窃取。
    • 积极地参与治理:验证人需要对每个提案投票表决。

    此外,验证人应该是社区的活跃成员。他们应该始终与生态系统的当前状态保持同步,以便他们能够轻松适应任何变化。

    # "参与治理"需要?

    Cosmos Hub中的验证人员和委托人可以就改变运行参数(例如区块燃料限制),协调升级以及对治理Cosmos Hub的宪法的修正方案进行投票表决。

    验证人在治理系统中发挥着特殊作用。身为系统的支柱他们需要对每一个提案进行投票表决。这是尤其重要的,因为委托人把票权给了验证人而自己无法直接去投票。每次当某个验证人不去对一个提案投票表决时,他就会遭受削减处罚。

    # 抵押是指?

    抵押Atom可以被认为是一种在验证活动中进行的安全储蓄。当一个验证人或者委托人想要拿回部分甚至所有的存款时,他们就发送一笔unbonding交易。然后,Atom会经历一个3周的解绑周期,在unbonding开始前他们容易因错误提交而遭到削减处罚。

    验证人,和与其形成联盟的委托人,得到区块增发奖励,区块奖励和手续费奖励,还有参与治理的权利。如果一个验证人行为不端,它的总股份的一部分会遭削减处罚(处罚的严厉性取决于错误行为的类型)。这意味着每一个往验证人委托Atom的用户也会受到一定比例的处罚。因此委托人倾向于把Atom委托给那些规范安全运作的验证人。

    # 验证人可以卷走委托人的Atom跑路吗?

    向一个验证人委托,用户只是委托了他的股权。验证人有更多的股权,在共识和治理工程中也就有了更大的权重。这不意味着验证人可以扣押其委托人的Atom。一个验证人是绝不可能带着委托人的Atom跑路的。

    尽管委托资金不可能被验证人盗取,委托人仍然要对他们的验证人做出的不端行为负责。这种情况下,每个委托人的股权也会按其股权比例遭到部分的削减处罚。

    # 一个验证人多久被选择提议下一个区块?会随着抵押的Atom数量上升吗?

    被选作提议下一个区块的验证人称为提案人。每个提案人都是由明确的方式选出来的,被选的频率也与他们的总股权相等(总股权=自抵押股权+委托股权)。比如,如果所有验证人总的抵押股权是100个Atom,一个验证人的总股权是10个Atom,那么有10%的时间该验证人会被选作下一个提案人。

    # Cosmos Hub的验证人需要去验证Cosmos生态中的其他分区吗?

    是的,他们会如此。最初,Cosmos Hub的验证人还会验证第一个公共Ethermint分区。如果通过治理决定这么做,Cosmos Hub的验证人可能需要去验证Cosmos生态系统里的其它分区。就Ethermint分区而言,对每个额外的分区奖励都会以区块奖励和交易手续费的形式来提供。

    # 激励

    # 抵押有什么激励?

    一个验证人股权池里的每个成员赚取不同类型的收益:

    • 区块增发奖励: 验证人运行的应用里的原生的token(例如Cosmos Hub中的Atom)会是通胀的,用作区块增发奖励。这些增发奖励激励Atom持有者去抵押他们的股权,所以未绑定的Atom会随着时间的流逝而稀释。
    • 区块奖励: 对于Ethermint分区,区块奖励会以Photon来支付。对Ethereum进行硬分叉来完成初始的分配。这意味着Photon会按和Ether的比例1:1发放。
    • 交易手续费:Cosmos Hub维持一个token的白名单,上面的token都能作为手续费。

    这些总收益会按验证人股权池中每个验证人所占的权重来进行分配。然后,每个验证人的股权池的收益又会根据其每一个委托人的股权来分配。注意,会在分配前从委托人所得中抽取佣金给予验证人。

    # 运行一个验证人有什么激励?

    由于能抽成佣金,验证人比起他们的委托人能按比例赚取更多的收益。

    验证人在治理中充当一个重要角色。如果一个委托人没有投票,他也能从他的验证人那里继承到投票权。这样验证人在生态里承担主要的责任。

    # 什么是验证人的佣金?

    一个验证人的股权池收到的收益会被拆分为给验证人的部分和给委托人的部分。验证人可以从给其委托人的收益中抽取一部分作为给自己佣金奖励。这个佣金被设置成一个百分比。每个验证人可以随意设置初始佣金,最大每日佣金变化率和最大佣金。Cosmos Hub强制每个验证人都要明确设置这些参数。这些参数只能在一开始声明竞选时设置,也只可能在声明之后被进一步限制。

    # 区块增发奖励怎么分配?

    区块增发奖励会按验证人的总股权来成比例地发放。这意味着即使每个验证人每次增发奖励时都获得了Atom,但所有验证人仍然会维持相等的权重。

    让我们举一个例子:我们有着股权相等的10个验证人,佣金比例是1%。然后我们假设一个区块的增发奖励是1000个Atom,每一个验证人有20%的自抵押Atom。这些token不会直接分给提案人。而是被均匀地分发给验证人。所以现在每个验证人的股权池获得100个Atom。这100个Atom会依据每个参与者的股权来分发:

    • 佣金:100*80%*1% = 0.8 Atoms
    • 验证人获得部分: 100*20% + 佣金 = 20.8 Atoms
    • 委托人获得部分: 100*80% - 佣金 = 79.2 Atoms

    然后,每个委托人可以按照他们在验证人股权池中的股权,从79.2个Atom中等比例地索要属于他们应得的那一份。注意验证人的佣金不仅只适用于区块增发奖励,也适用于区块奖励(使用Photon支付)。

    # 交易手续费怎么分配?

    手续费以类似的方式分发,不同之处在于,如果区块的提案人有多于明确的提交所需的最小值,区块提案人就可以在由其提议的区块手续费中获得一笔奖励。

    当一个验证人被选作去提议下一个区块时,必须要含有对当前区块至少2/3的验证人签名许可。尽管如此,仍然存在有一个激励去奖励那些超过2/3的验证人签名许可。这个奖励是线性的:如果提案人含有2/3的签名许可(区块有效的最小值),比例是1%, 如果提案人含有100%的签名许可,比例是5%。当然,提案人不应该等待太久去做提案,或许其他的验证人有可能超时,长时间的等待容易造成提案的延误。这样的话,验证人不得不在获取最多签名的等待时间和失去对下个区块的提案之间寻找一个平衡点。这个机制旨在提案人不要去提案空块,维护验证人之间更好的网络,还有减轻审查。

    让我们举一个实际的例子来说明上面的概念。在这个例子中,有着10个股权相等的验证人。每个验证人采用1%的佣金比例,有20%的自抵押Atom。现在,产出了一个有着1025.51020408个Atom手续费的区块。

    首先,一个 2% 的税是必须的。这部分Atom会进入贮存池中。贮存池里的资金会通过治理来分配,用来作奖赏和更新升级的花费。

    • 2% * 1025.51020408 = 20.51020408 Atoms 进入到贮存池中

    现在只剩下了1005个Atom。让我们假设提案人提案的区块包含了100%的验证人签名。因此提案人能获得手续费奖励中的5%的额外奖励。

    我们解这个简单的算式得出给每一个验证人的奖励R :

    9*R + R + R*5% = 1005 ⇔ R = 1005/10.05 = 100

    • 对于发起提案的验证人:
      • 奖金池获得 R + R * 5% = 105 Atoms
      • 佣金: 105 * 80% * 1% = 0.84 Atoms
      • 验证人的奖励: 105 * 20% + 佣金 = 21.84 Atoms
      • 委托人的奖励: 105 * 80% - 佣金 = 83.16 Atoms(每个委托人可以按照他们的股权占比等比例地索要这部分奖励)
    • 对于每个非提案验证人: -
      • 奖金池获得 R = 100 Atoms
      • 佣金: 100 * 80% * 1% = 0.8 Atoms
      • 验证人的奖励: 100 * 20% + 佣金 = 20.8 Atoms
      • 委托人的奖励: 100 * 80% - 佣金 = 79.2 Atoms(每个委托人可以按照他们的股权占比等比例地索要这部分奖励)

    # 遭到削减处罚的原因?

    如果一个验证人行为不端,其抵押的股权,连同其委托人的股权都会遭到削减处罚。处罚的严重性依据错误的类型来定。有3个主要的错误会导致验证人和其委托人的资金遭到削减处罚:

    • 双签:如果某人反馈在A链上,一个验证人在相同高度的A链和B链上签署了两个区块,这个验证人会被A链处罚。
    • 不在线: 如果一个验证人的签名没有被最近的X个区块包含,对该验证人会按与X成比例的最低额度来处罚。如果X高于某个限制Y,这个验证人会被赎回下线。
    • 不投票: 如果一个验证人没有对某个提案投票表决,一旦被某个人举报,他的股权会受到削减处罚。

    请注意,即使一个验证人并不是有意作恶,在出现节点崩溃,失去连接,被DDOS攻击,或者是私钥泄露的情况时,仍然会被遭受削减处罚。

    # 验证人需要去自抵押一些Atom吗?

    不,他们不必。一个验证人的总股权等于其自抵押股权和受委托股权的总和。这意味着一个验证人可以通过吸引更多委托人来补偿其低额的自抵押股权。这也是为何对验证人而言,良好的声誉是极其重要的。

    尽管对验证人来说是并没有义务去自抵押Atom,委托人还是希望他们的验证人在其股权池里有一定的自抵押Atom。换句话说,验证人应该共担风险。

    为了委托人能获得一些与之共担风险的验证人给予的保证,验证人可以声明一个最小数量的自抵押Atom额度。如果一个验证人的自抵押额度低于预先定义的限制,该验证人和其所有的委托人的股权都会被赎回。

    # 怎样预防股权集中到少数的验证人手中?

    目前我们期望社区能有更明智的和有自我保护意识的行为表现。当一个Bitcoin的矿池获得过多的算力时,社区通常会停止向该矿池贡献算力。Cosmos Hub在初期也将会依赖同样的方式。之后,其他的机制会被应用,来尽可能地使这个过程更顺畅:

    • 免处罚的重新委托 :这允许委托人轻易地从一个验证人切换到另一个验证人,从而降低对验证人的粘性
    • 黑客赏金: 激励社区去攻击验证人。攻击者将获得与所攻击的验证人规模成比例的赏金,促使一个验证人随着其总股权的增长,成为一个受人关注的攻击目标。
    • UI警告: 如果用户想要去委托股权给一个已经有了大量股权的验证人的话,用户会收到来自Cosmos Voyager的警告。

    # 技术要求

    # 对硬件的要求是什么?

    我们期望验证人供应一个或多个的有着充足电力,网络资源,防火墙安全,HSM和服务器的数据中心。

    我们期望初期能有一个适度级别的硬件规格说明书,会随着网络使用的增长而逐步提高标准。参与到测试网络是了解更多情况的不错方式。

    # 对软件有什么要求?

    除了能运行一个Cosmos Hub节点,验证人还应该开发相关的监控,预警和管理工具。

    # 对带宽有什么要求?

    与像Ethereum或Bitcoin这样的区块链相比,Cosmos网络要有高吞吐量的性能。

    我们建议数据中心只在云服务上连接信任的全节点或者是熟知的验证人节点,这会减轻数据中心遭受DDOS攻击的压力。

    最后,随着网络越来越被重度使用,具有单日GB级别的带宽是可能的。

    # 运行一个验证人节点意味着什么?

    运行一个成功的验证人节点需要多方面的高超技艺的和持久关注的共同努力。相比运行一个Bitcoin矿工节点要付出更多。

    # 怎样去进行密钥管理?

    我们期望验证人去运行一个HSM来支持ed25519密钥。下面是可能的选择:

    • YubiHSM 2
    • Ledger Nano S
    • Ledger BOLOS SGX enclave
    • Thales nShield support

    CometBFT团队不会推荐上面的其中之一。鼓励社区最好加强改进HSM和密钥管理的安全性。

    # 在操作上我们期望验证人可以做到哪些?

    进行有效率的操作是避免验证人节点的意外掉线或遭到削减处罚的关键所在。这包括良好的攻击应对方法,断电情况,还有维持数据中心的安全性和独立性。

    # 维护需要什么?

    验证人应该去执行常规的软件升级以适应更新和修复漏洞。在启动阶段的前期阶段不可避免的会出现一些网络问题,这需要大量的警觉。

    # 验证人怎样保护自己免于DDOS攻击?

    当一个攻击者向一个IP地址发送海量的因特网流量来阻止该IP地址上的网络服务时,这就是DDOS攻击。

    一个攻击者扫描网络,尽量去获得多个验证人节点的IP地址,然后通过向他们发送海量流量来阻断他们之间的连接。

    一个降低这样的风险的推荐做法是验证人在所谓的哨兵节点的架构中精心去构建他们的网络拓扑结构。

    验证人节点应该只连接到他们所信任的全节点上,因为他们可以操作自身,也可以被他们熟知的其他验证人运行。一个验证人节点通常会运行在一个数据中心。大部分数据中心提供对主流云服务提供商的直接网络连接服务。验证人可以使用去连接云服务中的哨兵节点。验证人节点直接连接到他们的哨兵节点,这样减缓了DOS攻击带来的压力,可能需要新的哨兵节点被激活去减轻已存在的哨兵节点所遭受到的攻击。

    哨兵节点能够迅速地被轮换或者改变它们的IP地址。因为与哨兵节点的连接是私有的IP网段,基于因特网的攻击不可能直接骚扰到它们。这将确保验证人区块的提交和投票总是能传播到网络中的其余节点。

    期待验证人在这方面良好的操作将完全消除这些威胁。

    了解哨兵节点架构的更多信息请看这里 (opens new window)

    - +
    • 奖金池获得 R = 100 Atoms
    • 佣金: 100 * 80% * 1% = 0.8 Atoms
    • 验证人的奖励: 100 * 20% + 佣金 = 20.8 Atoms
    • 委托人的奖励: 100 * 80% - 佣金 = 79.2 Atoms(每个委托人可以按照他们的股权占比等比例地索要这部分奖励)

    # 遭到削减处罚的原因?

    如果一个验证人行为不端,其抵押的股权,连同其委托人的股权都会遭到削减处罚。处罚的严重性依据错误的类型来定。有3个主要的错误会导致验证人和其委托人的资金遭到削减处罚:

    • 双签:如果某人反馈在A链上,一个验证人在相同高度的A链和B链上签署了两个区块,这个验证人会被A链处罚。
    • 不在线: 如果一个验证人的签名没有被最近的X个区块包含,对该验证人会按与X成比例的最低额度来处罚。如果X高于某个限制Y,这个验证人会被赎回下线。
    • 不投票: 如果一个验证人没有对某个提案投票表决,一旦被某个人举报,他的股权会受到削减处罚。

    请注意,即使一个验证人并不是有意作恶,在出现节点崩溃,失去连接,被DDOS攻击,或者是私钥泄露的情况时,仍然会被遭受削减处罚。

    # 验证人需要去自抵押一些Atom吗?

    不,他们不必。一个验证人的总股权等于其自抵押股权和受委托股权的总和。这意味着一个验证人可以通过吸引更多委托人来补偿其低额的自抵押股权。这也是为何对验证人而言,良好的声誉是极其重要的。

    尽管对验证人来说是并没有义务去自抵押Atom,委托人还是希望他们的验证人在其股权池里有一定的自抵押Atom。换句话说,验证人应该共担风险。

    为了委托人能获得一些与之共担风险的验证人给予的保证,验证人可以声明一个最小数量的自抵押Atom额度。如果一个验证人的自抵押额度低于预先定义的限制,该验证人和其所有的委托人的股权都会被赎回。

    # 怎样预防股权集中到少数的验证人手中?

    目前我们期望社区能有更明智的和有自我保护意识的行为表现。当一个Bitcoin的矿池获得过多的算力时,社区通常会停止向该矿池贡献算力。Cosmos Hub在初期也将会依赖同样的方式。之后,其他的机制会被应用,来尽可能地使这个过程更顺畅:

    • 免处罚的重新委托 :这允许委托人轻易地从一个验证人切换到另一个验证人,从而降低对验证人的粘性
    • 黑客赏金: 激励社区去攻击验证人。攻击者将获得与所攻击的验证人规模成比例的赏金,促使一个验证人随着其总股权的增长,成为一个受人关注的攻击目标。
    • UI警告: 如果用户想要去委托股权给一个已经有了大量股权的验证人的话,用户会收到来自Cosmos Voyager的警告。

    # 技术要求

    # 对硬件的要求是什么?

    我们期望验证人供应一个或多个的有着充足电力,网络资源,防火墙安全,HSM和服务器的数据中心。

    我们期望初期能有一个适度级别的硬件规格说明书,会随着网络使用的增长而逐步提高标准。参与到测试网络是了解更多情况的不错方式。

    # 对软件有什么要求?

    除了能运行一个Cosmos Hub节点,验证人还应该开发相关的监控,预警和管理工具。

    # 对带宽有什么要求?

    与像Ethereum或Bitcoin这样的区块链相比,Cosmos网络要有高吞吐量的性能。

    我们建议数据中心只在云服务上连接信任的全节点或者是熟知的验证人节点,这会减轻数据中心遭受DDOS攻击的压力。

    最后,随着网络越来越被重度使用,具有单日GB级别的带宽是可能的。

    # 运行一个验证人节点意味着什么?

    运行一个成功的验证人节点需要多方面的高超技艺的和持久关注的共同努力。相比运行一个Bitcoin矿工节点要付出更多。

    # 怎样去进行密钥管理?

    我们期望验证人去运行一个HSM来支持ed25519密钥。下面是可能的选择:

    • YubiHSM 2
    • Ledger Nano S
    • Ledger BOLOS SGX enclave
    • Thales nShield support

    CometBFT团队不会推荐上面的其中之一。鼓励社区最好加强改进HSM和密钥管理的安全性。

    # 在操作上我们期望验证人可以做到哪些?

    进行有效率的操作是避免验证人节点的意外掉线或遭到削减处罚的关键所在。这包括良好的攻击应对方法,断电情况,还有维持数据中心的安全性和独立性。

    # 维护需要什么?

    验证人应该去执行常规的软件升级以适应更新和修复漏洞。在启动阶段的前期阶段不可避免的会出现一些网络问题,这需要大量的警觉。

    # 验证人怎样保护自己免于DDOS攻击?

    当一个攻击者向一个IP地址发送海量的因特网流量来阻止该IP地址上的网络服务时,这就是DDOS攻击。

    一个攻击者扫描网络,尽量去获得多个验证人节点的IP地址,然后通过向他们发送海量流量来阻断他们之间的连接。

    一个降低这样的风险的推荐做法是验证人在所谓的哨兵节点的架构中精心去构建他们的网络拓扑结构。

    验证人节点应该只连接到他们所信任的全节点上,因为他们可以操作自身,也可以被他们熟知的其他验证人运行。一个验证人节点通常会运行在一个数据中心。大部分数据中心提供对主流云服务提供商的直接网络连接服务。验证人可以使用去连接云服务中的哨兵节点。验证人节点直接连接到他们的哨兵节点,这样减缓了DOS攻击带来的压力,可能需要新的哨兵节点被激活去减轻已存在的哨兵节点所遭受到的攻击。

    哨兵节点能够迅速地被轮换或者改变它们的IP地址。因为与哨兵节点的连接是私有的IP网段,基于因特网的攻击不可能直接骚扰到它们。这将确保验证人区块的提交和投票总是能传播到网络中的其余节点。

    期待验证人在这方面良好的操作将完全消除这些威胁。

    了解哨兵节点架构的更多信息请看这里 (opens new window)

    + diff --git a/main/zh/validators/validator-setup.html b/main/zh/validators/validator-setup.html index 7401216ea34..0c02a163b9c 100644 --- a/main/zh/validators/validator-setup.html +++ b/main/zh/validators/validator-setup.html @@ -8,7 +8,7 @@ - + @@ -110,7 +110,7 @@ [Install] WantedBy=multi-user.target -
    - +
    +