From bdd155c419f2659187b9c39dee7e0929d1d1c3ea Mon Sep 17 00:00:00 2001 From: Polkadot Wiki CI Date: Fri, 13 Sep 2024 00:16:48 +0000 Subject: [PATCH] Deploy website - based on 1261c4123c2c07e86567139625533ce97a862b78 --- 404.html | 4 ++-- assets/js/{f359a251.4d6e840d.js => f359a251.2733102a.js} | 2 +- assets/js/f4200fe5.1c8c0f13.js | 1 + assets/js/f4200fe5.7125522a.js | 1 - ...{runtime~main.80ec0d1e.js => runtime~main.008b8ced.js} | 2 +- docs/alpha-program.html | 4 ++-- docs/ambassadors.html | 4 ++-- docs/apps-index.html | 4 ++-- docs/bug-bounty.html | 4 ++-- docs/build-archive-index.html | 4 ++-- docs/build-client-index.html | 4 ++-- docs/build-client-side.html | 4 ++-- docs/build-dapp.html | 4 ++-- docs/build-data.html | 4 ++-- docs/build-guide.html | 4 ++-- docs/build-guides-coretime-start.html | 4 ++-- docs/build-guides-coretime-troubleshoot.html | 4 ++-- docs/build-guides-install-deps.html | 4 ++-- docs/build-guides-template-basic.html | 4 ++-- docs/build-hackathon.html | 4 ++-- docs/build-hrmp-channels.html | 4 ++-- docs/build-index.html | 4 ++-- docs/build-integrate-assets.html | 4 ++-- docs/build-integration.html | 4 ++-- docs/build-light-clients.html | 4 ++-- docs/build-network-overview.html | 4 ++-- docs/build-node-interaction.html | 4 ++-- docs/build-node-management.html | 4 ++-- docs/build-open-source.html | 4 ++-- docs/build-oracle.html | 4 ++-- docs/build-pdk.html | 4 ++-- docs/build-protocol-index.html | 4 ++-- docs/build-protocol-info.html | 4 ++-- docs/build-smart-contracts.html | 4 ++-- docs/build-storage.html | 4 ++-- docs/build-tools-index.html | 4 ++-- docs/build-transaction-construction.html | 4 ++-- docs/chain-state-values.html | 4 ++-- docs/community-index.html | 4 ++-- docs/community.html | 4 ++-- docs/contributing.html | 4 ++-- docs/contributors.html | 4 ++-- docs/dashboards-index.html | 4 ++-- docs/decentralized-futures.html | 4 ++-- docs/decentralized-voices.html | 4 ++-- docs/dev-heroes.html | 4 ++-- docs/explore-index.html | 4 ++-- docs/faq.html | 4 ++-- docs/general-index.html | 4 ++-- docs/general/dune-analytics.html | 4 ++-- docs/general/dune-analytics/acala-dashboards.html | 4 ++-- docs/general/dune-analytics/assethub-dashboards.html | 4 ++-- docs/general/dune-analytics/astar-dashboards.html | 4 ++-- docs/general/dune-analytics/bifrost-dashboards.html | 4 ++-- docs/general/dune-analytics/bridgehub-dashboards.html | 4 ++-- docs/general/dune-analytics/centrifuge-dashboards.html | 4 ++-- docs/general/dune-analytics/collectives-dashboards.html | 4 ++-- docs/general/dune-analytics/coretime-dashboards.html | 4 ++-- docs/general/dune-analytics/energywebx-dashboards.html | 4 ++-- docs/general/dune-analytics/frequency-dashboards.html | 4 ++-- docs/general/dune-analytics/hydration-dashboards.html | 4 ++-- docs/general/dune-analytics/interlay-dashboards.html | 4 ++-- docs/general/dune-analytics/invarch-dashboards.html | 4 ++-- docs/general/dune-analytics/litentry-dashboards.html | 4 ++-- docs/general/dune-analytics/manta-dashboards.html | 4 ++-- docs/general/dune-analytics/moonbeam-dashboards.html | 4 ++-- docs/general/dune-analytics/neuroweb-dashboards.html | 4 ++-- docs/general/dune-analytics/nodle-dashboards.html | 4 ++-- docs/general/dune-analytics/parachain-dashboards.html | 4 ++-- docs/general/dune-analytics/pendulum-dashboards.html | 4 ++-- docs/general/dune-analytics/people-dashboards.html | 4 ++-- docs/general/dune-analytics/phala-dashboards.html | 4 ++-- docs/general/dune-analytics/polimec-dashboards.html | 4 ++-- docs/general/dune-analytics/polkadex-dashboards.html | 4 ++-- .../dune-analytics/polkadot-dashboards-governance.html | 4 ++-- .../dune-analytics/polkadot-dashboards-network.html | 4 ++-- .../dune-analytics/polkadot-dashboards-overview.html | 4 ++-- .../dune-analytics/polkadot-dashboards-staking.html | 4 ++-- docs/general/dune-analytics/polkadot-dashboards.html | 4 ++-- .../polkadot-dashboards/polkadot-dot-ordinals.html | 4 ++-- .../polkadot-governance-dashboard.html | 4 ++-- .../polkadot-opengov-referenda-home.html | 4 ++-- .../polkadot-opengov-referendum-voting-analysis.html | 4 ++-- .../polkadot-staking-dashboard-nomination-pool.html | 4 ++-- .../polkadot-staking-dashboard-nominators.html | 4 ++-- .../polkadot-staking-dashboard-pool-member.html | 4 ++-- .../polkadot-staking-dashboard-validators.html | 4 ++-- .../polkadot-dashboards/polkadot-staking-dashboard.html | 4 ++-- docs/general/dune-analytics/snowbridge-dashboards.html | 4 ++-- docs/general/dune-analytics/stellaswap-dashboards.html | 4 ++-- docs/general/dune-analytics/unique-dashboards.html | 4 ++-- docs/general/dunesql-cheatsheet.html | 4 ++-- docs/general/onboarding-status-and-key-dashboards.html | 4 ++-- docs/general/polkadot-ecosystem-overview.html | 4 ++-- docs/general/project-dashboards.html | 4 ++-- docs/getting-started.html | 4 ++-- docs/glossary.html | 4 ++-- docs/governance-apps.html | 4 ++-- docs/grants.html | 4 ++-- docs/how-to-dyor.html | 4 ++-- docs/kusama-adversarial-cheatsheet.html | 4 ++-- docs/kusama-bug-bounty.html | 4 ++-- docs/kusama-coc.html | 4 ++-- docs/kusama-getting-started.html | 4 ++-- docs/kusama-social-recovery.html | 4 ++-- docs/kusama-timeline.html | 4 ++-- docs/learn-DOT.html | 4 ++-- docs/learn-account-abstraction.html | 4 ++-- docs/learn-account-advanced.html | 4 ++-- docs/learn-account-balances.html | 4 ++-- docs/learn-account-multisig.html | 4 ++-- docs/learn-accounts.html | 4 ++-- docs/learn-advanced-index.html | 4 ++-- docs/learn-agile-coretime-index.html | 4 ++-- docs/learn-agile-coretime.html | 4 ++-- docs/learn-architecture.html | 4 ++-- docs/learn-archive.html | 4 ++-- docs/learn-asset-conversion-assethub.html | 4 ++-- docs/learn-assets-index.html | 4 ++-- docs/learn-assets.html | 4 ++-- docs/learn-async-backing.html | 4 ++-- docs/learn-auction.html | 4 ++-- docs/learn-basics-index.html | 4 ++-- docs/learn-bridges.html | 4 ++-- docs/learn-collator.html | 4 ++-- docs/learn-comparisons-avalanche.html | 4 ++-- docs/learn-comparisons-cosmos.html | 4 ++-- docs/learn-comparisons-ethereum-2.html | 4 ++-- docs/learn-comparisons-index.html | 4 ++-- docs/learn-comparisons-kusama.html | 4 ++-- docs/learn-comparisons-rollups.html | 4 ++-- docs/learn-comparisons.html | 4 ++-- docs/learn-components-index.html | 4 ++-- docs/learn-consensus.html | 4 ++-- docs/learn-crowdloans.html | 4 ++-- docs/learn-cryptography.html | 4 ++-- docs/learn-dot-ksm-bridge.html | 4 ++-- docs/learn-elastic-scaling.html | 4 ++-- docs/learn-future-implementations-index.html | 4 ++-- docs/learn-guides-accounts-multisig.html | 4 ++-- docs/learn-guides-accounts-proxy-pure.html | 4 ++-- docs/learn-guides-accounts-proxy.html | 4 ++-- docs/learn-guides-accounts.html | 4 ++-- docs/learn-guides-asset-conversion.html | 4 ++-- docs/learn-guides-assets-create.html | 4 ++-- docs/learn-guides-assets.html | 4 ++-- docs/learn-guides-bounties.html | 4 ++-- docs/learn-guides-bridges.html | 4 ++-- docs/learn-guides-claims.html | 4 ++-- docs/learn-guides-coretime-marketplaces.html | 4 ++-- docs/learn-guides-coretime-parachains.html | 4 ++-- docs/learn-guides-dot-ksm-bridge.html | 4 ++-- docs/learn-guides-identity.html | 4 ++-- docs/learn-guides-ledger.html | 4 ++-- docs/learn-guides-nominator.html | 4 ++-- docs/learn-guides-polkadot-opengov.html | 4 ++-- docs/learn-guides-staking-pools.html | 4 ++-- docs/learn-guides-staking.html | 4 ++-- docs/learn-guides-transfers.html | 4 ++-- docs/learn-guides-treasury.html | 4 ++-- docs/learn-guides-vault.html | 4 ++-- docs/learn-hyperbridge.html | 4 ++-- docs/learn-identity.html | 4 ++-- docs/learn-implementations.html | 4 ++-- docs/learn-index.html | 4 ++-- docs/learn-inflation.html | 4 ++-- docs/learn-jam-chain.html | 4 ++-- docs/learn-jam-faq.html | 4 ++-- docs/learn-jam.html | 4 ++-- docs/learn-nft-pallets.html | 4 ++-- docs/learn-nft-projects.html | 4 ++-- docs/learn-nft.html | 4 ++-- docs/learn-nomination-pools.html | 4 ++-- docs/learn-nominator.html | 4 ++-- docs/learn-offenses.html | 4 ++-- docs/learn-parachains-faq.html | 4 ++-- docs/learn-parachains-index.html | 4 ++-- docs/learn-parachains-protocol.html | 4 ++-- docs/learn-parachains.html | 4 ++-- docs/learn-participants-index.html | 4 ++-- docs/learn-phragmen.html | 4 ++-- docs/learn-polkadot-host.html | 4 ++-- docs/learn-polkadot-js-guides.html | 4 ++-- docs/learn-polkadot-opengov-index.html | 4 ++-- docs/learn-polkadot-opengov-origins.html | 4 ++-- docs/learn-polkadot-opengov-treasury.html | 4 ++-- docs/learn-polkadot-opengov.html | 4 ++-- docs/learn-polkadot-technical-fellowship.html | 4 ++-- docs/learn-polkadotjs.html | 4 ++-- docs/learn-proxies-pure.html | 4 ++-- docs/learn-proxies.html | 4 ++-- docs/learn-runtime-upgrades.html | 4 ++-- docs/learn-safrole.html | 4 ++-- docs/learn-scams.html | 4 ++-- docs/learn-snowbridge.html | 4 ++-- docs/learn-spree.html | 4 ++-- docs/learn-staking-advanced.html | 4 ++-- docs/learn-staking-index.html | 4 ++-- docs/learn-staking.html | 4 ++-- docs/learn-system-chains.html | 4 ++-- docs/learn-teleport.html | 4 ++-- docs/learn-transactions.html | 4 ++-- docs/learn-validator.html | 4 ++-- docs/learn-video-tutorials.html | 4 ++-- docs/learn-wasm.html | 4 ++-- docs/learn-xcm-index.html | 4 ++-- docs/learn-xcm-instructions.html | 4 ++-- docs/learn-xcm-pallet.html | 4 ++-- docs/learn-xcm-transport.html | 4 ++-- docs/learn-xcm-usecases.html | 4 ++-- docs/learn-xcm.html | 4 ++-- docs/learn-xcvm.html | 4 ++-- docs/learn/learn-controller.html | 4 ++-- docs/learn/learn-governance.html | 4 ++-- docs/learn/learn-launch.html | 4 ++-- docs/learn/learn-redenomination.html | 4 ++-- docs/learn/learn-treasury.html | 4 ++-- docs/learn/xcm.html | 4 ++-- docs/learn/xcm/config-deep-dive.html | 4 ++-- docs/learn/xcm/fundamentals-fees.html | 4 ++-- docs/learn/xcm/fundamentals-multiasset.html | 4 ++-- docs/learn/xcm/fundamentals-summary.html | 4 ++-- docs/learn/xcm/fundamentals-xcvm.html | 4 ++-- docs/learn/xcm/fundamentals.html | 4 ++-- docs/learn/xcm/fundamentals/multilocation-example.html | 4 ++-- docs/learn/xcm/fundamentals/multilocation-junctions.html | 4 ++-- docs/learn/xcm/fundamentals/multilocation-summary.html | 4 ++-- docs/learn/xcm/fundamentals/multilocation.html | 4 ++-- docs/learn/xcm/introduction.html | 4 ++-- docs/learn/xcm/journey-assets.html | 4 ++-- docs/learn/xcm/journey-channels.html | 4 ++-- docs/learn/xcm/journey-expectations.html | 4 ++-- docs/learn/xcm/journey-fees.html | 4 ++-- docs/learn/xcm/journey-holding.html | 4 ++-- docs/learn/xcm/journey-locks.html | 4 ++-- docs/learn/xcm/journey-origin.html | 4 ++-- docs/learn/xcm/journey-queries.html | 4 ++-- docs/learn/xcm/journey-register.html | 4 ++-- docs/learn/xcm/journey-summary.html | 4 ++-- docs/learn/xcm/journey-transact.html | 4 ++-- docs/learn/xcm/journey-version.html | 4 ++-- docs/learn/xcm/journey.html | 4 ++-- docs/learn/xcm/journey/transfers-reserve.html | 4 ++-- docs/learn/xcm/journey/transfers-summary.html | 4 ++-- docs/learn/xcm/journey/transfers-teleport.html | 4 ++-- docs/learn/xcm/journey/transfers.html | 4 ++-- docs/learn/xcm/overview-architecture.html | 4 ++-- docs/learn/xcm/overview-format.html | 4 ++-- docs/learn/xcm/overview-intro.html | 4 ++-- docs/learn/xcm/overview-summary.html | 4 ++-- docs/learn/xcm/overview-xcvm.html | 4 ++-- docs/learn/xcm/overview.html | 4 ++-- docs/learn/xcm/quickstart-first-look.html | 4 ++-- docs/learn/xcm/quickstart-simulator.html | 4 ++-- docs/learn/xcm/quickstart-summary.html | 4 ++-- docs/learn/xcm/quickstart.html | 4 ++-- docs/learn/xcm/reference-glossary.html | 4 ++-- docs/learn/xcm/reference-xcvm-registers.html | 4 ++-- docs/learn/xcm/references.html | 4 ++-- docs/learn/xcm/testing.html | 4 ++-- docs/ledger.html | 4 ++-- docs/maintain-archive.html | 4 ++-- docs/maintain-bootnode.html | 4 ++-- docs/maintain-collator-index.html | 4 ++-- docs/maintain-endpoints.html | 8 ++++---- docs/maintain-errors.html | 4 ++-- docs/maintain-guides-async-backing.html | 4 ++-- docs/maintain-guides-how-to-chill.html | 4 ++-- docs/maintain-guides-how-to-monitor-your-node.html | 4 ++-- docs/maintain-guides-how-to-stop-validating.html | 4 ++-- docs/maintain-guides-how-to-systemd.html | 4 ++-- docs/maintain-guides-how-to-upgrade.html | 4 ++-- docs/maintain-guides-how-to-validate-kusama.html | 4 ++-- docs/maintain-guides-how-to-validate-polkadot.html | 4 ++-- docs/maintain-guides-secure-validator.html | 4 ++-- docs/maintain-guides-society-kusama.html | 4 ++-- docs/maintain-guides-validator-community.html | 4 ++-- docs/maintain-guides-validator-payout.html | 4 ++-- docs/maintain-index.html | 4 ++-- docs/maintain-networks.html | 4 ++-- docs/maintain-node-index.html | 4 ++-- docs/maintain-polkadot-parameters.html | 4 ++-- docs/maintain-rpc.html | 4 ++-- docs/maintain-sync.html | 8 ++++---- docs/maintain-validator-index.html | 4 ++-- docs/maintain-wss.html | 4 ++-- docs/maintain/maintain-guides-democracy.html | 4 ++-- docs/maintain/maintain-guides-how-to-join-council.html | 4 ++-- docs/maintain/maintain-guides-how-to-vote-councillor.html | 4 ++-- docs/metadata.html | 4 ++-- docs/multisig-apps.html | 4 ++-- docs/parachains-apps.html | 4 ++-- docs/parity-data-dashboards.html | 4 ++-- docs/polkadot-direction.html | 4 ++-- docs/polkadot-v1.html | 4 ++-- docs/polkadot-vault.html | 4 ++-- docs/polkadot-vision-index.html | 4 ++-- docs/polkadotjs-ui.html | 4 ++-- docs/polkadotjs.html | 4 ++-- docs/programs-index.html | 4 ++-- docs/staking-apps.html | 4 ++-- docs/staking-dashboard.html | 4 ++-- docs/start-building.html | 4 ++-- docs/stay-safe-index.html | 4 ++-- docs/thousand-contributors.html | 4 ++-- docs/thousand-validators.html | 4 ++-- docs/transaction-attacks.html | 4 ++-- docs/wallets-and-extensions.html | 4 ++-- docs/wallets-index.html | 4 ++-- docs/web3-and-polkadot.html | 4 ++-- index.html | 4 ++-- search.html | 4 ++-- 312 files changed, 623 insertions(+), 623 deletions(-) rename assets/js/{f359a251.4d6e840d.js => f359a251.2733102a.js} (51%) create mode 100644 assets/js/f4200fe5.1c8c0f13.js delete mode 100644 assets/js/f4200fe5.7125522a.js rename assets/js/{runtime~main.80ec0d1e.js => runtime~main.008b8ced.js} (99%) diff --git a/404.html b/404.html index bf0820c32ca6..c311600472ab 100644 --- a/404.html +++ b/404.html @@ -22,13 +22,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/f359a251.4d6e840d.js b/assets/js/f359a251.2733102a.js similarity index 51% rename from assets/js/f359a251.4d6e840d.js rename to assets/js/f359a251.2733102a.js index ca30e7dded9f..9be6bfb3b639 100644 --- a/assets/js/f359a251.4d6e840d.js +++ b/assets/js/f359a251.2733102a.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4051],{15680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>y});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,y=d["".concat(s,".").concat(m)]||d[m]||c[m]||o;return a?n.createElement(y,l(l({ref:t},p),{},{components:a})):n.createElement(y,l({ref:t},p))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u{a.d(t,{A:()=>l});var n=a(96540),r=a(20053);const o={tabItem:"tabItem_Ymn6"};function l(e){var t=e.children,a=e.hidden,l=e.className;return n.createElement("div",{role:"tabpanel",className:(0,r.A)(o.tabItem,l),hidden:a},t)}},11470:(e,t,a)=>{a.d(t,{A:()=>w});var n=a(58168),r=a(96540),o=a(20053),l=a(23104),i=a(56347),s=a(57485),u=a(31682),p=a(89466);function d(e){return function(e){var t,a;return null!=(t=null==(a=r.Children.map(e,(function(e){if(!e||(0,r.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:a.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function c(e){var t=e.values,a=e.children;return(0,r.useMemo)((function(){var e=null!=t?t:d(a);return function(e){var t=(0,u.X)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,a])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function y(e){var t=e.queryString,a=void 0!==t&&t,n=e.groupId,o=(0,i.W6)(),l=function(e){var t=e.queryString,a=void 0!==t&&t,n=e.groupId;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:a,groupId:n});return[(0,s.aZ)(l),(0,r.useCallback)((function(e){if(l){var t=new URLSearchParams(o.location.search);t.set(l,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[l,o])]}function g(e){var t,a,n,o,l=e.defaultValue,i=e.queryString,s=void 0!==i&&i,u=e.groupId,d=c(e),g=(0,r.useState)((function(){return function(e){var t,a=e.defaultValue,n=e.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!m({value:a,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+a+'" but none of its children has the corresponding value. Available values are: '+n.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return a}var r=null!=(t=n.find((function(e){return e.default})))?t:n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:l,tabValues:d})})),h=g[0],f=g[1],b=y({queryString:s,groupId:u}),v=b[0],N=b[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:u}.groupId),a=(0,p.Dv)(t),n=a[0],o=a[1],[n,(0,r.useCallback)((function(e){t&&o.set(e)}),[t,o])]),k=w[0],P=w[1],E=function(){var e=null!=v?v:k;return m({value:e,tabValues:d})?e:null}();return(0,r.useLayoutEffect)((function(){E&&f(E)}),[E]),{selectedValue:h,selectValue:(0,r.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);f(e),N(e),P(e)}),[N,P,d]),tabValues:d}}var h=a(92303);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function b(e){var t=e.className,a=e.block,i=e.selectedValue,s=e.selectValue,u=e.tabValues,p=[],d=(0,l.a_)().blockElementScrollPositionUntilNextRender,c=function(e){var t=e.currentTarget,a=p.indexOf(t),n=u[a].value;n!==i&&(d(t),s(n))},m=function(e){var t,a=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":var n,r=p.indexOf(e.currentTarget)+1;a=null!=(n=p[r])?n:p[0];break;case"ArrowLeft":var o,l=p.indexOf(e.currentTarget)-1;a=null!=(o=p[l])?o:p[p.length-1]}null==(t=a)||t.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":a},t)},u.map((function(e){var t=e.value,a=e.label,l=e.attributes;return r.createElement("li",(0,n.A)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:function(e){return p.push(e)},onKeyDown:m,onClick:c},l,{className:(0,o.A)("tabs__item",f.tabItem,null==l?void 0:l.className,{"tabs__item--active":i===t})}),null!=a?a:t)})))}function v(e){var t=e.lazy,a=e.children,n=e.selectedValue,o=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){var l=o.find((function(e){return e.props.value===n}));return l?(0,r.cloneElement)(l,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n})})))}function N(e){var t=g(e);return r.createElement("div",{className:(0,o.A)("tabs-container",f.tabList)},r.createElement(b,(0,n.A)({},e,t)),r.createElement(v,(0,n.A)({},e,t)))}function w(e){var t=(0,h.A)();return r.createElement(N,(0,n.A)({key:String(t)},e))}},98442:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>h,frontMatter:()=>u,metadata:()=>d,toc:()=>m});var n=a(58168),r=a(98587),o=(a(96540),a(15680)),l=a(11470),i=a(19365),s=["components"],u={id:"maintain-endpoints",title:"Node Endpoints",sidebar_label:"Node Endpoints",description:"List of node endpoints and examples of use.",keywords:["endpoints","network","connect"],slug:"../maintain-endpoints"},p=void 0,d={unversionedId:"maintain/maintain-endpoints",id:"maintain/maintain-endpoints",title:"Node Endpoints",description:"List of node endpoints and examples of use.",source:"@site/../docs/maintain/maintain-endpoints.md",sourceDirName:"maintain",slug:"/maintain-endpoints",permalink:"/docs/maintain-endpoints",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/maintain/maintain-endpoints.md",tags:[],version:"current",lastUpdatedBy:"Carlos Santiago Yanzon",lastUpdatedAt:1726063775,formattedLastUpdatedAt:"Sep 11, 2024",frontMatter:{id:"maintain-endpoints",title:"Node Endpoints",sidebar_label:"Node Endpoints",description:"List of node endpoints and examples of use.",keywords:["endpoints","network","connect"],slug:"../maintain-endpoints"},sidebar:"docs",previous:{title:"Nodes and Dapps",permalink:"/docs/maintain-node-index"},next:{title:"Set up a Full Node",permalink:"/docs/maintain-sync"}},c={},m=[{value:"Network Endpoints",id:"network-endpoints",level:3},{value:"Example usage with Polkadot-JS API",id:"example-usage-with-polkadot-js-api",level:4},{value:"Third Party Providers",id:"third-party-providers",level:3}],y={toc:m},g="wrapper";function h(e){var t=e.components,a=(0,r.A)(e,s);return(0,o.yg)(g,(0,n.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Ideally, one may run their own node when interacting with the\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.network/"},"Polkadot network")," via ",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/apps/"},"Polkadot-JS Apps"),"\nor other UIs and programmatic methods. Another option would be to connect to one of the several\npublic endpoints provided by infrastructure and API service providers. For development convenience,\n",(0,o.yg)("a",{parentName:"p",href:"https://www.parity.io/"},"Parity Tech")," maintains archive nodes for Polkadot, Kusama, and their test\nnetworks with public endpoints. These endpoints can be used with\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/docs/api"},"Polkadot-JS API")," to interact with their respective chains. The\ntables below list these endpoints."),(0,o.yg)("h3",{id:"network-endpoints"},"Network Endpoints"),(0,o.yg)("p",null,"Endpoints for all production and test networks are listed on the\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI")," which are accessed from\n",(0,o.yg)("a",{parentName:"p",href:"https://github.com/polkadot-js/apps/tree/master/packages/apps-config/src/endpoints"},"here"),".\nEndpoints for Polkadot Relay Chain and Kusama Relay Chain, parachains, and Paseo test network are\nmaintained by the community. System Chains as well as Westend and Rococo test network endpoints\nmaintained by Parity Technologies are listed below:"),(0,o.yg)(l.A,{groupId:"endpoints",values:[{label:"Polkadot System Chains",value:"psc"},{label:"Kusama System Chains",value:"ksc"},{label:"Test Networks",value:"tn"}],mdxType:"Tabs"},(0,o.yg)(i.A,{value:"psc",mdxType:"TabItem"},(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Network"),(0,o.yg)("th",{parentName:"tr",align:null},"WSS Endpoint"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Asset Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-asset-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Bridge Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-bridge-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Collectives"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-collectives-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"People Chain"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-people-rpc.polkadot.io"))))),(0,o.yg)(i.A,{value:"ksc",mdxType:"TabItem"},(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Network"),(0,o.yg)("th",{parentName:"tr",align:null},"WSS Endpoint"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Asset Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-asset-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Bridge Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-bridge-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Collectives"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-collectives-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"People Chain"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-people-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Coretime Chain"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-coretime-rpc.polkadot.io"))))),(0,o.yg)(i.A,{value:"tn",mdxType:"TabItem"},(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Network"),(0,o.yg)("th",{parentName:"tr",align:null},"WSS Endpoint"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Westend"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://westend-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Rococo"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://rococo-rpc.polkadot.io")))))),(0,o.yg)("h4",{id:"example-usage-with-polkadot-js-api"},"Example usage with Polkadot-JS API"),(0,o.yg)("p",null,"To connect to the Parity node for the Polkadot Asset Hub, use the endpoint in your JavaScript apps\nlike so:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript",metastring:"{5}","{5}":!0},"// Using the Polkadot Mainnet Endpoint\nconst { ApiPromise, WsProvider } = require('@polkadot/api');\nasync () => {\n // Construct a provider with the endpoint URL\n const provider = new WsProvider('wss://polkadot-asset-hub-rpc.polkadot.io');\n // Create an API instance for Polkadot\n const api = await ApiPromise.create({ provider });\n // ...\n")),(0,o.yg)("h3",{id:"third-party-providers"},"Third Party Providers"),(0,o.yg)("p",null,"There are a number of third-party providers of RPC infrastructure to the Polkadot and Kusama\ncommunities, commonly providing access to multiple networks and parachains in a single service. They\nprovide additional services such as higher rate limits, potentially more reliable and scalable\nservice, and additional metrics."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://onfinality.io"},"OnFinality")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://dwellir.com"},"Dwellir")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://radiumblock.com/"},"Radium Block")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://1rpc.io/"},"1RPC")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://nownodes.io/"},"NOWNodes")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.allthatnode.com/"},"All That Node")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.rpc.subquery.network/"},"SubQuery")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://drpc.org/"},"dRPC"))),(0,o.yg)("admonition",{type:"note"},(0,o.yg)("p",{parentName:"admonition"},"The list of third party RPC endpoints above for Polkadot and Kusama is directly fetched from\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/explorer"},"Polkadot-JS UI"))))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4051],{15680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>y});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,y=d["".concat(s,".").concat(m)]||d[m]||c[m]||o;return a?n.createElement(y,l(l({ref:t},p),{},{components:a})):n.createElement(y,l({ref:t},p))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u{a.d(t,{A:()=>l});var n=a(96540),r=a(20053);const o={tabItem:"tabItem_Ymn6"};function l(e){var t=e.children,a=e.hidden,l=e.className;return n.createElement("div",{role:"tabpanel",className:(0,r.A)(o.tabItem,l),hidden:a},t)}},11470:(e,t,a)=>{a.d(t,{A:()=>w});var n=a(58168),r=a(96540),o=a(20053),l=a(23104),i=a(56347),s=a(57485),u=a(31682),p=a(89466);function d(e){return function(e){var t,a;return null!=(t=null==(a=r.Children.map(e,(function(e){if(!e||(0,r.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:a.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function c(e){var t=e.values,a=e.children;return(0,r.useMemo)((function(){var e=null!=t?t:d(a);return function(e){var t=(0,u.X)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,a])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function y(e){var t=e.queryString,a=void 0!==t&&t,n=e.groupId,o=(0,i.W6)(),l=function(e){var t=e.queryString,a=void 0!==t&&t,n=e.groupId;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:a,groupId:n});return[(0,s.aZ)(l),(0,r.useCallback)((function(e){if(l){var t=new URLSearchParams(o.location.search);t.set(l,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[l,o])]}function g(e){var t,a,n,o,l=e.defaultValue,i=e.queryString,s=void 0!==i&&i,u=e.groupId,d=c(e),g=(0,r.useState)((function(){return function(e){var t,a=e.defaultValue,n=e.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!m({value:a,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+a+'" but none of its children has the corresponding value. Available values are: '+n.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return a}var r=null!=(t=n.find((function(e){return e.default})))?t:n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:l,tabValues:d})})),h=g[0],f=g[1],b=y({queryString:s,groupId:u}),v=b[0],N=b[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:u}.groupId),a=(0,p.Dv)(t),n=a[0],o=a[1],[n,(0,r.useCallback)((function(e){t&&o.set(e)}),[t,o])]),k=w[0],P=w[1],E=function(){var e=null!=v?v:k;return m({value:e,tabValues:d})?e:null}();return(0,r.useLayoutEffect)((function(){E&&f(E)}),[E]),{selectedValue:h,selectValue:(0,r.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);f(e),N(e),P(e)}),[N,P,d]),tabValues:d}}var h=a(92303);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function b(e){var t=e.className,a=e.block,i=e.selectedValue,s=e.selectValue,u=e.tabValues,p=[],d=(0,l.a_)().blockElementScrollPositionUntilNextRender,c=function(e){var t=e.currentTarget,a=p.indexOf(t),n=u[a].value;n!==i&&(d(t),s(n))},m=function(e){var t,a=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":var n,r=p.indexOf(e.currentTarget)+1;a=null!=(n=p[r])?n:p[0];break;case"ArrowLeft":var o,l=p.indexOf(e.currentTarget)-1;a=null!=(o=p[l])?o:p[p.length-1]}null==(t=a)||t.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":a},t)},u.map((function(e){var t=e.value,a=e.label,l=e.attributes;return r.createElement("li",(0,n.A)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:function(e){return p.push(e)},onKeyDown:m,onClick:c},l,{className:(0,o.A)("tabs__item",f.tabItem,null==l?void 0:l.className,{"tabs__item--active":i===t})}),null!=a?a:t)})))}function v(e){var t=e.lazy,a=e.children,n=e.selectedValue,o=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){var l=o.find((function(e){return e.props.value===n}));return l?(0,r.cloneElement)(l,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n})})))}function N(e){var t=g(e);return r.createElement("div",{className:(0,o.A)("tabs-container",f.tabList)},r.createElement(b,(0,n.A)({},e,t)),r.createElement(v,(0,n.A)({},e,t)))}function w(e){var t=(0,h.A)();return r.createElement(N,(0,n.A)({key:String(t)},e))}},98442:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>h,frontMatter:()=>u,metadata:()=>d,toc:()=>m});var n=a(58168),r=a(98587),o=(a(96540),a(15680)),l=a(11470),i=a(19365),s=["components"],u={id:"maintain-endpoints",title:"Node Endpoints",sidebar_label:"Node Endpoints",description:"List of node endpoints and examples of use.",keywords:["endpoints","network","connect"],slug:"../maintain-endpoints"},p=void 0,d={unversionedId:"maintain/maintain-endpoints",id:"maintain/maintain-endpoints",title:"Node Endpoints",description:"List of node endpoints and examples of use.",source:"@site/../docs/maintain/maintain-endpoints.md",sourceDirName:"maintain",slug:"/maintain-endpoints",permalink:"/docs/maintain-endpoints",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/maintain/maintain-endpoints.md",tags:[],version:"current",lastUpdatedBy:"Joan",lastUpdatedAt:1726149738,formattedLastUpdatedAt:"Sep 12, 2024",frontMatter:{id:"maintain-endpoints",title:"Node Endpoints",sidebar_label:"Node Endpoints",description:"List of node endpoints and examples of use.",keywords:["endpoints","network","connect"],slug:"../maintain-endpoints"},sidebar:"docs",previous:{title:"Nodes and Dapps",permalink:"/docs/maintain-node-index"},next:{title:"Set up a Full Node",permalink:"/docs/maintain-sync"}},c={},m=[{value:"Network Endpoints",id:"network-endpoints",level:3},{value:"Example usage with Polkadot-JS API",id:"example-usage-with-polkadot-js-api",level:4},{value:"Third Party Providers",id:"third-party-providers",level:3}],y={toc:m},g="wrapper";function h(e){var t=e.components,a=(0,r.A)(e,s);return(0,o.yg)(g,(0,n.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Ideally, one may run their own node when interacting with the\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.network/"},"Polkadot network")," via ",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/apps/"},"Polkadot-JS Apps"),"\nor other UIs and programmatic methods. Another option would be to connect to one of the several\npublic endpoints provided by infrastructure and API service providers. For development convenience,\n",(0,o.yg)("a",{parentName:"p",href:"https://www.parity.io/"},"Parity Tech")," maintains archive nodes for Polkadot, Kusama, and their test\nnetworks with public endpoints. These endpoints can be used with\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/docs/api"},"Polkadot-JS API")," to interact with their respective chains. The\ntables below list these endpoints."),(0,o.yg)("h3",{id:"network-endpoints"},"Network Endpoints"),(0,o.yg)("p",null,"Endpoints for all production and test networks are listed on the\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI")," which are accessed from\n",(0,o.yg)("a",{parentName:"p",href:"https://github.com/polkadot-js/apps/tree/master/packages/apps-config/src/endpoints"},"here"),".\nEndpoints for Polkadot Relay Chain and Kusama Relay Chain, parachains, and Paseo test network are\nmaintained by the community. System Chains as well as Westend and Rococo test network endpoints\nmaintained by Parity Technologies are listed below:"),(0,o.yg)(l.A,{groupId:"endpoints",values:[{label:"Polkadot System Chains",value:"psc"},{label:"Kusama System Chains",value:"ksc"},{label:"Test Networks",value:"tn"}],mdxType:"Tabs"},(0,o.yg)(i.A,{value:"psc",mdxType:"TabItem"},(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Network"),(0,o.yg)("th",{parentName:"tr",align:null},"WSS Endpoint"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Asset Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-asset-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Bridge Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-bridge-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Collectives"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-collectives-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"People Chain"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://polkadot-people-rpc.polkadot.io"))))),(0,o.yg)(i.A,{value:"ksc",mdxType:"TabItem"},(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Network"),(0,o.yg)("th",{parentName:"tr",align:null},"WSS Endpoint"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Asset Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-asset-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Bridge Hub"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-bridge-hub-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Collectives"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-collectives-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"People Chain"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-people-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Coretime Chain"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://kusama-coretime-rpc.polkadot.io"))))),(0,o.yg)(i.A,{value:"tn",mdxType:"TabItem"},(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Network"),(0,o.yg)("th",{parentName:"tr",align:null},"WSS Endpoint"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Westend"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://westend-rpc.polkadot.io")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},"Rococo"),(0,o.yg)("td",{parentName:"tr",align:null},"wss://rococo-rpc.polkadot.io")))))),(0,o.yg)("h4",{id:"example-usage-with-polkadot-js-api"},"Example usage with Polkadot-JS API"),(0,o.yg)("p",null,"To connect to the Parity node for the Polkadot Asset Hub, use the endpoint in your JavaScript apps\nlike so:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript",metastring:"{5}","{5}":!0},"// Using the Polkadot Mainnet Endpoint\nconst { ApiPromise, WsProvider } = require('@polkadot/api');\nasync () => {\n // Construct a provider with the endpoint URL\n const provider = new WsProvider('wss://polkadot-asset-hub-rpc.polkadot.io');\n // Create an API instance for Polkadot\n const api = await ApiPromise.create({ provider });\n // ...\n")),(0,o.yg)("h3",{id:"third-party-providers"},"Third Party Providers"),(0,o.yg)("p",null,"There are a number of third-party providers of RPC infrastructure to the Polkadot and Kusama\ncommunities, commonly providing access to multiple networks and parachains in a single service. They\nprovide additional services such as higher rate limits, potentially more reliable and scalable\nservice, and additional metrics."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://onfinality.io"},"OnFinality")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://dwellir.com"},"Dwellir")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://radiumblock.com/"},"Radium Block")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://getblock.io/"},"GetBlock")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://1rpc.io/"},"1RPC")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://nownodes.io/"},"NOWNodes")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.allthatnode.com/"},"All That Node")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.rpc.subquery.network/"},"SubQuery")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://drpc.org/"},"dRPC"))),(0,o.yg)("admonition",{type:"note"},(0,o.yg)("p",{parentName:"admonition"},"The list of third party RPC endpoints above for Polkadot and Kusama is directly fetched from\n",(0,o.yg)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/explorer"},"Polkadot-JS UI"))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f4200fe5.1c8c0f13.js b/assets/js/f4200fe5.1c8c0f13.js new file mode 100644 index 000000000000..5ba3b218c838 --- /dev/null +++ b/assets/js/f4200fe5.1c8c0f13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3135],{15680:(e,a,t)=>{t.d(a,{xA:()=>p,yg:()=>g});var n=t(96540);function o(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var a=1;a=0||(o[t]=e[t]);return o}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=n.createContext({}),u=function(e){var a=n.useContext(s),t=a;return e&&(t="function"==typeof e?e(a):l(l({},a),e)),t},p=function(e){var a=u(e.components);return n.createElement(s.Provider,{value:a},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},m=n.forwardRef((function(e,a){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(t),m=o,g=d["".concat(s,".").concat(m)]||d[m]||c[m]||r;return t?n.createElement(g,l(l({ref:a},p),{},{components:t})):n.createElement(g,l({ref:a},p))}));function g(e,a){var t=arguments,o=a&&a.mdxType;if("string"==typeof e||o){var r=t.length,l=new Array(r);l[0]=m;var i={};for(var s in a)hasOwnProperty.call(a,s)&&(i[s]=a[s]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{t.d(a,{A:()=>l});var n=t(96540),o=t(20053);const r={tabItem:"tabItem_Ymn6"};function l(e){var a=e.children,t=e.hidden,l=e.className;return n.createElement("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,l),hidden:t},a)}},11470:(e,a,t)=>{t.d(a,{A:()=>k});var n=t(58168),o=t(96540),r=t(20053),l=t(23104),i=t(56347),s=t(57485),u=t(31682),p=t(89466);function d(e){return function(e){var a,t;return null!=(a=null==(t=o.Children.map(e,(function(e){if(!e||(0,o.isValidElement)(e)&&(a=e.props)&&"object"==typeof a&&"value"in a)return e;var a;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:t.filter(Boolean))?a:[]}(e).map((function(e){var a=e.props;return{value:a.value,label:a.label,attributes:a.attributes,default:a.default}}))}function c(e){var a=e.values,t=e.children;return(0,o.useMemo)((function(){var e=null!=a?a:d(t);return function(e){var a=(0,u.X)(e,(function(e,a){return e.value===a.value}));if(a.length>0)throw new Error('Docusaurus error: Duplicate values "'+a.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[a,t])}function m(e){var a=e.value;return e.tabValues.some((function(e){return e.value===a}))}function g(e){var a=e.queryString,t=void 0!==a&&a,n=e.groupId,r=(0,i.W6)(),l=function(e){var a=e.queryString,t=void 0!==a&&a,n=e.groupId;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:t,groupId:n});return[(0,s.aZ)(l),(0,o.useCallback)((function(e){if(l){var a=new URLSearchParams(r.location.search);a.set(l,e),r.replace(Object.assign({},r.location,{search:a.toString()}))}}),[l,r])]}function y(e){var a,t,n,r,l=e.defaultValue,i=e.queryString,s=void 0!==i&&i,u=e.groupId,d=c(e),y=(0,o.useState)((function(){return function(e){var a,t=e.defaultValue,n=e.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+t+'" but none of its children has the corresponding value. Available values are: '+n.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return t}var o=null!=(a=n.find((function(e){return e.default})))?a:n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:l,tabValues:d})})),h=y[0],b=y[1],f=g({queryString:s,groupId:u}),N=f[0],v=f[1],k=(a=function(e){return e?"docusaurus.tab."+e:null}({groupId:u}.groupId),t=(0,p.Dv)(a),n=t[0],r=t[1],[n,(0,o.useCallback)((function(e){a&&r.set(e)}),[a,r])]),w=k[0],A=k[1],T=function(){var e=null!=N?N:w;return m({value:e,tabValues:d})?e:null}();return(0,o.useLayoutEffect)((function(){T&&b(T)}),[T]),{selectedValue:h,selectValue:(0,o.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);b(e),v(e),A(e)}),[v,A,d]),tabValues:d}}var h=t(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function f(e){var a=e.className,t=e.block,i=e.selectedValue,s=e.selectValue,u=e.tabValues,p=[],d=(0,l.a_)().blockElementScrollPositionUntilNextRender,c=function(e){var a=e.currentTarget,t=p.indexOf(a),n=u[t].value;n!==i&&(d(a),s(n))},m=function(e){var a,t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":var n,o=p.indexOf(e.currentTarget)+1;t=null!=(n=p[o])?n:p[0];break;case"ArrowLeft":var r,l=p.indexOf(e.currentTarget)-1;t=null!=(r=p[l])?r:p[p.length-1]}null==(a=t)||a.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":t},a)},u.map((function(e){var a=e.value,t=e.label,l=e.attributes;return o.createElement("li",(0,n.A)({role:"tab",tabIndex:i===a?0:-1,"aria-selected":i===a,key:a,ref:function(e){return p.push(e)},onKeyDown:m,onClick:c},l,{className:(0,r.A)("tabs__item",b.tabItem,null==l?void 0:l.className,{"tabs__item--active":i===a})}),null!=t?t:a)})))}function N(e){var a=e.lazy,t=e.children,n=e.selectedValue,r=(Array.isArray(t)?t:[t]).filter(Boolean);if(a){var l=r.find((function(e){return e.props.value===n}));return l?(0,o.cloneElement)(l,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},r.map((function(e,a){return(0,o.cloneElement)(e,{key:a,hidden:e.props.value!==n})})))}function v(e){var a=y(e);return o.createElement("div",{className:(0,r.A)("tabs-container",b.tabList)},o.createElement(f,(0,n.A)({},e,a)),o.createElement(N,(0,n.A)({},e,a)))}function k(e){var a=(0,h.A)();return o.createElement(v,(0,n.A)({key:String(a)},e))}},24817:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>p,default:()=>h,frontMatter:()=>u,metadata:()=>d,toc:()=>m});var n=t(58168),o=t(98587),r=(t(96540),t(15680)),l=t(11470),i=t(19365),s=["components"],u={id:"maintain-sync",title:"Set up a Full Node",sidebar_label:"Set up a Full Node",description:"Steps on how to set up a full node.",keywords:["node","full node","sync","setup node"],slug:"../maintain-sync"},p=void 0,d={unversionedId:"maintain/maintain-sync",id:"maintain/maintain-sync",title:"Set up a Full Node",description:"Steps on how to set up a full node.",source:"@site/../docs/maintain/maintain-sync.md",sourceDirName:"maintain",slug:"/maintain-sync",permalink:"/docs/maintain-sync",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/maintain/maintain-sync.md",tags:[],version:"current",lastUpdatedBy:"Diego",lastUpdatedAt:1726152378,formattedLastUpdatedAt:"Sep 12, 2024",frontMatter:{id:"maintain-sync",title:"Set up a Full Node",sidebar_label:"Set up a Full Node",description:"Steps on how to set up a full node.",keywords:["node","full node","sync","setup node"],slug:"../maintain-sync"},sidebar:"docs",previous:{title:"Node Endpoints",permalink:"/docs/maintain-endpoints"},next:{title:"Set up a Boot Node",permalink:"/docs/maintain-bootnode"}},c={},m=[{value:"Types of Nodes",id:"types-of-nodes",level:3},{value:"Setup Instructions",id:"setup-instructions",level:2},{value:"Debian-based (Debian, Ubuntu)",id:"debian-based-debian-ubuntu",level:3},{value:"RPM-based (Fedora, CentOS)",id:"rpm-based-fedora-centos",level:3},{value:"Get Substrate",id:"get-substrate",level:2},{value:"Clone and Build",id:"clone-and-build",level:2},{value:"Run",id:"run",level:2},{value:"Running an Archive Node",id:"running-an-archive-node",level:2},{value:"Using Docker",id:"using-docker",level:2}],g={toc:m},y="wrapper";function h(e){var a=e.components,t=(0,o.A)(e,s);return(0,r.yg)(y,(0,n.A)({},g,t,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("p",null,"If you're building dApps or products on a Substrate-based chain like Polkadot, Kusama, or a custom\nSubstrate implementation, you want the ability to run a node-as-a-back-end. After all, relying on\nyour infrastructure is always better than a third-party-hosted one in this brave new decentralized\nworld."),(0,r.yg)("p",null,"This guide will show you how to connect to ",(0,r.yg)("a",{parentName:"p",href:"https://polkadot.network/"},"Polkadot network"),", but the\nsame process applies to any other ",(0,r.yg)("a",{parentName:"p",href:"https://substrate.io"},"Substrate"),"-based chain. First, let's\nclarify the term ",(0,r.yg)("em",{parentName:"p"},"full node"),"."),(0,r.yg)("h3",{id:"types-of-nodes"},"Types of Nodes"),(0,r.yg)("p",null,"A blockchain's growth comes from a ",(0,r.yg)("em",{parentName:"p"},"genesis block"),", ",(0,r.yg)("em",{parentName:"p"},"extrinsics"),", and ",(0,r.yg)("em",{parentName:"p"},"events"),"."),(0,r.yg)("p",null,"When a validator seals block 1, it takes the blockchain's state at block 0. It then applies all\npending changes on top of it and emits the events resulting from these changes. Later, the chain\u2019s\nstate at block one is used the same way to build the chain\u2019s state at block 2, and so on. Once\ntwo-thirds of the validators agree on a specific block being valid, it is finalized."),(0,r.yg)("p",null,"An ",(0,r.yg)("strong",{parentName:"p"},"archive node")," keeps all the past blocks and their states. An archive node makes it convenient\nto query the past state of the chain at any point in time. Finding out what an account's balance at\na particular block was or which extrinsics resulted in a specific state change are fast operations\nwhen using an archive node. However, an archive node takes up a lot of disk space - around Kusama's\n12 millionth block, this was around 660 GB."),(0,r.yg)("admonition",{type:"tip"},(0,r.yg)("p",{parentName:"admonition"},"On the ",(0,r.yg)("a",{parentName:"p",href:"https://paranodes.io/DBSize"},"Paranodes")," or ",(0,r.yg)("a",{parentName:"p",href:"https://stakeworld.io/docs/dbsize"},"Stakeworld"),"\nwebsites, you can find lists of the database sizes of Polkadot and Kusama nodes.")),(0,r.yg)("p",null,"Archive nodes are used by utilities that need past information - like block explorers, council\nscanners, discussion platforms like ",(0,r.yg)("a",{parentName:"p",href:"https://polkassembly.io"},"Polkassembly"),", and others. They need\nto be able to look at past on-chain data."),(0,r.yg)("p",null,"A ",(0,r.yg)("strong",{parentName:"p"},"full node")," prunes historical states: all finalized blocks' states older than a configurable\nnumber except the genesis block's state. This is 256 blocks from the last finalized one by default.\nA pruned node this way requires much less space than an archive node."),(0,r.yg)("p",null,"A full node could eventually rebuild every block's state without additional information and become\nan archive node. This still needs to be implemented at the time of writing. If you need to query\nhistorical blocks' states past what you pruned, you must purge your database and resync your node,\nstarting in archive mode. Alternatively, you can use a backup or snapshot of a trusted source to\navoid needing to sync from genesis with the network and only need the states of blocks past that\nsnapshot."),(0,r.yg)("p",null,"Full nodes allow you to read the current state of the chain and to submit and validate extrinsics\ndirectly on the network without relying on a centralized infrastructure provider."),(0,r.yg)("p",null,"Another type of node is a ",(0,r.yg)("strong",{parentName:"p"},"light node"),". A light node has only the runtime and the current state\nbut does not store past blocks and so cannot read historical data without requesting it from a node\nthat has it. Light nodes are useful for resource-restricted devices. An interesting use-case of\nlight nodes is a browser extension, which is a node in its own right, running the runtime in WASM\nformat, as well as a full or light node that is completely encapsulated in WASM and can be\nintegrated into web apps: ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/smol-dot/smoldot"},"https://github.com/smol-dot/smoldot"),"."),(0,r.yg)("admonition",{title:"Substrate Connect",type:"note"},(0,r.yg)("p",{parentName:"admonition"},(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/substrate-connect"},"Substrate Connect")," provides a way to interact with\nsubstrate-based blockchains in the browser without using an RPC server. It is a light node that runs\nentirely in Javascript. Substrate Connect uses a\n",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/smoldot"},"smoldot WASM light client")," to securely connect to the\nblockchain network without relying on specific 3rd parties. Substrate Connect is available on Chrome\nand Firefox as a ",(0,r.yg)("a",{parentName:"p",href:"https://substrate.io/developers/substrate-connect/"},"browser extension"),".")),(0,r.yg)("hr",null),(0,r.yg)("h2",{id:"setup-instructions"},"Setup Instructions"),(0,r.yg)("p",null,"This is not recommended if you're a validator. Please see the\n",(0,r.yg)("a",{parentName:"p",href:"/docs/maintain-guides-secure-validator"},"secure validator setup")," if you are running validator."),(0,r.yg)("admonition",{type:"note"},(0,r.yg)("mdxAdmonitionTitle",{parentName:"admonition"},"The bash commands that are provided to run against ",(0,r.yg)("strong",{parentName:"mdxAdmonitionTitle"},"your node")," use ",(0,r.yg)("inlineCode",{parentName:"mdxAdmonitionTitle"},"Polkadot")," as the"),(0,r.yg)("p",{parentName:"admonition"},"default chain"),(0,r.yg)("p",{parentName:"admonition"},"Use the ",(0,r.yg)("inlineCode",{parentName:"p"},"--chain")," flag if you follow the setup instructions to setup a ",(0,r.yg)("inlineCode",{parentName:"p"},"Kusama")," node. For example:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name" --chain kusama\n'))),(0,r.yg)(l.A,{groupId:"operating-systems",values:[{label:"macOS",value:"mac"},{label:"Windows",value:"win"},{label:"Linux (standalone)",value:"linux-standalone"},{label:"Linux (package)",value:"linux-package"}],mdxType:"Tabs"},(0,r.yg)(i.A,{value:"mac",mdxType:"TabItem"},(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install Homebrew within the terminal by running:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Then, run:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"brew install openssl cmake llvm protobuf\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install Rust by running:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"After Rust is installed, update and add the nightly version:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"# Ensure the current shell has cargo\nsource ~/.cargo/env\n\n# Update the Rust toolchain\nrustup default stable\nrustup update\n\n# Add the nightly and WebAssembly targets:\nrustup update nightly\nrustup target add wasm32-unknown-unknown --toolchain nightly\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Verify your installation by running the following:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rustup show\n\n# You should see output similar to:\n\nactive toolchain\n----------------\n\nstable-aarch64-apple-darwin (default)\nrustc 1.68.1 (8460ca823 2023-03-20)\n")),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rustup +nightly show\n\n# You should see output similar to:\n\ninstalled targets for active toolchain\n--------------------------------------\n\naarch64-apple-darwin\nwasm32-unknown-unknown\n\nactive toolchain\n----------------\n\nnightly-aarch64-apple-darwin (overridden by +toolchain on the command line)\nrustc 1.71.0-nightly (9ecda8de8 2023-04-30)\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Once Rust is configured, run the following command to clone and build the Polkadot code:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/paritytech/polkadot-sdk polkadot-sdk\ncd polkadot-sdk\n./scripts/init.sh\ncargo build --release\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Start your node:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Find your node on ",(0,r.yg)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot"},"Telemetry"))))),(0,r.yg)(i.A,{value:"win",mdxType:"TabItem"},(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install ",(0,r.yg)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/windows/wsl/install-win10"},"WSL"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install ",(0,r.yg)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/windows/wsl/install-win10"},"Ubuntu")," (same webpage).")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Determine the latest version of the\n",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/tree/master/polkadot/releases"},"Polkadot binary"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Download the correct Polkadot binary within Ubuntu by running the following command. Replace\n",(0,r.yg)("inlineCode",{parentName:"p"},"*VERSION*")," with the tag of the latest version from the last step (e.g. ",(0,r.yg)("inlineCode",{parentName:"p"},"v0.8.22"),"):"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"curl -sL https://github.com/paritytech/polkadot-sdk/releases/download/*VERSION*/polkadot -o polkadot\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Then, run the following:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo chmod +x polkadot\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Start your node:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./polkadot --name "Your Node\'s Name"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Find your node on ",(0,r.yg)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot"},"Telemetry"))))),(0,r.yg)(i.A,{value:"linux-standalone",mdxType:"TabItem"},(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Determine the latest version of the\n",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/releases"},"Polkadot binary"),"."),(0,r.yg)("admonition",{parentName:"li",type:"info"},(0,r.yg)("p",{parentName:"admonition"},"The nature of pre-built binaries means that they may not work on your particular architecture or\nLinux distribution. If you see an error like ",(0,r.yg)("inlineCode",{parentName:"p"},"cannot execute binary file: Exec format error")," it\nlikely means the binary is not compatible with your system. You will either need to compile the\n",(0,r.yg)("a",{parentName:"p",href:"#clone-and-build"},(0,r.yg)("strong",{parentName:"a"},"source code"))," or use ",(0,r.yg)("a",{parentName:"p",href:"#using-docker"},(0,r.yg)("strong",{parentName:"a"},"Docker")),"."))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Download the correct Polkadot binary within Ubuntu by running the following command. Replace\n",(0,r.yg)("inlineCode",{parentName:"p"},"*VERSION*")," with the tag of the latest version from the last step (e.g. ",(0,r.yg)("inlineCode",{parentName:"p"},"v0.8.22"),"):"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"curl -sL https://github.com/paritytech/polkadot-sdk/releases/download/*VERSION*/polkadot -o polkadot\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Run the following: ",(0,r.yg)("inlineCode",{parentName:"p"},"sudo chmod +x polkadot"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Run the following:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Find your node on ",(0,r.yg)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot"},"Telemetry"))))),(0,r.yg)(i.A,{value:"linux-package",mdxType:"TabItem"},(0,r.yg)("p",null,"You can also install Polkadot from one of our package repositories."),(0,r.yg)("p",null,"Installation from the Debian or rpm repositories will create a ",(0,r.yg)("inlineCode",{parentName:"p"},"systemd")," service that can be used to\nrun a Polkadot node. The service is disabled by default, and can be started by running\n",(0,r.yg)("inlineCode",{parentName:"p"},"systemctl start polkadot")," on demand (use ",(0,r.yg)("inlineCode",{parentName:"p"},"systemctl enable polkadot")," to make it auto-start after\nreboot). By default, it will run as the ",(0,r.yg)("inlineCode",{parentName:"p"},"polkadot")," user. Command-line flags passed to the binary can\nbe customized by editing ",(0,r.yg)("inlineCode",{parentName:"p"},"/etc/default/polkadot"),". This file will not be overwritten on updating\npolkadot."),(0,r.yg)("h3",{id:"debian-based-debian-ubuntu"},"Debian-based (Debian, Ubuntu)"),(0,r.yg)("p",null,"Currently supports Debian 10 (Buster) and Ubuntu 20.04 (Focal), and derivatives. Run the following\ncommands as the ",(0,r.yg)("inlineCode",{parentName:"p"},"root")," user."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"# Import the security@parity.io GPG key\ngpg --recv-keys --keyserver hkps://keys.mailvelope.com 9D4B2B6EB8F97156D19669A9FF0812D491B96798\ngpg --export 9D4B2B6EB8F97156D19669A9FF0812D491B96798 > /usr/share/keyrings/parity.gpg\n# Add the Parity repository and update the package index\necho 'deb [signed-by=/usr/share/keyrings/parity.gpg] https://releases.parity.io/deb release main' > /etc/apt/sources.list.d/parity.list\napt update\n# Install the `parity-keyring` package - This will ensure the GPG key\n# used by APT remains up-to-date\napt install parity-keyring\n# Install polkadot\napt install polkadot\n\n")),(0,r.yg)("p",null,"If you don't want polkadot package to be automatically updated when you update packages on your\nserver, you can issue the following command:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo apt-mark hold polkadot\n")),(0,r.yg)("h3",{id:"rpm-based-fedora-centos"},"RPM-based (Fedora, CentOS)"),(0,r.yg)("p",null,"Currently supports Fedora 32 and CentOS 8, and derivatives."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"# Install dnf-plugins-core (This might already be installed)\ndnf install dnf-plugins-core\n# Add the repository and enable it\ndnf config-manager --add-repo https://releases.parity.io/rpm/polkadot.repo\ndnf config-manager --set-enabled polkadot\n# Install polkadot (You may have to confirm the import of the GPG key, which\n# should have the following fingerprint: 9D4B2B6EB8F97156D19669A9FF0812D491B96798)\ndnf install polkadot\n")),(0,r.yg)("admonition",{type:"info"},(0,r.yg)("p",{parentName:"admonition"},"If you choose to use a custom folder for the polkadot home by passing ",(0,r.yg)("inlineCode",{parentName:"p"},"--base-path '/custom-path'"),",\nyou will need to issue following command:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo mkdir /etc/systemd/system/polkadot.service.d\n")),(0,r.yg)("p",{parentName:"admonition"},"And create a new file inside this folder:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo -e /etc/systemd/system/polkadot.service.d/custom.conf\n")),(0,r.yg)("p",{parentName:"admonition"},"With the following content:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre"},"[Service]\nReadWritePaths=/custom-path\n")),(0,r.yg)("p",{parentName:"admonition"},"And finally issue a reload to have your modifications applied by systemd:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"systemctl daemon-reload\n"))))),(0,r.yg)("h2",{id:"get-substrate"},"Get Substrate"),(0,r.yg)("p",null,"Follow instructions as outlined ",(0,r.yg)("a",{parentName:"p",href:"https://docs.substrate.io/quick-start/"},"here")," - note that Windows\nusers will have their work cut out for them. It's better to use a virtual machine instead."),(0,r.yg)("p",null,"Test if the installation was successful by running ",(0,r.yg)("inlineCode",{parentName:"p"},"cargo --version"),"."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"\u03bb cargo --version\ncargo 1.41.0 (626f0f40e 2019-12-03)\n")),(0,r.yg)("h2",{id:"clone-and-build"},"Clone and Build"),(0,r.yg)("p",null,"The ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/tree/master/polkadot"},"paritytech/polkadot")," repo's\nmaster branch contains the latest Polkadot code."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/paritytech/polkadot-sdk polkadot-sdk\ncd polkadot-sdk\n./scripts/init.sh\ncargo build --release\n")),(0,r.yg)("p",null,"Alternatively, if you wish to use a specific release, you can check out a specific tag (",(0,r.yg)("inlineCode",{parentName:"p"},"v0.8.3")," in\nthe example below):"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/paritytech/polkadot-sdk polkadot-sdk\ncd polkadot-sdk\ngit checkout tags/polkadot-v1.9.0\n./scripts/init.sh\ncargo build --release\n")),(0,r.yg)("h2",{id:"run"},"Run"),(0,r.yg)("p",null,"The built binary will be in the ",(0,r.yg)("inlineCode",{parentName:"p"},"target/release")," folder, called ",(0,r.yg)("inlineCode",{parentName:"p"},"polkadot"),"."),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Polkadot"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name"\n')),(0,r.yg)("p",null,"Use the ",(0,r.yg)("inlineCode",{parentName:"p"},"--help")," flag to determine which flags you can use when running the node. For example, if\n",(0,r.yg)("a",{parentName:"p",href:"/docs/maintain-wss"},"connecting to your node remotely"),", you'll probably want to use ",(0,r.yg)("inlineCode",{parentName:"p"},"--rpc-external"),"\nand ",(0,r.yg)("inlineCode",{parentName:"p"},"--rpc-cors all"),"."),(0,r.yg)("p",null,"The syncing process will take a while, depending on your capacity, processing power, disk speed and\nRAM. On a \\$10 DigitalOcean droplet, the process can complete in some 36 hours."),(0,r.yg)("p",null,"Congratulations, you're now syncing with Polkadot. Keep in mind that the process is identical when\nusing any other Substrate chain."),(0,r.yg)("h2",{id:"running-an-archive-node"},"Running an Archive Node"),(0,r.yg)("p",null,"When running as a simple sync node (above), only the state of the past 256 blocks will be kept. It\ndefaults to ",(0,r.yg)("a",{parentName:"p",href:"#types-of-nodes"},"archive mode")," when validating. To support the full state, use the\n",(0,r.yg)("inlineCode",{parentName:"p"},"--pruning")," flag:"),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Polkadot"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "My node\'s name" --pruning archive\n')),(0,r.yg)("p",null,"It is possible to almost quadruple synchronization speed by using an additional flag:\n",(0,r.yg)("inlineCode",{parentName:"p"},"--wasm-execution Compiled"),". Note that this uses much more CPU and RAM, so it should be turned off\nafter the node syncs."),(0,r.yg)("h2",{id:"using-docker"},"Using Docker"),(0,r.yg)("p",null,"Finally, you can use Docker to run your node in a container. Doing this is more advanced, so it's\nbest left up to those already familiar with docker or who have completed the other set-up\ninstructions in this guide. Be aware that when you run polkadot in docker, the process only listens\non localhost by default. If you would like to connect to your node's services (rpc, and prometheus)\nyou need to ensure that you run you node with the ",(0,r.yg)("inlineCode",{parentName:"p"},"--rpc-external"),", and ",(0,r.yg)("inlineCode",{parentName:"p"},"--prometheus-external"),"\ncommands."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-zsh"},'docker run -p 9944:9944 -p 9615:9615 parity/polkadot:v0.9.13 --name "calling_home_from_a_docker_container" --rpc-external --prometheus-external\n')))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f4200fe5.7125522a.js b/assets/js/f4200fe5.7125522a.js deleted file mode 100644 index cda1a47e9ff9..000000000000 --- a/assets/js/f4200fe5.7125522a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3135],{15680:(e,a,t)=>{t.d(a,{xA:()=>p,yg:()=>g});var n=t(96540);function o(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var a=1;a=0||(o[t]=e[t]);return o}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=n.createContext({}),u=function(e){var a=n.useContext(s),t=a;return e&&(t="function"==typeof e?e(a):l(l({},a),e)),t},p=function(e){var a=u(e.components);return n.createElement(s.Provider,{value:a},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},m=n.forwardRef((function(e,a){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(t),m=o,g=d["".concat(s,".").concat(m)]||d[m]||c[m]||r;return t?n.createElement(g,l(l({ref:a},p),{},{components:t})):n.createElement(g,l({ref:a},p))}));function g(e,a){var t=arguments,o=a&&a.mdxType;if("string"==typeof e||o){var r=t.length,l=new Array(r);l[0]=m;var i={};for(var s in a)hasOwnProperty.call(a,s)&&(i[s]=a[s]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{t.d(a,{A:()=>l});var n=t(96540),o=t(20053);const r={tabItem:"tabItem_Ymn6"};function l(e){var a=e.children,t=e.hidden,l=e.className;return n.createElement("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,l),hidden:t},a)}},11470:(e,a,t)=>{t.d(a,{A:()=>k});var n=t(58168),o=t(96540),r=t(20053),l=t(23104),i=t(56347),s=t(57485),u=t(31682),p=t(89466);function d(e){return function(e){var a,t;return null!=(a=null==(t=o.Children.map(e,(function(e){if(!e||(0,o.isValidElement)(e)&&(a=e.props)&&"object"==typeof a&&"value"in a)return e;var a;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:t.filter(Boolean))?a:[]}(e).map((function(e){var a=e.props;return{value:a.value,label:a.label,attributes:a.attributes,default:a.default}}))}function c(e){var a=e.values,t=e.children;return(0,o.useMemo)((function(){var e=null!=a?a:d(t);return function(e){var a=(0,u.X)(e,(function(e,a){return e.value===a.value}));if(a.length>0)throw new Error('Docusaurus error: Duplicate values "'+a.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[a,t])}function m(e){var a=e.value;return e.tabValues.some((function(e){return e.value===a}))}function g(e){var a=e.queryString,t=void 0!==a&&a,n=e.groupId,r=(0,i.W6)(),l=function(e){var a=e.queryString,t=void 0!==a&&a,n=e.groupId;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:t,groupId:n});return[(0,s.aZ)(l),(0,o.useCallback)((function(e){if(l){var a=new URLSearchParams(r.location.search);a.set(l,e),r.replace(Object.assign({},r.location,{search:a.toString()}))}}),[l,r])]}function y(e){var a,t,n,r,l=e.defaultValue,i=e.queryString,s=void 0!==i&&i,u=e.groupId,d=c(e),y=(0,o.useState)((function(){return function(e){var a,t=e.defaultValue,n=e.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+t+'" but none of its children has the corresponding value. Available values are: '+n.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return t}var o=null!=(a=n.find((function(e){return e.default})))?a:n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:l,tabValues:d})})),h=y[0],b=y[1],f=g({queryString:s,groupId:u}),N=f[0],v=f[1],k=(a=function(e){return e?"docusaurus.tab."+e:null}({groupId:u}.groupId),t=(0,p.Dv)(a),n=t[0],r=t[1],[n,(0,o.useCallback)((function(e){a&&r.set(e)}),[a,r])]),w=k[0],A=k[1],T=function(){var e=null!=N?N:w;return m({value:e,tabValues:d})?e:null}();return(0,o.useLayoutEffect)((function(){T&&b(T)}),[T]),{selectedValue:h,selectValue:(0,o.useCallback)((function(e){if(!m({value:e,tabValues:d}))throw new Error("Can't select invalid tab value="+e);b(e),v(e),A(e)}),[v,A,d]),tabValues:d}}var h=t(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function f(e){var a=e.className,t=e.block,i=e.selectedValue,s=e.selectValue,u=e.tabValues,p=[],d=(0,l.a_)().blockElementScrollPositionUntilNextRender,c=function(e){var a=e.currentTarget,t=p.indexOf(a),n=u[t].value;n!==i&&(d(a),s(n))},m=function(e){var a,t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":var n,o=p.indexOf(e.currentTarget)+1;t=null!=(n=p[o])?n:p[0];break;case"ArrowLeft":var r,l=p.indexOf(e.currentTarget)-1;t=null!=(r=p[l])?r:p[p.length-1]}null==(a=t)||a.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":t},a)},u.map((function(e){var a=e.value,t=e.label,l=e.attributes;return o.createElement("li",(0,n.A)({role:"tab",tabIndex:i===a?0:-1,"aria-selected":i===a,key:a,ref:function(e){return p.push(e)},onKeyDown:m,onClick:c},l,{className:(0,r.A)("tabs__item",b.tabItem,null==l?void 0:l.className,{"tabs__item--active":i===a})}),null!=t?t:a)})))}function N(e){var a=e.lazy,t=e.children,n=e.selectedValue,r=(Array.isArray(t)?t:[t]).filter(Boolean);if(a){var l=r.find((function(e){return e.props.value===n}));return l?(0,o.cloneElement)(l,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},r.map((function(e,a){return(0,o.cloneElement)(e,{key:a,hidden:e.props.value!==n})})))}function v(e){var a=y(e);return o.createElement("div",{className:(0,r.A)("tabs-container",b.tabList)},o.createElement(f,(0,n.A)({},e,a)),o.createElement(N,(0,n.A)({},e,a)))}function k(e){var a=(0,h.A)();return o.createElement(v,(0,n.A)({key:String(a)},e))}},24817:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>p,default:()=>h,frontMatter:()=>u,metadata:()=>d,toc:()=>m});var n=t(58168),o=t(98587),r=(t(96540),t(15680)),l=t(11470),i=t(19365),s=["components"],u={id:"maintain-sync",title:"Set up a Full Node",sidebar_label:"Set up a Full Node",description:"Steps on how to set up a full node.",keywords:["node","full node","sync","setup node"],slug:"../maintain-sync"},p=void 0,d={unversionedId:"maintain/maintain-sync",id:"maintain/maintain-sync",title:"Set up a Full Node",description:"Steps on how to set up a full node.",source:"@site/../docs/maintain/maintain-sync.md",sourceDirName:"maintain",slug:"/maintain-sync",permalink:"/docs/maintain-sync",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/maintain/maintain-sync.md",tags:[],version:"current",lastUpdatedBy:"github-actions[bot]",lastUpdatedAt:1712558849,formattedLastUpdatedAt:"Apr 8, 2024",frontMatter:{id:"maintain-sync",title:"Set up a Full Node",sidebar_label:"Set up a Full Node",description:"Steps on how to set up a full node.",keywords:["node","full node","sync","setup node"],slug:"../maintain-sync"},sidebar:"docs",previous:{title:"Node Endpoints",permalink:"/docs/maintain-endpoints"},next:{title:"Set up a Boot Node",permalink:"/docs/maintain-bootnode"}},c={},m=[{value:"Types of Nodes",id:"types-of-nodes",level:3},{value:"Setup Instructions",id:"setup-instructions",level:2},{value:"Debian-based (Debian, Ubuntu)",id:"debian-based-debian-ubuntu",level:3},{value:"RPM-based (Fedora, CentOS)",id:"rpm-based-fedora-centos",level:3},{value:"Get Substrate",id:"get-substrate",level:2},{value:"Clone and Build",id:"clone-and-build",level:2},{value:"Run",id:"run",level:2},{value:"Running an Archive Node",id:"running-an-archive-node",level:2},{value:"Using Docker",id:"using-docker",level:2}],g={toc:m},y="wrapper";function h(e){var a=e.components,t=(0,o.A)(e,s);return(0,r.yg)(y,(0,n.A)({},g,t,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("p",null,"If you're building dApps or products on a Substrate-based chain like Polkadot, Kusama, or a custom\nSubstrate implementation, you want the ability to run a node-as-a-back-end. After all, relying on\nyour infrastructure is always better than a third-party-hosted one in this brave new decentralized\nworld."),(0,r.yg)("p",null,"This guide will show you how to connect to ",(0,r.yg)("a",{parentName:"p",href:"https://polkadot.network/"},"Polkadot network"),", but the\nsame process applies to any other ",(0,r.yg)("a",{parentName:"p",href:"https://substrate.io"},"Substrate"),"-based chain. First, let's\nclarify the term ",(0,r.yg)("em",{parentName:"p"},"full node"),"."),(0,r.yg)("h3",{id:"types-of-nodes"},"Types of Nodes"),(0,r.yg)("p",null,"A blockchain's growth comes from a ",(0,r.yg)("em",{parentName:"p"},"genesis block"),", ",(0,r.yg)("em",{parentName:"p"},"extrinsics"),", and ",(0,r.yg)("em",{parentName:"p"},"events"),"."),(0,r.yg)("p",null,"When a validator seals block 1, it takes the blockchain's state at block 0. It then applies all\npending changes on top of it and emits the events resulting from these changes. Later, the chain\u2019s\nstate at block one is used the same way to build the chain\u2019s state at block 2, and so on. Once\ntwo-thirds of the validators agree on a specific block being valid, it is finalized."),(0,r.yg)("p",null,"An ",(0,r.yg)("strong",{parentName:"p"},"archive node")," keeps all the past blocks and their states. An archive node makes it convenient\nto query the past state of the chain at any point in time. Finding out what an account's balance at\na particular block was or which extrinsics resulted in a specific state change are fast operations\nwhen using an archive node. However, an archive node takes up a lot of disk space - around Kusama's\n12 millionth block, this was around 660 GB."),(0,r.yg)("admonition",{type:"tip"},(0,r.yg)("p",{parentName:"admonition"},"On the ",(0,r.yg)("a",{parentName:"p",href:"https://paranodes.io/DBSize"},"Paranodes")," or ",(0,r.yg)("a",{parentName:"p",href:"https://stakeworld.io/docs/dbsize"},"Stakeworld"),"\nwebsites, you can find lists of the database sizes of Polkadot and Kusama nodes.")),(0,r.yg)("p",null,"Archive nodes are used by utilities that need past information - like block explorers, council\nscanners, discussion platforms like ",(0,r.yg)("a",{parentName:"p",href:"https://polkassembly.io"},"Polkassembly"),", and others. They need\nto be able to look at past on-chain data."),(0,r.yg)("p",null,"A ",(0,r.yg)("strong",{parentName:"p"},"full node")," prunes historical states: all finalized blocks' states older than a configurable\nnumber except the genesis block's state. This is 256 blocks from the last finalized one by default.\nA pruned node this way requires much less space than an archive node."),(0,r.yg)("p",null,"A full node could eventually rebuild every block's state without additional information and become\nan archive node. This still needs to be implemented at the time of writing. If you need to query\nhistorical blocks' states past what you pruned, you must purge your database and resync your node,\nstarting in archive mode. Alternatively, you can use a backup or snapshot of a trusted source to\navoid needing to sync from genesis with the network and only need the states of blocks past that\nsnapshot."),(0,r.yg)("p",null,"Full nodes allow you to read the current state of the chain and to submit and validate extrinsics\ndirectly on the network without relying on a centralized infrastructure provider."),(0,r.yg)("p",null,"Another type of node is a ",(0,r.yg)("strong",{parentName:"p"},"light node"),". A light node has only the runtime and the current state\nbut does not store past blocks and so cannot read historical data without requesting it from a node\nthat has it. Light nodes are useful for resource-restricted devices. An interesting use-case of\nlight nodes is a browser extension, which is a node in its own right, running the runtime in WASM\nformat, as well as a full or light node that is completely encapsulated in WASM and can be\nintegrated into web apps: ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/smoldot#wasm-light-node"},"https://github.com/paritytech/smoldot#wasm-light-node"),"."),(0,r.yg)("admonition",{title:"Substrate Connect",type:"note"},(0,r.yg)("p",{parentName:"admonition"},(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/substrate-connect"},"Substrate Connect")," provides a way to interact with\nsubstrate-based blockchains in the browser without using an RPC server. It is a light node that runs\nentirely in Javascript. Substrate Connect uses a\n",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/smoldot"},"smoldot WASM light client")," to securely connect to the\nblockchain network without relying on specific 3rd parties. Substrate Connect is available on Chrome\nand Firefox as a ",(0,r.yg)("a",{parentName:"p",href:"https://substrate.io/developers/substrate-connect/"},"browser extension"),".")),(0,r.yg)("hr",null),(0,r.yg)("h2",{id:"setup-instructions"},"Setup Instructions"),(0,r.yg)("p",null,"This is not recommended if you're a validator. Please see the\n",(0,r.yg)("a",{parentName:"p",href:"/docs/maintain-guides-secure-validator"},"secure validator setup")," if you are running validator."),(0,r.yg)("admonition",{type:"note"},(0,r.yg)("mdxAdmonitionTitle",{parentName:"admonition"},"The bash commands that are provided to run against ",(0,r.yg)("strong",{parentName:"mdxAdmonitionTitle"},"your node")," use ",(0,r.yg)("inlineCode",{parentName:"mdxAdmonitionTitle"},"Polkadot")," as the"),(0,r.yg)("p",{parentName:"admonition"},"default chain"),(0,r.yg)("p",{parentName:"admonition"},"Use the ",(0,r.yg)("inlineCode",{parentName:"p"},"--chain")," flag if you follow the setup instructions to setup a ",(0,r.yg)("inlineCode",{parentName:"p"},"Kusama")," node. For example:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name" --chain kusama\n'))),(0,r.yg)(l.A,{groupId:"operating-systems",values:[{label:"macOS",value:"mac"},{label:"Windows",value:"win"},{label:"Linux (standalone)",value:"linux-standalone"},{label:"Linux (package)",value:"linux-package"}],mdxType:"Tabs"},(0,r.yg)(i.A,{value:"mac",mdxType:"TabItem"},(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install Homebrew within the terminal by running:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Then, run:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"brew install openssl cmake llvm protobuf\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install Rust by running:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"After Rust is installed, update and add the nightly version:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"# Ensure the current shell has cargo\nsource ~/.cargo/env\n\n# Update the Rust toolchain\nrustup default stable\nrustup update\n\n# Add the nightly and WebAssembly targets:\nrustup update nightly\nrustup target add wasm32-unknown-unknown --toolchain nightly\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Verify your installation by running the following:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rustup show\n\n# You should see output similar to:\n\nactive toolchain\n----------------\n\nstable-aarch64-apple-darwin (default)\nrustc 1.68.1 (8460ca823 2023-03-20)\n")),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rustup +nightly show\n\n# You should see output similar to:\n\ninstalled targets for active toolchain\n--------------------------------------\n\naarch64-apple-darwin\nwasm32-unknown-unknown\n\nactive toolchain\n----------------\n\nnightly-aarch64-apple-darwin (overridden by +toolchain on the command line)\nrustc 1.71.0-nightly (9ecda8de8 2023-04-30)\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Once Rust is configured, run the following command to clone and build the Polkadot code:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/paritytech/polkadot-sdk polkadot-sdk\ncd polkadot-sdk\n./scripts/init.sh\ncargo build --release\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Start your node:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Find your node on ",(0,r.yg)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot"},"Telemetry"))))),(0,r.yg)(i.A,{value:"win",mdxType:"TabItem"},(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install ",(0,r.yg)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/windows/wsl/install-win10"},"WSL"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Install ",(0,r.yg)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/windows/wsl/install-win10"},"Ubuntu")," (same webpage).")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Determine the latest version of the\n",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/tree/master/polkadot/releases"},"Polkadot binary"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Download the correct Polkadot binary within Ubuntu by running the following command. Replace\n",(0,r.yg)("inlineCode",{parentName:"p"},"*VERSION*")," with the tag of the latest version from the last step (e.g. ",(0,r.yg)("inlineCode",{parentName:"p"},"v0.8.22"),"):"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"curl -sL https://github.com/paritytech/polkadot-sdk/releases/download/*VERSION*/polkadot -o polkadot\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Then, run the following:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo chmod +x polkadot\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Start your node:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./polkadot --name "Your Node\'s Name"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Find your node on ",(0,r.yg)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot"},"Telemetry"))))),(0,r.yg)(i.A,{value:"linux-standalone",mdxType:"TabItem"},(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Determine the latest version of the\n",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/releases"},"Polkadot binary"),"."),(0,r.yg)("admonition",{parentName:"li",type:"info"},(0,r.yg)("p",{parentName:"admonition"},"The nature of pre-built binaries means that they may not work on your particular architecture or\nLinux distribution. If you see an error like ",(0,r.yg)("inlineCode",{parentName:"p"},"cannot execute binary file: Exec format error")," it\nlikely means the binary is not compatible with your system. You will either need to compile the\n",(0,r.yg)("a",{parentName:"p",href:"#clone-and-build"},(0,r.yg)("strong",{parentName:"a"},"source code"))," or use ",(0,r.yg)("a",{parentName:"p",href:"#using-docker"},(0,r.yg)("strong",{parentName:"a"},"Docker")),"."))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Download the correct Polkadot binary within Ubuntu by running the following command. Replace\n",(0,r.yg)("inlineCode",{parentName:"p"},"*VERSION*")," with the tag of the latest version from the last step (e.g. ",(0,r.yg)("inlineCode",{parentName:"p"},"v0.8.22"),"):"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"curl -sL https://github.com/paritytech/polkadot-sdk/releases/download/*VERSION*/polkadot -o polkadot\n"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Run the following: ",(0,r.yg)("inlineCode",{parentName:"p"},"sudo chmod +x polkadot"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Run the following:"),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name"\n'))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Find your node on ",(0,r.yg)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot"},"Telemetry"))))),(0,r.yg)(i.A,{value:"linux-package",mdxType:"TabItem"},(0,r.yg)("p",null,"You can also install Polkadot from one of our package repositories."),(0,r.yg)("p",null,"Installation from the Debian or rpm repositories will create a ",(0,r.yg)("inlineCode",{parentName:"p"},"systemd")," service that can be used to\nrun a Polkadot node. The service is disabled by default, and can be started by running\n",(0,r.yg)("inlineCode",{parentName:"p"},"systemctl start polkadot")," on demand (use ",(0,r.yg)("inlineCode",{parentName:"p"},"systemctl enable polkadot")," to make it auto-start after\nreboot). By default, it will run as the ",(0,r.yg)("inlineCode",{parentName:"p"},"polkadot")," user. Command-line flags passed to the binary can\nbe customized by editing ",(0,r.yg)("inlineCode",{parentName:"p"},"/etc/default/polkadot"),". This file will not be overwritten on updating\npolkadot."),(0,r.yg)("h3",{id:"debian-based-debian-ubuntu"},"Debian-based (Debian, Ubuntu)"),(0,r.yg)("p",null,"Currently supports Debian 10 (Buster) and Ubuntu 20.04 (Focal), and derivatives. Run the following\ncommands as the ",(0,r.yg)("inlineCode",{parentName:"p"},"root")," user."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"# Import the security@parity.io GPG key\ngpg --recv-keys --keyserver hkps://keys.mailvelope.com 9D4B2B6EB8F97156D19669A9FF0812D491B96798\ngpg --export 9D4B2B6EB8F97156D19669A9FF0812D491B96798 > /usr/share/keyrings/parity.gpg\n# Add the Parity repository and update the package index\necho 'deb [signed-by=/usr/share/keyrings/parity.gpg] https://releases.parity.io/deb release main' > /etc/apt/sources.list.d/parity.list\napt update\n# Install the `parity-keyring` package - This will ensure the GPG key\n# used by APT remains up-to-date\napt install parity-keyring\n# Install polkadot\napt install polkadot\n\n")),(0,r.yg)("p",null,"If you don't want polkadot package to be automatically updated when you update packages on your\nserver, you can issue the following command:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo apt-mark hold polkadot\n")),(0,r.yg)("h3",{id:"rpm-based-fedora-centos"},"RPM-based (Fedora, CentOS)"),(0,r.yg)("p",null,"Currently supports Fedora 32 and CentOS 8, and derivatives."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"# Install dnf-plugins-core (This might already be installed)\ndnf install dnf-plugins-core\n# Add the repository and enable it\ndnf config-manager --add-repo https://releases.parity.io/rpm/polkadot.repo\ndnf config-manager --set-enabled polkadot\n# Install polkadot (You may have to confirm the import of the GPG key, which\n# should have the following fingerprint: 9D4B2B6EB8F97156D19669A9FF0812D491B96798)\ndnf install polkadot\n")),(0,r.yg)("admonition",{type:"info"},(0,r.yg)("p",{parentName:"admonition"},"If you choose to use a custom folder for the polkadot home by passing ",(0,r.yg)("inlineCode",{parentName:"p"},"--base-path '/custom-path'"),",\nyou will need to issue following command:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo mkdir /etc/systemd/system/polkadot.service.d\n")),(0,r.yg)("p",{parentName:"admonition"},"And create a new file inside this folder:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"sudo -e /etc/systemd/system/polkadot.service.d/custom.conf\n")),(0,r.yg)("p",{parentName:"admonition"},"With the following content:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre"},"[Service]\nReadWritePaths=/custom-path\n")),(0,r.yg)("p",{parentName:"admonition"},"And finally issue a reload to have your modifications applied by systemd:"),(0,r.yg)("pre",{parentName:"admonition"},(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"systemctl daemon-reload\n"))))),(0,r.yg)("h2",{id:"get-substrate"},"Get Substrate"),(0,r.yg)("p",null,"Follow instructions as outlined ",(0,r.yg)("a",{parentName:"p",href:"https://docs.substrate.io/quick-start/"},"here")," - note that Windows\nusers will have their work cut out for them. It's better to use a virtual machine instead."),(0,r.yg)("p",null,"Test if the installation was successful by running ",(0,r.yg)("inlineCode",{parentName:"p"},"cargo --version"),"."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"\u03bb cargo --version\ncargo 1.41.0 (626f0f40e 2019-12-03)\n")),(0,r.yg)("h2",{id:"clone-and-build"},"Clone and Build"),(0,r.yg)("p",null,"The ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/tree/master/polkadot"},"paritytech/polkadot")," repo's\nmaster branch contains the latest Polkadot code."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/paritytech/polkadot-sdk polkadot-sdk\ncd polkadot-sdk\n./scripts/init.sh\ncargo build --release\n")),(0,r.yg)("p",null,"Alternatively, if you wish to use a specific release, you can check out a specific tag (",(0,r.yg)("inlineCode",{parentName:"p"},"v0.8.3")," in\nthe example below):"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/paritytech/polkadot-sdk polkadot-sdk\ncd polkadot-sdk\ngit checkout tags/polkadot-v1.9.0\n./scripts/init.sh\ncargo build --release\n")),(0,r.yg)("h2",{id:"run"},"Run"),(0,r.yg)("p",null,"The built binary will be in the ",(0,r.yg)("inlineCode",{parentName:"p"},"target/release")," folder, called ",(0,r.yg)("inlineCode",{parentName:"p"},"polkadot"),"."),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Polkadot"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "Your Node\'s Name"\n')),(0,r.yg)("p",null,"Use the ",(0,r.yg)("inlineCode",{parentName:"p"},"--help")," flag to determine which flags you can use when running the node. For example, if\n",(0,r.yg)("a",{parentName:"p",href:"/docs/maintain-wss"},"connecting to your node remotely"),", you'll probably want to use ",(0,r.yg)("inlineCode",{parentName:"p"},"--rpc-external"),"\nand ",(0,r.yg)("inlineCode",{parentName:"p"},"--rpc-cors all"),"."),(0,r.yg)("p",null,"The syncing process will take a while, depending on your capacity, processing power, disk speed and\nRAM. On a \\$10 DigitalOcean droplet, the process can complete in some 36 hours."),(0,r.yg)("p",null,"Congratulations, you're now syncing with Polkadot. Keep in mind that the process is identical when\nusing any other Substrate chain."),(0,r.yg)("h2",{id:"running-an-archive-node"},"Running an Archive Node"),(0,r.yg)("p",null,"When running as a simple sync node (above), only the state of the past 256 blocks will be kept. It\ndefaults to ",(0,r.yg)("a",{parentName:"p",href:"#types-of-nodes"},"archive mode")," when validating. To support the full state, use the\n",(0,r.yg)("inlineCode",{parentName:"p"},"--pruning")," flag:"),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Polkadot"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'./target/release/polkadot --name "My node\'s name" --pruning archive\n')),(0,r.yg)("p",null,"It is possible to almost quadruple synchronization speed by using an additional flag:\n",(0,r.yg)("inlineCode",{parentName:"p"},"--wasm-execution Compiled"),". Note that this uses much more CPU and RAM, so it should be turned off\nafter the node syncs."),(0,r.yg)("h2",{id:"using-docker"},"Using Docker"),(0,r.yg)("p",null,"Finally, you can use Docker to run your node in a container. Doing this is more advanced, so it's\nbest left up to those already familiar with docker or who have completed the other set-up\ninstructions in this guide. Be aware that when you run polkadot in docker, the process only listens\non localhost by default. If you would like to connect to your node's services (rpc, and prometheus)\nyou need to ensure that you run you node with the ",(0,r.yg)("inlineCode",{parentName:"p"},"--rpc-external"),", and ",(0,r.yg)("inlineCode",{parentName:"p"},"--prometheus-external"),"\ncommands."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-zsh"},'docker run -p 9944:9944 -p 9615:9615 parity/polkadot:v0.9.13 --name "calling_home_from_a_docker_container" --rpc-external --prometheus-external\n')))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.80ec0d1e.js b/assets/js/runtime~main.008b8ced.js similarity index 99% rename from assets/js/runtime~main.80ec0d1e.js rename to assets/js/runtime~main.008b8ced.js index 54727334205c..2e8f77cf22df 100644 --- a/assets/js/runtime~main.80ec0d1e.js +++ b/assets/js/runtime~main.008b8ced.js @@ -1 +1 @@ -(()=>{"use strict";var e,b,a,d,f={},c={};function r(e){var b=c[e];if(void 0!==b)return b.exports;var a=c[e]={id:e,loaded:!1,exports:{}};return f[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=f,e=[],r.O=(b,a,d,f)=>{if(!a){var c=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,d,f]},r.n=e=>{var b=e&&e.__esModule?()=>e.default:()=>e;return r.d(b,{a:b}),b},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var c={};b=b||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~b.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((b=>c[b]=()=>e[b]));return c.default=()=>e,r.d(f,c),f},r.d=(e,b)=>{for(var a in b)r.o(b,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:b[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((b,a)=>(r.f[a](e,b),b)),[])),r.u=e=>"assets/js/"+({159:"b906f375",166:"26dc7bd1",230:"48d75399",319:"a44b8423",352:"e31fc461",417:"6d5c9a28",499:"23210cde",566:"543c9f0a",577:"41b7b3e8",586:"dbc4065c",639:"ffd76171",662:"e495ca4d",710:"797239df",782:"0df78d26",789:"d27ae88d",834:"9f319605",866:"69b97ecd",876:"43ee4f22",885:"25f2bd2a",954:"8b670b2b",981:"73617284",1003:"5355b952",1004:"694672cd",1018:"b0a48d97",1019:"c91a9c06",1042:"31bd35e0",1058:"dc0f9344",1062:"804b1e9f",1067:"a5002e4a",1077:"bd701914",1101:"b225a2ce",1107:"d6a97e7e",1112:"943aba4c",1130:"d01f45b7",1238:"41871d53",1241:"556d3f96",1335:"c78e4f7d",1369:"71ed82b9",1379:"9528ac88",1431:"9f804621",1447:"a7b37b86",1498:"73d1b372",1511:"5193d8a9",1519:"33b0bcab",1539:"78868b16",1540:"fbf58567",1560:"2ea50c63",1608:"3e56470e",1628:"85afe03a",1650:"a4b71220",1658:"5d69d9d4",1699:"4f031749",1706:"a8f54fb1",1710:"feadf832",1711:"cda87995",1724:"afddde9d",1738:"cb9afd28",1772:"72b78d4a",1881:"e00ac272",1888:"c41801b5",1906:"f3027c84",1914:"36b7ae49",1943:"9a679a70",1949:"4a8eb552",1967:"ffe9c3c9",1968:"269bc3bb",2047:"dd2fa029",2138:"1a4e3797",2164:"d9ef69a7",2204:"89a76fd2",2205:"694e7470",2226:"a5b3561d",2244:"12331e8b",2298:"131c7f55",2357:"dc36d550",2368:"fa343ad1",2389:"bf3ab9de",2393:"f0ff685a",2409:"387813b8",2410:"fecdcc34",2481:"db039c7f",2493:"591eca19",2584:"2f3b630e",2598:"09dda9ae",2615:"8d48ec84",2623:"390ca211",2634:"c4f5d8e4",2689:"48074a08",2698:"2e0c35d5",2706:"51fbc2c9",2757:"7fbac68a",2783:"f7acb151",2802:"6f1a81b8",2808:"83d4859f",2916:"bb8b1738",2922:"dbbd9e76",2930:"f44ed8f8",2950:"98a30fd8",2971:"482bfb5c",2980:"d6b0148d",3041:"ad762f86",3044:"da9f79cb",3086:"9e2042f5",3091:"386099fc",3135:"f4200fe5",3170:"3104d5d8",3204:"7266120e",3234:"a2800a5b",3256:"6a04f266",3261:"f750c690",3266:"1646726c",3306:"d42819bc",3315:"e4ef088f",3316:"b9b4ec9e",3368:"efba78c5",3377:"1ed3671a",3423:"3002ebf4",3477:"1d6d4797",3487:"706277b1",3507:"ff6596ea",3536:"77c23c97",3557:"e77078a1",3584:"f2521980",3602:"196e07e8",3642:"f1585bfb",3656:"ad5a1373",3705:"979a04e7",3708:"5c90fc9b",3735:"4403bb94",3751:"1e15616a",3832:"1882e65d",3880:"df154d69",3949:"36051dfe",3975:"b3558274",3976:"3bd77df4",3984:"571c8793",4017:"7e9389ad",4024:"c977dfe8",4051:"f359a251",4061:"73c3bebc",4076:"f2b5c614",4117:"ed3409b3",4168:"6d2ffbf3",4190:"3d1bf5db",4191:"d3a753cf",4228:"d000eb73",4231:"2e944e01",4271:"7dcec981",4293:"c8dd560b",4410:"f2c21b54",4434:"4642ab5c",4479:"320c8a05",4484:"f8518919",4498:"dc776cbc",4537:"2be0d940",4544:"f47489cd",4632:"5136ee31",4661:"19ed4d4c",4739:"0b632434",4791:"8a8a7d05",4817:"b940de31",4840:"6116139f",4841:"ceaa29cb",4886:"76efc107",4898:"fea93377",4938:"bea375d6",4975:"a74a59a0",4994:"279fb1d6",5033:"33bbe353",5052:"cc44e8fd",5053:"493c7fdf",5076:"0cb62240",5168:"21899dd2",5208:"73a7060c",5231:"32e8da05",5249:"3829cf1d",5312:"f189ca9f",5331:"a9f58d5b",5332:"3497b7c6",5350:"cd144357",5362:"3184af97",5420:"c630d0cd",5434:"d5909206",5442:"e3d2722f",5502:"b133b626",5513:"e8522a07",5534:"f10f9928",5558:"c1bbdb2a",5588:"8d3a1bf8",5630:"08c12c3a",5702:"ccc1222e",5761:"3611be04",5827:"ca9fe671",5829:"d9a69e3a",5881:"15985664",5883:"9913464d",5884:"78e1e977",5905:"c97a416e",5910:"f4fb6e9c",5915:"f9358c97",5936:"29a046f3",5967:"f861e7c0",6011:"113faa87",6024:"b21dd8a7",6076:"863c4753",6104:"b38833d4",6111:"7ccc428f",6118:"766a10e1",6124:"84ede15a",6195:"452ad91d",6225:"fda65b2b",6235:"4d76887f",6277:"c7a2145e",6319:"386bfe51",6361:"2d429218",6417:"06597bc8",6445:"b7bd3ab3",6466:"21877fa5",6496:"987d08ef",6547:"7ffd66a6",6555:"0a3f0c9b",6608:"af40287e",6622:"a2d5a6d8",6641:"ece9fdae",6646:"af2ff1b5",6736:"497334c4",6775:"9e76b49d",6786:"ecb495b7",6789:"145746f5",6838:"49816380",6869:"0eeb7a68",6903:"543610b9",6930:"918b38b6",6969:"14eb3368",6993:"899aadcc",7044:"8247eba8",7106:"59acd71c",7129:"f14351c1",7147:"8dd7cee0",7227:"74df6a22",7242:"b418feb9",7276:"23498fd5",7376:"41f7224c",7473:"7c138549",7482:"cfd53ea4",7520:"e5615b18",7554:"a29dc56e",7561:"c07c2447",7657:"af3013e9",7777:"60738e36",7781:"dd32e389",7809:"9662c81e",7826:"b0cbc1d4",7827:"eef3f1dd",7845:"db3d6c4d",7876:"967fa6d4",7887:"c662f00a",7893:"2d34559d",8005:"98a431f4",8045:"333929a0",8058:"5db34cd0",8108:"9e3f6a8a",8112:"54338ffb",8121:"1ae2b102",8225:"f90fa732",8255:"d569989b",8290:"b3719d54",8348:"c5d9e474",8401:"17896441",8431:"9e6341e5",8472:"db9d4dae",8506:"c2c6a3a6",8568:"8081c0c6",8581:"935f2afb",8582:"f4130007",8586:"13b7bafa",8647:"437b4e16",8660:"b0d34550",8679:"f41c4e9d",8714:"1be78505",8726:"a87fd2e4",8727:"64c7e1cc",8768:"90a09ad1",8789:"879e564b",8800:"824749c6",8832:"ec3b6a32",8914:"ab138bf8",9057:"b48c599b",9074:"b0cb055f",9110:"c7a044bb",9116:"f52abf29",9141:"2462cc91",9175:"feea648c",9188:"f137ce68",9231:"a7c27f4d",9233:"49ea81bb",9349:"5c6a20c2",9385:"28b84bbb",9428:"f7191335",9451:"74985360",9476:"c7c5ba1a",9507:"31c99aa1",9535:"f44679e7",9550:"4d9b9869",9560:"702d5d94",9625:"f3bde756",9633:"240a6b01",9682:"32c9742a",9783:"fabebe44",9786:"6544ec02",9799:"bbba852d",9875:"30d868e8",9894:"e2e89062",9909:"078895e8"}[e]||e)+"."+{159:"87ed6df8",166:"5b50a905",230:"c6f7bb64",319:"ad59f9a1",352:"763ad1c2",416:"85e975e8",417:"f5661748",499:"1dda37cd",566:"816fdaa0",577:"cd66bbcd",586:"70156074",639:"fecf9fbd",662:"3afc096a",710:"6afffe83",782:"5e7fd01d",789:"c7c796e4",834:"99587933",866:"767f43d3",876:"5ca4eeac",885:"711d5ecb",954:"df790ac9",981:"c46a5886",1003:"89ae7947",1004:"f2d179bd",1018:"891bcbcc",1019:"d4be1e01",1042:"b2212eba",1058:"85994d45",1062:"a4f45728",1067:"87ede175",1077:"c126c3af",1101:"f6e6e9cd",1107:"3d4098c5",1112:"e95b24a9",1130:"94cf08cc",1238:"b3f63697",1241:"516fe3f0",1335:"14f28ada",1369:"651624ff",1379:"7ecfce3f",1431:"cfc568e0",1447:"d3c06f4a",1498:"8fb04c89",1511:"83485dbc",1519:"75e6bfb3",1539:"6da9c5e3",1540:"270c0c6d",1560:"dbf92b9c",1608:"7b51a27d",1628:"d28cd9c9",1650:"e0791533",1658:"36b8c225",1699:"361745b1",1706:"c389292b",1710:"ae2c7086",1711:"578af42e",1724:"5549f75a",1738:"99bdfba3",1772:"6f18280f",1774:"38106f04",1881:"3c22d52d",1888:"a9bf54bc",1906:"d25df6e0",1914:"8127fce8",1943:"6a1a5be3",1949:"1908f233",1967:"684a4638",1968:"cb1d098a",2047:"38d4f9d6",2138:"31a530ee",2164:"7523bc53",2204:"93305f28",2205:"4b165970",2226:"9c5b37bd",2244:"be6647f5",2298:"11081384",2357:"e1b24073",2368:"c943413b",2389:"90a929d9",2393:"c817bfef",2409:"71045e97",2410:"e81fa830",2481:"b7a33074",2493:"7f93edff",2580:"922f7540",2584:"76d50c8a",2598:"645cead6",2615:"12616f36",2623:"19621356",2634:"cff58b6e",2689:"ee2ec506",2698:"9d3722a7",2706:"2bd1cb50",2757:"222f67eb",2783:"fbdb68a0",2802:"68437843",2808:"f590b28f",2916:"96932b23",2922:"7bf0ed4b",2930:"5d661be5",2950:"7a329e3b",2971:"4b201e21",2980:"38f81a29",3041:"5912810b",3044:"bd9a68c3",3086:"03f685e9",3091:"0df55b40",3135:"7125522a",3170:"5e8e596f",3204:"e84222bf",3234:"6964ed3a",3256:"b57de458",3261:"b2b18c5c",3266:"cfdfdaf3",3306:"7bc8d52c",3315:"c7be4723",3316:"83c9a0f5",3368:"4262023d",3377:"fa977bb5",3423:"cd195f3c",3477:"7397dbfd",3487:"748415d2",3507:"25a0dddb",3536:"cf02a892",3557:"524fa5fb",3584:"467dff90",3602:"cd3c1f17",3642:"d821cc0a",3656:"94495a5e",3705:"13f67458",3708:"a75368eb",3735:"110d76f0",3751:"b8ef73f3",3804:"bda74303",3832:"a4de5f64",3880:"9f5eccd2",3949:"98c4afbb",3975:"34cc7d12",3976:"d747455b",3984:"0bd46f42",4017:"466c8bfc",4024:"03d12589",4051:"4d6e840d",4061:"b22b6067",4076:"7500038c",4117:"7a29ae4f",4168:"b8b3bf93",4190:"fdb2910f",4191:"2652ef5e",4228:"de8613e0",4231:"ad057daa",4271:"30e39877",4293:"0479d69c",4410:"f6b99ae3",4434:"4fe1ffa9",4479:"b4cec727",4484:"1f6a763b",4498:"9b7ef4f2",4537:"63ff75e2",4544:"2527b2f7",4632:"93ed24be",4661:"cfe31706",4739:"3028b0d1",4791:"a034c426",4817:"c6ebdf19",4840:"51fe2d75",4841:"98fb19ef",4886:"35ac8746",4898:"4353fd48",4938:"5c76bfa4",4975:"ae902cc8",4994:"4854eadc",5033:"12b37ca4",5052:"525a65ba",5053:"eb188c46",5076:"9d739a73",5168:"1fefc021",5208:"f80b87dd",5231:"1598a1e9",5249:"d6a1332d",5312:"123c70c7",5331:"45507673",5332:"d0e8293e",5350:"7445c094",5362:"60ee85e0",5420:"0381e9e6",5434:"f15fb9f4",5442:"e932c85f",5502:"df69f490",5513:"8750ade9",5534:"78f9aac7",5558:"fe5f89fd",5588:"2049be41",5630:"2aa45ba8",5702:"0301fc52",5761:"a47bcf2c",5827:"afaf122e",5829:"fa929c29",5881:"94c742be",5883:"6c09d57c",5884:"229e9018",5905:"0d993dc4",5910:"1a7715e8",5915:"c1b2db73",5936:"6ef06ac4",5967:"2ff390eb",6011:"57f19a89",6024:"409e698e",6076:"3bd40ff4",6104:"13f045da",6111:"4e33921f",6118:"17b395e4",6124:"4d697a39",6195:"503d6e14",6225:"cb533f47",6235:"2ff1a1a7",6277:"df70be0a",6319:"b1ef0ec0",6361:"aba2dbc7",6417:"b0478393",6445:"c6e3d5a7",6466:"526864a7",6496:"7e247531",6547:"86c92be3",6555:"56ea3fbc",6608:"010bd96c",6622:"ec1bbb27",6641:"a211565f",6646:"c2bab209",6736:"0e8a1043",6775:"0c292d69",6786:"94bf9551",6789:"f90f20ff",6838:"b9691a5a",6869:"c9f31208",6903:"3080e282",6930:"da0bca1f",6969:"b1aaf870",6993:"c393be4e",7044:"d8e2dabd",7106:"f84dcdf5",7113:"4bc5a319",7129:"008b4222",7147:"eb2582fb",7227:"3ad195f0",7242:"69ddce1a",7276:"b2c1c66a",7376:"2161ed65",7473:"bf853b5d",7482:"d8c841e8",7520:"0536a926",7554:"daf2611d",7561:"416d197e",7657:"796ff380",7777:"84099d13",7781:"742f43e4",7809:"c51c8e0a",7826:"3168e34e",7827:"2317bf9d",7845:"96213254",7876:"22682501",7887:"8654f940",7893:"178fb4b8",7996:"34225d49",8005:"3d9dc35d",8045:"afc36417",8055:"e0ec0f16",8058:"8303bdb3",8108:"bfef72e2",8112:"725abe0d",8121:"3c24b9d4",8225:"c8109513",8255:"aeead3f6",8290:"4f3cb1dc",8348:"87f81598",8401:"21dce90f",8431:"1e2571b9",8472:"c7a99948",8506:"611b61ba",8568:"48c3feac",8581:"0a1b45af",8582:"83baebb6",8586:"104c6577",8647:"0fbd6252",8660:"cb6afb82",8679:"4f86053a",8714:"07c85d37",8726:"56dc81dc",8727:"4c577f48",8768:"1b8e0830",8789:"1359884f",8800:"b165e1dc",8832:"6d0b092c",8913:"1f670d9b",8914:"f6e6bbd3",9057:"fb856b3e",9074:"4038c50e",9110:"4fd621ce",9116:"8f321a41",9141:"f40fb8eb",9175:"ad1f44fc",9188:"59e5973a",9231:"36ed5068",9233:"ad152c7b",9349:"500c3ef4",9385:"53ab6fc9",9428:"c65c703f",9451:"b6dbc725",9462:"4b950065",9476:"a15dad9c",9507:"56a1b59f",9535:"8762e41c",9550:"80e9284a",9560:"230fdb6d",9625:"3be8f720",9633:"dd29fde8",9682:"99423d27",9783:"fc6454f1",9786:"dade242c",9799:"9c580175",9875:"d41df0a4",9894:"2f5116d7",9909:"f8c60456"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,b)=>Object.prototype.hasOwnProperty.call(e,b),d={},r.l=(e,b,a,f)=>{if(d[e])d[e].push(b);else{var c,t;if(void 0!==a)for(var o=document.getElementsByTagName("script"),n=0;n{c.onerror=c.onload=null,clearTimeout(u);var f=d[e];if(delete d[e],c.parentNode&&c.parentNode.removeChild(c),f&&f.forEach((e=>e(a))),b)return b(a)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),t&&document.head.appendChild(c)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={15985664:"5881",17896441:"8401",49816380:"6838",73617284:"981",74985360:"9451",b906f375:"159","26dc7bd1":"166","48d75399":"230",a44b8423:"319",e31fc461:"352","6d5c9a28":"417","23210cde":"499","543c9f0a":"566","41b7b3e8":"577",dbc4065c:"586",ffd76171:"639",e495ca4d:"662","797239df":"710","0df78d26":"782",d27ae88d:"789","9f319605":"834","69b97ecd":"866","43ee4f22":"876","25f2bd2a":"885","8b670b2b":"954","5355b952":"1003","694672cd":"1004",b0a48d97:"1018",c91a9c06:"1019","31bd35e0":"1042",dc0f9344:"1058","804b1e9f":"1062",a5002e4a:"1067",bd701914:"1077",b225a2ce:"1101",d6a97e7e:"1107","943aba4c":"1112",d01f45b7:"1130","41871d53":"1238","556d3f96":"1241",c78e4f7d:"1335","71ed82b9":"1369","9528ac88":"1379","9f804621":"1431",a7b37b86:"1447","73d1b372":"1498","5193d8a9":"1511","33b0bcab":"1519","78868b16":"1539",fbf58567:"1540","2ea50c63":"1560","3e56470e":"1608","85afe03a":"1628",a4b71220:"1650","5d69d9d4":"1658","4f031749":"1699",a8f54fb1:"1706",feadf832:"1710",cda87995:"1711",afddde9d:"1724",cb9afd28:"1738","72b78d4a":"1772",e00ac272:"1881",c41801b5:"1888",f3027c84:"1906","36b7ae49":"1914","9a679a70":"1943","4a8eb552":"1949",ffe9c3c9:"1967","269bc3bb":"1968",dd2fa029:"2047","1a4e3797":"2138",d9ef69a7:"2164","89a76fd2":"2204","694e7470":"2205",a5b3561d:"2226","12331e8b":"2244","131c7f55":"2298",dc36d550:"2357",fa343ad1:"2368",bf3ab9de:"2389",f0ff685a:"2393","387813b8":"2409",fecdcc34:"2410",db039c7f:"2481","591eca19":"2493","2f3b630e":"2584","09dda9ae":"2598","8d48ec84":"2615","390ca211":"2623",c4f5d8e4:"2634","48074a08":"2689","2e0c35d5":"2698","51fbc2c9":"2706","7fbac68a":"2757",f7acb151:"2783","6f1a81b8":"2802","83d4859f":"2808",bb8b1738:"2916",dbbd9e76:"2922",f44ed8f8:"2930","98a30fd8":"2950","482bfb5c":"2971",d6b0148d:"2980",ad762f86:"3041",da9f79cb:"3044","9e2042f5":"3086","386099fc":"3091",f4200fe5:"3135","3104d5d8":"3170","7266120e":"3204",a2800a5b:"3234","6a04f266":"3256",f750c690:"3261","1646726c":"3266",d42819bc:"3306",e4ef088f:"3315",b9b4ec9e:"3316",efba78c5:"3368","1ed3671a":"3377","3002ebf4":"3423","1d6d4797":"3477","706277b1":"3487",ff6596ea:"3507","77c23c97":"3536",e77078a1:"3557",f2521980:"3584","196e07e8":"3602",f1585bfb:"3642",ad5a1373:"3656","979a04e7":"3705","5c90fc9b":"3708","4403bb94":"3735","1e15616a":"3751","1882e65d":"3832",df154d69:"3880","36051dfe":"3949",b3558274:"3975","3bd77df4":"3976","571c8793":"3984","7e9389ad":"4017",c977dfe8:"4024",f359a251:"4051","73c3bebc":"4061",f2b5c614:"4076",ed3409b3:"4117","6d2ffbf3":"4168","3d1bf5db":"4190",d3a753cf:"4191",d000eb73:"4228","2e944e01":"4231","7dcec981":"4271",c8dd560b:"4293",f2c21b54:"4410","4642ab5c":"4434","320c8a05":"4479",f8518919:"4484",dc776cbc:"4498","2be0d940":"4537",f47489cd:"4544","5136ee31":"4632","19ed4d4c":"4661","0b632434":"4739","8a8a7d05":"4791",b940de31:"4817","6116139f":"4840",ceaa29cb:"4841","76efc107":"4886",fea93377:"4898",bea375d6:"4938",a74a59a0:"4975","279fb1d6":"4994","33bbe353":"5033",cc44e8fd:"5052","493c7fdf":"5053","0cb62240":"5076","21899dd2":"5168","73a7060c":"5208","32e8da05":"5231","3829cf1d":"5249",f189ca9f:"5312",a9f58d5b:"5331","3497b7c6":"5332",cd144357:"5350","3184af97":"5362",c630d0cd:"5420",d5909206:"5434",e3d2722f:"5442",b133b626:"5502",e8522a07:"5513",f10f9928:"5534",c1bbdb2a:"5558","8d3a1bf8":"5588","08c12c3a":"5630",ccc1222e:"5702","3611be04":"5761",ca9fe671:"5827",d9a69e3a:"5829","9913464d":"5883","78e1e977":"5884",c97a416e:"5905",f4fb6e9c:"5910",f9358c97:"5915","29a046f3":"5936",f861e7c0:"5967","113faa87":"6011",b21dd8a7:"6024","863c4753":"6076",b38833d4:"6104","7ccc428f":"6111","766a10e1":"6118","84ede15a":"6124","452ad91d":"6195",fda65b2b:"6225","4d76887f":"6235",c7a2145e:"6277","386bfe51":"6319","2d429218":"6361","06597bc8":"6417",b7bd3ab3:"6445","21877fa5":"6466","987d08ef":"6496","7ffd66a6":"6547","0a3f0c9b":"6555",af40287e:"6608",a2d5a6d8:"6622",ece9fdae:"6641",af2ff1b5:"6646","497334c4":"6736","9e76b49d":"6775",ecb495b7:"6786","145746f5":"6789","0eeb7a68":"6869","543610b9":"6903","918b38b6":"6930","14eb3368":"6969","899aadcc":"6993","8247eba8":"7044","59acd71c":"7106",f14351c1:"7129","8dd7cee0":"7147","74df6a22":"7227",b418feb9:"7242","23498fd5":"7276","41f7224c":"7376","7c138549":"7473",cfd53ea4:"7482",e5615b18:"7520",a29dc56e:"7554",c07c2447:"7561",af3013e9:"7657","60738e36":"7777",dd32e389:"7781","9662c81e":"7809",b0cbc1d4:"7826",eef3f1dd:"7827",db3d6c4d:"7845","967fa6d4":"7876",c662f00a:"7887","2d34559d":"7893","98a431f4":"8005","333929a0":"8045","5db34cd0":"8058","9e3f6a8a":"8108","54338ffb":"8112","1ae2b102":"8121",f90fa732:"8225",d569989b:"8255",b3719d54:"8290",c5d9e474:"8348","9e6341e5":"8431",db9d4dae:"8472",c2c6a3a6:"8506","8081c0c6":"8568","935f2afb":"8581",f4130007:"8582","13b7bafa":"8586","437b4e16":"8647",b0d34550:"8660",f41c4e9d:"8679","1be78505":"8714",a87fd2e4:"8726","64c7e1cc":"8727","90a09ad1":"8768","879e564b":"8789","824749c6":"8800",ec3b6a32:"8832",ab138bf8:"8914",b48c599b:"9057",b0cb055f:"9074",c7a044bb:"9110",f52abf29:"9116","2462cc91":"9141",feea648c:"9175",f137ce68:"9188",a7c27f4d:"9231","49ea81bb":"9233","5c6a20c2":"9349","28b84bbb":"9385",f7191335:"9428",c7c5ba1a:"9476","31c99aa1":"9507",f44679e7:"9535","4d9b9869":"9550","702d5d94":"9560",f3bde756:"9625","240a6b01":"9633","32c9742a":"9682",fabebe44:"9783","6544ec02":"9786",bbba852d:"9799","30d868e8":"9875",e2e89062:"9894","078895e8":"9909"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(b,a)=>{var d=r.o(e,b)?e[b]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1869|5354)$/.test(b))e[b]=0;else{var f=new Promise(((a,f)=>d=e[b]=[a,f]));a.push(d[2]=f);var c=r.p+r.u(b),t=new Error;r.l(c,(a=>{if(r.o(e,b)&&(0!==(d=e[b])&&(e[b]=void 0),d)){var f=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;t.message="Loading chunk "+b+" failed.\n("+f+": "+c+")",t.name="ChunkLoadError",t.type=f,t.request=c,d[1](t)}}),"chunk-"+b,b)}},r.O.j=b=>0===e[b];var b=(b,a)=>{var d,f,[c,t,o]=a,n=0;if(c.some((b=>0!==e[b]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(b&&b(a);n{"use strict";var e,b,a,d,f={},c={};function r(e){var b=c[e];if(void 0!==b)return b.exports;var a=c[e]={id:e,loaded:!1,exports:{}};return f[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=f,e=[],r.O=(b,a,d,f)=>{if(!a){var c=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,d,f]},r.n=e=>{var b=e&&e.__esModule?()=>e.default:()=>e;return r.d(b,{a:b}),b},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var c={};b=b||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~b.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((b=>c[b]=()=>e[b]));return c.default=()=>e,r.d(f,c),f},r.d=(e,b)=>{for(var a in b)r.o(b,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:b[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((b,a)=>(r.f[a](e,b),b)),[])),r.u=e=>"assets/js/"+({159:"b906f375",166:"26dc7bd1",230:"48d75399",319:"a44b8423",352:"e31fc461",417:"6d5c9a28",499:"23210cde",566:"543c9f0a",577:"41b7b3e8",586:"dbc4065c",639:"ffd76171",662:"e495ca4d",710:"797239df",782:"0df78d26",789:"d27ae88d",834:"9f319605",866:"69b97ecd",876:"43ee4f22",885:"25f2bd2a",954:"8b670b2b",981:"73617284",1003:"5355b952",1004:"694672cd",1018:"b0a48d97",1019:"c91a9c06",1042:"31bd35e0",1058:"dc0f9344",1062:"804b1e9f",1067:"a5002e4a",1077:"bd701914",1101:"b225a2ce",1107:"d6a97e7e",1112:"943aba4c",1130:"d01f45b7",1238:"41871d53",1241:"556d3f96",1335:"c78e4f7d",1369:"71ed82b9",1379:"9528ac88",1431:"9f804621",1447:"a7b37b86",1498:"73d1b372",1511:"5193d8a9",1519:"33b0bcab",1539:"78868b16",1540:"fbf58567",1560:"2ea50c63",1608:"3e56470e",1628:"85afe03a",1650:"a4b71220",1658:"5d69d9d4",1699:"4f031749",1706:"a8f54fb1",1710:"feadf832",1711:"cda87995",1724:"afddde9d",1738:"cb9afd28",1772:"72b78d4a",1881:"e00ac272",1888:"c41801b5",1906:"f3027c84",1914:"36b7ae49",1943:"9a679a70",1949:"4a8eb552",1967:"ffe9c3c9",1968:"269bc3bb",2047:"dd2fa029",2138:"1a4e3797",2164:"d9ef69a7",2204:"89a76fd2",2205:"694e7470",2226:"a5b3561d",2244:"12331e8b",2298:"131c7f55",2357:"dc36d550",2368:"fa343ad1",2389:"bf3ab9de",2393:"f0ff685a",2409:"387813b8",2410:"fecdcc34",2481:"db039c7f",2493:"591eca19",2584:"2f3b630e",2598:"09dda9ae",2615:"8d48ec84",2623:"390ca211",2634:"c4f5d8e4",2689:"48074a08",2698:"2e0c35d5",2706:"51fbc2c9",2757:"7fbac68a",2783:"f7acb151",2802:"6f1a81b8",2808:"83d4859f",2916:"bb8b1738",2922:"dbbd9e76",2930:"f44ed8f8",2950:"98a30fd8",2971:"482bfb5c",2980:"d6b0148d",3041:"ad762f86",3044:"da9f79cb",3086:"9e2042f5",3091:"386099fc",3135:"f4200fe5",3170:"3104d5d8",3204:"7266120e",3234:"a2800a5b",3256:"6a04f266",3261:"f750c690",3266:"1646726c",3306:"d42819bc",3315:"e4ef088f",3316:"b9b4ec9e",3368:"efba78c5",3377:"1ed3671a",3423:"3002ebf4",3477:"1d6d4797",3487:"706277b1",3507:"ff6596ea",3536:"77c23c97",3557:"e77078a1",3584:"f2521980",3602:"196e07e8",3642:"f1585bfb",3656:"ad5a1373",3705:"979a04e7",3708:"5c90fc9b",3735:"4403bb94",3751:"1e15616a",3832:"1882e65d",3880:"df154d69",3949:"36051dfe",3975:"b3558274",3976:"3bd77df4",3984:"571c8793",4017:"7e9389ad",4024:"c977dfe8",4051:"f359a251",4061:"73c3bebc",4076:"f2b5c614",4117:"ed3409b3",4168:"6d2ffbf3",4190:"3d1bf5db",4191:"d3a753cf",4228:"d000eb73",4231:"2e944e01",4271:"7dcec981",4293:"c8dd560b",4410:"f2c21b54",4434:"4642ab5c",4479:"320c8a05",4484:"f8518919",4498:"dc776cbc",4537:"2be0d940",4544:"f47489cd",4632:"5136ee31",4661:"19ed4d4c",4739:"0b632434",4791:"8a8a7d05",4817:"b940de31",4840:"6116139f",4841:"ceaa29cb",4886:"76efc107",4898:"fea93377",4938:"bea375d6",4975:"a74a59a0",4994:"279fb1d6",5033:"33bbe353",5052:"cc44e8fd",5053:"493c7fdf",5076:"0cb62240",5168:"21899dd2",5208:"73a7060c",5231:"32e8da05",5249:"3829cf1d",5312:"f189ca9f",5331:"a9f58d5b",5332:"3497b7c6",5350:"cd144357",5362:"3184af97",5420:"c630d0cd",5434:"d5909206",5442:"e3d2722f",5502:"b133b626",5513:"e8522a07",5534:"f10f9928",5558:"c1bbdb2a",5588:"8d3a1bf8",5630:"08c12c3a",5702:"ccc1222e",5761:"3611be04",5827:"ca9fe671",5829:"d9a69e3a",5881:"15985664",5883:"9913464d",5884:"78e1e977",5905:"c97a416e",5910:"f4fb6e9c",5915:"f9358c97",5936:"29a046f3",5967:"f861e7c0",6011:"113faa87",6024:"b21dd8a7",6076:"863c4753",6104:"b38833d4",6111:"7ccc428f",6118:"766a10e1",6124:"84ede15a",6195:"452ad91d",6225:"fda65b2b",6235:"4d76887f",6277:"c7a2145e",6319:"386bfe51",6361:"2d429218",6417:"06597bc8",6445:"b7bd3ab3",6466:"21877fa5",6496:"987d08ef",6547:"7ffd66a6",6555:"0a3f0c9b",6608:"af40287e",6622:"a2d5a6d8",6641:"ece9fdae",6646:"af2ff1b5",6736:"497334c4",6775:"9e76b49d",6786:"ecb495b7",6789:"145746f5",6838:"49816380",6869:"0eeb7a68",6903:"543610b9",6930:"918b38b6",6969:"14eb3368",6993:"899aadcc",7044:"8247eba8",7106:"59acd71c",7129:"f14351c1",7147:"8dd7cee0",7227:"74df6a22",7242:"b418feb9",7276:"23498fd5",7376:"41f7224c",7473:"7c138549",7482:"cfd53ea4",7520:"e5615b18",7554:"a29dc56e",7561:"c07c2447",7657:"af3013e9",7777:"60738e36",7781:"dd32e389",7809:"9662c81e",7826:"b0cbc1d4",7827:"eef3f1dd",7845:"db3d6c4d",7876:"967fa6d4",7887:"c662f00a",7893:"2d34559d",8005:"98a431f4",8045:"333929a0",8058:"5db34cd0",8108:"9e3f6a8a",8112:"54338ffb",8121:"1ae2b102",8225:"f90fa732",8255:"d569989b",8290:"b3719d54",8348:"c5d9e474",8401:"17896441",8431:"9e6341e5",8472:"db9d4dae",8506:"c2c6a3a6",8568:"8081c0c6",8581:"935f2afb",8582:"f4130007",8586:"13b7bafa",8647:"437b4e16",8660:"b0d34550",8679:"f41c4e9d",8714:"1be78505",8726:"a87fd2e4",8727:"64c7e1cc",8768:"90a09ad1",8789:"879e564b",8800:"824749c6",8832:"ec3b6a32",8914:"ab138bf8",9057:"b48c599b",9074:"b0cb055f",9110:"c7a044bb",9116:"f52abf29",9141:"2462cc91",9175:"feea648c",9188:"f137ce68",9231:"a7c27f4d",9233:"49ea81bb",9349:"5c6a20c2",9385:"28b84bbb",9428:"f7191335",9451:"74985360",9476:"c7c5ba1a",9507:"31c99aa1",9535:"f44679e7",9550:"4d9b9869",9560:"702d5d94",9625:"f3bde756",9633:"240a6b01",9682:"32c9742a",9783:"fabebe44",9786:"6544ec02",9799:"bbba852d",9875:"30d868e8",9894:"e2e89062",9909:"078895e8"}[e]||e)+"."+{159:"87ed6df8",166:"5b50a905",230:"c6f7bb64",319:"ad59f9a1",352:"763ad1c2",416:"85e975e8",417:"f5661748",499:"1dda37cd",566:"816fdaa0",577:"cd66bbcd",586:"70156074",639:"fecf9fbd",662:"3afc096a",710:"6afffe83",782:"5e7fd01d",789:"c7c796e4",834:"99587933",866:"767f43d3",876:"5ca4eeac",885:"711d5ecb",954:"df790ac9",981:"c46a5886",1003:"89ae7947",1004:"f2d179bd",1018:"891bcbcc",1019:"d4be1e01",1042:"b2212eba",1058:"85994d45",1062:"a4f45728",1067:"87ede175",1077:"c126c3af",1101:"f6e6e9cd",1107:"3d4098c5",1112:"e95b24a9",1130:"94cf08cc",1238:"b3f63697",1241:"516fe3f0",1335:"14f28ada",1369:"651624ff",1379:"7ecfce3f",1431:"cfc568e0",1447:"d3c06f4a",1498:"8fb04c89",1511:"83485dbc",1519:"75e6bfb3",1539:"6da9c5e3",1540:"270c0c6d",1560:"dbf92b9c",1608:"7b51a27d",1628:"d28cd9c9",1650:"e0791533",1658:"36b8c225",1699:"361745b1",1706:"c389292b",1710:"ae2c7086",1711:"578af42e",1724:"5549f75a",1738:"99bdfba3",1772:"6f18280f",1774:"38106f04",1881:"3c22d52d",1888:"a9bf54bc",1906:"d25df6e0",1914:"8127fce8",1943:"6a1a5be3",1949:"1908f233",1967:"684a4638",1968:"cb1d098a",2047:"38d4f9d6",2138:"31a530ee",2164:"7523bc53",2204:"93305f28",2205:"4b165970",2226:"9c5b37bd",2244:"be6647f5",2298:"11081384",2357:"e1b24073",2368:"c943413b",2389:"90a929d9",2393:"c817bfef",2409:"71045e97",2410:"e81fa830",2481:"b7a33074",2493:"7f93edff",2580:"922f7540",2584:"76d50c8a",2598:"645cead6",2615:"12616f36",2623:"19621356",2634:"cff58b6e",2689:"ee2ec506",2698:"9d3722a7",2706:"2bd1cb50",2757:"222f67eb",2783:"fbdb68a0",2802:"68437843",2808:"f590b28f",2916:"96932b23",2922:"7bf0ed4b",2930:"5d661be5",2950:"7a329e3b",2971:"4b201e21",2980:"38f81a29",3041:"5912810b",3044:"bd9a68c3",3086:"03f685e9",3091:"0df55b40",3135:"1c8c0f13",3170:"5e8e596f",3204:"e84222bf",3234:"6964ed3a",3256:"b57de458",3261:"b2b18c5c",3266:"cfdfdaf3",3306:"7bc8d52c",3315:"c7be4723",3316:"83c9a0f5",3368:"4262023d",3377:"fa977bb5",3423:"cd195f3c",3477:"7397dbfd",3487:"748415d2",3507:"25a0dddb",3536:"cf02a892",3557:"524fa5fb",3584:"467dff90",3602:"cd3c1f17",3642:"d821cc0a",3656:"94495a5e",3705:"13f67458",3708:"a75368eb",3735:"110d76f0",3751:"b8ef73f3",3804:"bda74303",3832:"a4de5f64",3880:"9f5eccd2",3949:"98c4afbb",3975:"34cc7d12",3976:"d747455b",3984:"0bd46f42",4017:"466c8bfc",4024:"03d12589",4051:"2733102a",4061:"b22b6067",4076:"7500038c",4117:"7a29ae4f",4168:"b8b3bf93",4190:"fdb2910f",4191:"2652ef5e",4228:"de8613e0",4231:"ad057daa",4271:"30e39877",4293:"0479d69c",4410:"f6b99ae3",4434:"4fe1ffa9",4479:"b4cec727",4484:"1f6a763b",4498:"9b7ef4f2",4537:"63ff75e2",4544:"2527b2f7",4632:"93ed24be",4661:"cfe31706",4739:"3028b0d1",4791:"a034c426",4817:"c6ebdf19",4840:"51fe2d75",4841:"98fb19ef",4886:"35ac8746",4898:"4353fd48",4938:"5c76bfa4",4975:"ae902cc8",4994:"4854eadc",5033:"12b37ca4",5052:"525a65ba",5053:"eb188c46",5076:"9d739a73",5168:"1fefc021",5208:"f80b87dd",5231:"1598a1e9",5249:"d6a1332d",5312:"123c70c7",5331:"45507673",5332:"d0e8293e",5350:"7445c094",5362:"60ee85e0",5420:"0381e9e6",5434:"f15fb9f4",5442:"e932c85f",5502:"df69f490",5513:"8750ade9",5534:"78f9aac7",5558:"fe5f89fd",5588:"2049be41",5630:"2aa45ba8",5702:"0301fc52",5761:"a47bcf2c",5827:"afaf122e",5829:"fa929c29",5881:"94c742be",5883:"6c09d57c",5884:"229e9018",5905:"0d993dc4",5910:"1a7715e8",5915:"c1b2db73",5936:"6ef06ac4",5967:"2ff390eb",6011:"57f19a89",6024:"409e698e",6076:"3bd40ff4",6104:"13f045da",6111:"4e33921f",6118:"17b395e4",6124:"4d697a39",6195:"503d6e14",6225:"cb533f47",6235:"2ff1a1a7",6277:"df70be0a",6319:"b1ef0ec0",6361:"aba2dbc7",6417:"b0478393",6445:"c6e3d5a7",6466:"526864a7",6496:"7e247531",6547:"86c92be3",6555:"56ea3fbc",6608:"010bd96c",6622:"ec1bbb27",6641:"a211565f",6646:"c2bab209",6736:"0e8a1043",6775:"0c292d69",6786:"94bf9551",6789:"f90f20ff",6838:"b9691a5a",6869:"c9f31208",6903:"3080e282",6930:"da0bca1f",6969:"b1aaf870",6993:"c393be4e",7044:"d8e2dabd",7106:"f84dcdf5",7113:"4bc5a319",7129:"008b4222",7147:"eb2582fb",7227:"3ad195f0",7242:"69ddce1a",7276:"b2c1c66a",7376:"2161ed65",7473:"bf853b5d",7482:"d8c841e8",7520:"0536a926",7554:"daf2611d",7561:"416d197e",7657:"796ff380",7777:"84099d13",7781:"742f43e4",7809:"c51c8e0a",7826:"3168e34e",7827:"2317bf9d",7845:"96213254",7876:"22682501",7887:"8654f940",7893:"178fb4b8",7996:"34225d49",8005:"3d9dc35d",8045:"afc36417",8055:"e0ec0f16",8058:"8303bdb3",8108:"bfef72e2",8112:"725abe0d",8121:"3c24b9d4",8225:"c8109513",8255:"aeead3f6",8290:"4f3cb1dc",8348:"87f81598",8401:"21dce90f",8431:"1e2571b9",8472:"c7a99948",8506:"611b61ba",8568:"48c3feac",8581:"0a1b45af",8582:"83baebb6",8586:"104c6577",8647:"0fbd6252",8660:"cb6afb82",8679:"4f86053a",8714:"07c85d37",8726:"56dc81dc",8727:"4c577f48",8768:"1b8e0830",8789:"1359884f",8800:"b165e1dc",8832:"6d0b092c",8913:"1f670d9b",8914:"f6e6bbd3",9057:"fb856b3e",9074:"4038c50e",9110:"4fd621ce",9116:"8f321a41",9141:"f40fb8eb",9175:"ad1f44fc",9188:"59e5973a",9231:"36ed5068",9233:"ad152c7b",9349:"500c3ef4",9385:"53ab6fc9",9428:"c65c703f",9451:"b6dbc725",9462:"4b950065",9476:"a15dad9c",9507:"56a1b59f",9535:"8762e41c",9550:"80e9284a",9560:"230fdb6d",9625:"3be8f720",9633:"dd29fde8",9682:"99423d27",9783:"fc6454f1",9786:"dade242c",9799:"9c580175",9875:"d41df0a4",9894:"2f5116d7",9909:"f8c60456"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,b)=>Object.prototype.hasOwnProperty.call(e,b),d={},r.l=(e,b,a,f)=>{if(d[e])d[e].push(b);else{var c,t;if(void 0!==a)for(var o=document.getElementsByTagName("script"),n=0;n{c.onerror=c.onload=null,clearTimeout(u);var f=d[e];if(delete d[e],c.parentNode&&c.parentNode.removeChild(c),f&&f.forEach((e=>e(a))),b)return b(a)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),t&&document.head.appendChild(c)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={15985664:"5881",17896441:"8401",49816380:"6838",73617284:"981",74985360:"9451",b906f375:"159","26dc7bd1":"166","48d75399":"230",a44b8423:"319",e31fc461:"352","6d5c9a28":"417","23210cde":"499","543c9f0a":"566","41b7b3e8":"577",dbc4065c:"586",ffd76171:"639",e495ca4d:"662","797239df":"710","0df78d26":"782",d27ae88d:"789","9f319605":"834","69b97ecd":"866","43ee4f22":"876","25f2bd2a":"885","8b670b2b":"954","5355b952":"1003","694672cd":"1004",b0a48d97:"1018",c91a9c06:"1019","31bd35e0":"1042",dc0f9344:"1058","804b1e9f":"1062",a5002e4a:"1067",bd701914:"1077",b225a2ce:"1101",d6a97e7e:"1107","943aba4c":"1112",d01f45b7:"1130","41871d53":"1238","556d3f96":"1241",c78e4f7d:"1335","71ed82b9":"1369","9528ac88":"1379","9f804621":"1431",a7b37b86:"1447","73d1b372":"1498","5193d8a9":"1511","33b0bcab":"1519","78868b16":"1539",fbf58567:"1540","2ea50c63":"1560","3e56470e":"1608","85afe03a":"1628",a4b71220:"1650","5d69d9d4":"1658","4f031749":"1699",a8f54fb1:"1706",feadf832:"1710",cda87995:"1711",afddde9d:"1724",cb9afd28:"1738","72b78d4a":"1772",e00ac272:"1881",c41801b5:"1888",f3027c84:"1906","36b7ae49":"1914","9a679a70":"1943","4a8eb552":"1949",ffe9c3c9:"1967","269bc3bb":"1968",dd2fa029:"2047","1a4e3797":"2138",d9ef69a7:"2164","89a76fd2":"2204","694e7470":"2205",a5b3561d:"2226","12331e8b":"2244","131c7f55":"2298",dc36d550:"2357",fa343ad1:"2368",bf3ab9de:"2389",f0ff685a:"2393","387813b8":"2409",fecdcc34:"2410",db039c7f:"2481","591eca19":"2493","2f3b630e":"2584","09dda9ae":"2598","8d48ec84":"2615","390ca211":"2623",c4f5d8e4:"2634","48074a08":"2689","2e0c35d5":"2698","51fbc2c9":"2706","7fbac68a":"2757",f7acb151:"2783","6f1a81b8":"2802","83d4859f":"2808",bb8b1738:"2916",dbbd9e76:"2922",f44ed8f8:"2930","98a30fd8":"2950","482bfb5c":"2971",d6b0148d:"2980",ad762f86:"3041",da9f79cb:"3044","9e2042f5":"3086","386099fc":"3091",f4200fe5:"3135","3104d5d8":"3170","7266120e":"3204",a2800a5b:"3234","6a04f266":"3256",f750c690:"3261","1646726c":"3266",d42819bc:"3306",e4ef088f:"3315",b9b4ec9e:"3316",efba78c5:"3368","1ed3671a":"3377","3002ebf4":"3423","1d6d4797":"3477","706277b1":"3487",ff6596ea:"3507","77c23c97":"3536",e77078a1:"3557",f2521980:"3584","196e07e8":"3602",f1585bfb:"3642",ad5a1373:"3656","979a04e7":"3705","5c90fc9b":"3708","4403bb94":"3735","1e15616a":"3751","1882e65d":"3832",df154d69:"3880","36051dfe":"3949",b3558274:"3975","3bd77df4":"3976","571c8793":"3984","7e9389ad":"4017",c977dfe8:"4024",f359a251:"4051","73c3bebc":"4061",f2b5c614:"4076",ed3409b3:"4117","6d2ffbf3":"4168","3d1bf5db":"4190",d3a753cf:"4191",d000eb73:"4228","2e944e01":"4231","7dcec981":"4271",c8dd560b:"4293",f2c21b54:"4410","4642ab5c":"4434","320c8a05":"4479",f8518919:"4484",dc776cbc:"4498","2be0d940":"4537",f47489cd:"4544","5136ee31":"4632","19ed4d4c":"4661","0b632434":"4739","8a8a7d05":"4791",b940de31:"4817","6116139f":"4840",ceaa29cb:"4841","76efc107":"4886",fea93377:"4898",bea375d6:"4938",a74a59a0:"4975","279fb1d6":"4994","33bbe353":"5033",cc44e8fd:"5052","493c7fdf":"5053","0cb62240":"5076","21899dd2":"5168","73a7060c":"5208","32e8da05":"5231","3829cf1d":"5249",f189ca9f:"5312",a9f58d5b:"5331","3497b7c6":"5332",cd144357:"5350","3184af97":"5362",c630d0cd:"5420",d5909206:"5434",e3d2722f:"5442",b133b626:"5502",e8522a07:"5513",f10f9928:"5534",c1bbdb2a:"5558","8d3a1bf8":"5588","08c12c3a":"5630",ccc1222e:"5702","3611be04":"5761",ca9fe671:"5827",d9a69e3a:"5829","9913464d":"5883","78e1e977":"5884",c97a416e:"5905",f4fb6e9c:"5910",f9358c97:"5915","29a046f3":"5936",f861e7c0:"5967","113faa87":"6011",b21dd8a7:"6024","863c4753":"6076",b38833d4:"6104","7ccc428f":"6111","766a10e1":"6118","84ede15a":"6124","452ad91d":"6195",fda65b2b:"6225","4d76887f":"6235",c7a2145e:"6277","386bfe51":"6319","2d429218":"6361","06597bc8":"6417",b7bd3ab3:"6445","21877fa5":"6466","987d08ef":"6496","7ffd66a6":"6547","0a3f0c9b":"6555",af40287e:"6608",a2d5a6d8:"6622",ece9fdae:"6641",af2ff1b5:"6646","497334c4":"6736","9e76b49d":"6775",ecb495b7:"6786","145746f5":"6789","0eeb7a68":"6869","543610b9":"6903","918b38b6":"6930","14eb3368":"6969","899aadcc":"6993","8247eba8":"7044","59acd71c":"7106",f14351c1:"7129","8dd7cee0":"7147","74df6a22":"7227",b418feb9:"7242","23498fd5":"7276","41f7224c":"7376","7c138549":"7473",cfd53ea4:"7482",e5615b18:"7520",a29dc56e:"7554",c07c2447:"7561",af3013e9:"7657","60738e36":"7777",dd32e389:"7781","9662c81e":"7809",b0cbc1d4:"7826",eef3f1dd:"7827",db3d6c4d:"7845","967fa6d4":"7876",c662f00a:"7887","2d34559d":"7893","98a431f4":"8005","333929a0":"8045","5db34cd0":"8058","9e3f6a8a":"8108","54338ffb":"8112","1ae2b102":"8121",f90fa732:"8225",d569989b:"8255",b3719d54:"8290",c5d9e474:"8348","9e6341e5":"8431",db9d4dae:"8472",c2c6a3a6:"8506","8081c0c6":"8568","935f2afb":"8581",f4130007:"8582","13b7bafa":"8586","437b4e16":"8647",b0d34550:"8660",f41c4e9d:"8679","1be78505":"8714",a87fd2e4:"8726","64c7e1cc":"8727","90a09ad1":"8768","879e564b":"8789","824749c6":"8800",ec3b6a32:"8832",ab138bf8:"8914",b48c599b:"9057",b0cb055f:"9074",c7a044bb:"9110",f52abf29:"9116","2462cc91":"9141",feea648c:"9175",f137ce68:"9188",a7c27f4d:"9231","49ea81bb":"9233","5c6a20c2":"9349","28b84bbb":"9385",f7191335:"9428",c7c5ba1a:"9476","31c99aa1":"9507",f44679e7:"9535","4d9b9869":"9550","702d5d94":"9560",f3bde756:"9625","240a6b01":"9633","32c9742a":"9682",fabebe44:"9783","6544ec02":"9786",bbba852d:"9799","30d868e8":"9875",e2e89062:"9894","078895e8":"9909"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(b,a)=>{var d=r.o(e,b)?e[b]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1869|5354)$/.test(b))e[b]=0;else{var f=new Promise(((a,f)=>d=e[b]=[a,f]));a.push(d[2]=f);var c=r.p+r.u(b),t=new Error;r.l(c,(a=>{if(r.o(e,b)&&(0!==(d=e[b])&&(e[b]=void 0),d)){var f=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;t.message="Loading chunk "+b+" failed.\n("+f+": "+c+")",t.name="ChunkLoadError",t.type=f,t.request=c,d[1](t)}}),"chunk-"+b,b)}},r.O.j=b=>0===e[b];var b=(b,a)=>{var d,f,[c,t,o]=a,n=0;if(c.some((b=>0!==e[b]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(b&&b(a);n - + @@ -40,7 +40,7 @@ development. The program aims to enable your team to tap into Polkadot’s ecosystem of resources and bring your product into production while contributing to feedback for Polkadot’s ecosystem.

Check out the official Polkadot Alpha Program site for more information and steps on how to apply.

- + \ No newline at end of file diff --git a/docs/ambassadors.html b/docs/ambassadors.html index 1a585b86cb8f..3944c316ac19 100644 --- a/docs/ambassadors.html +++ b/docs/ambassadors.html @@ -22,7 +22,7 @@ - + @@ -31,7 +31,7 @@ the approval of Polkadot OpenGov referenda 487.

If you are enthusiastic about Polkadot and Web3 and are willing to help the community grow, you can join the program and receive funding for hosting events, gain access to communication channels of core team members, and gain access to Polkadot events.

There are many ways you can get involved in expanding Polkadot’s ecosystem, such as:

  • Contributing code and documentation related to the ecosystem
  • Speaking about Polkadot at events, workshops, and meetups
  • Writing blog posts
  • Representing Polkadot in your region
  • Mentoring and onboarding newcomers
  • Identifying partnerships and opportunities for the Polkadot ecosystem
  • Participating in calls and tasks that help drive the ecosystem forward
- + \ No newline at end of file diff --git a/docs/apps-index.html b/docs/apps-index.html index e63377a9230b..a44585ce3953 100644 --- a/docs/apps-index.html +++ b/docs/apps-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/bug-bounty.html b/docs/bug-bounty.html index b69e822afda2..b1919937fe76 100644 --- a/docs/bug-bounty.html +++ b/docs/bug-bounty.html @@ -22,7 +22,7 @@ - + @@ -46,7 +46,7 @@ not to be disruptive or harmful to our users or us. Otherwise, your actions might be interpreted as an attack rather than an effort to be helpful.

How to report a bug

Please follow the instructions at web3.foundation/security-report/.

- + \ No newline at end of file diff --git a/docs/build-archive-index.html b/docs/build-archive-index.html index b83671271a04..d28853326d02 100644 --- a/docs/build-archive-index.html +++ b/docs/build-archive-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-client-index.html b/docs/build-client-index.html index 178b07a34b40..7d51e9c242b0 100644 --- a/docs/build-client-index.html +++ b/docs/build-client-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-client-side.html b/docs/build-client-side.html index 7fda257a82e1..3eb971115ba9 100644 --- a/docs/build-client-side.html +++ b/docs/build-client-side.html @@ -22,7 +22,7 @@ - + @@ -75,7 +75,7 @@ specifically the documentation on deploying Polkadot dApp on decentralized storage. You can get started with Filebase by signing up here.

- + \ No newline at end of file diff --git a/docs/build-dapp.html b/docs/build-dapp.html index 6fa561381c99..f153b2114b40 100644 --- a/docs/build-dapp.html +++ b/docs/build-dapp.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ see the tooling page for a detailed overview of different SDKs and libraries that are available.

Frameworks & Toolkits

For front-end applications, several options exist for interfacing with Substrate-based chains (parachains, relay chains, etc.) and smart contracts. These often will interact with the RPC of a Substrate node:

Promise and RxJS APIs around Polkadot and Substrate-based chains via RPC calls. It is dynamically generated based on what the Substrate runtime provides regarding metadata. Full documentation & examples available here.
- + \ No newline at end of file diff --git a/docs/build-data.html b/docs/build-data.html index c6919e2029db..dbe42c617472 100644 --- a/docs/build-data.html +++ b/docs/build-data.html @@ -22,7 +22,7 @@ - + @@ -52,7 +52,7 @@ for details on how to access the data.

Block Explorers

As you can imagine, blockchain explorers also offer data analytics through an interface where users can examine common data points.

Some block explorers in the Polkadot ecosystem are listed on the tools page.

- + \ No newline at end of file diff --git a/docs/build-guide.html b/docs/build-guide.html index d9ea550d0364..900df296bdb0 100644 --- a/docs/build-guide.html +++ b/docs/build-guide.html @@ -22,7 +22,7 @@ - + @@ -134,7 +134,7 @@ (parachains, relay chains, etc.) and smart contracts. These often will interact with the RPC of a Substrate node.

Please visit the documentation for developing dApps and other general client-side development resources.

For a complete list of tools, please take a look here: Tools, APIs, and Languages

Resources

- + \ No newline at end of file diff --git a/docs/build-guides-coretime-start.html b/docs/build-guides-coretime-start.html index e75efd30c96e..8a485604573f 100644 --- a/docs/build-guides-coretime-start.html +++ b/docs/build-guides-coretime-start.html @@ -22,7 +22,7 @@ - + @@ -52,7 +52,7 @@ Substrate parachain runtime guide.

Polkadot SDK Parachain Template

If you wish to the Polkadot SDK's Parachain template, please follow the Template to Core guide.

- + \ No newline at end of file diff --git a/docs/build-guides-coretime-troubleshoot.html b/docs/build-guides-coretime-troubleshoot.html index 390ff13fa0df..0451559735c6 100644 --- a/docs/build-guides-coretime-troubleshoot.html +++ b/docs/build-guides-coretime-troubleshoot.html @@ -22,7 +22,7 @@ - + @@ -45,7 +45,7 @@ term now. They refer to what are now known as on-demand parachains. Although they be references in various places through PolkadotJS, docs, or other UIs, really we only have two types of parachain: on-demand parachains, and parachains which use bulk coretime.


- + \ No newline at end of file diff --git a/docs/build-guides-install-deps.html b/docs/build-guides-install-deps.html index 0cb4d0e5f5d5..91b134715daa 100644 --- a/docs/build-guides-install-deps.html +++ b/docs/build-guides-install-deps.html @@ -22,7 +22,7 @@ - + @@ -81,7 +81,7 @@ by running the following command:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Follow the prompts displayed to proceed with a default installation.

  • Update your current shell to include Cargo by running the following command:

    source ~/.cargo/env
  • Verify your installation by running the following command:

    rustc --version
  • Configure the Rust toolchain to use the latest stable version as the default toolchain by running the following commands:

    rustup default stable
    rustup update
  • Add the nightly version of the toolchain and the nightly WebAssembly (wasm) target to your development environment by running the following commands:

    rustup update nightly
    rustup target add wasm32-unknown-unknown --toolchain nightly
  • Verify your installation here.

  • Verifying Installation

    Verify the configuration of your development environment by running the following command:

    rustup show
    rustup +nightly show

    The command displays output similar to the following:

    # rustup show

    active toolchain
    ----------------

    stable-x86_64-unknown-linux-gnu (default)
    rustc 1.61.0 (fe5b13d68 2022-05-18)

    # rustup +nightly show

    active toolchain
    ----------------

    nightly-x86_64-unknown-linux-gnu (overridden by +toolchain on the command line)
    rustc 1.63.0-nightly (e7144
    - + \ No newline at end of file diff --git a/docs/build-guides-template-basic.html b/docs/build-guides-template-basic.html index e90ed116092b..cbb5f95c4f5a 100644 --- a/docs/build-guides-template-basic.html +++ b/docs/build-guides-template-basic.html @@ -22,7 +22,7 @@ - + @@ -85,7 +85,7 @@ for doing so:

    1. Head to General > Cross Chain Transfer on the right, and transfer 10 ROC:

    Region X cross chain transfer

    1. Sign the transaction with Polkadot.js. If all goes well, you should see the balance update in the upper right:

    Region X cross chain transfer

    1. Connect your wallet and make sure you select Rococo as your network:

    Connect your wallet to RegionX

    1. Click Purchase a Core on the left:

    GMcdatDW8AEC8kh

    1. In the lower right, click "Purchase Core":

    Purchase a core

    1. Go to My Regions, and click to select your region, then click Assign on the right side:

    Select and assign region

    1. Click Add Task, and input your ParaId along with a name for your chain:

    Add a new task

    1. Select your task, and select Provisional Assignment, and sign using Polkadot JS:

    Assign the core

    1. Once the transaction is confirmed, provided everything is synced and your collator is running, you should see blocks being persistently created as they were with the on-demand extrinsic:

    GMcdatDW8AEC8kh

    What's Next?

    Now that you can launch a layer one blockchain, the possibilities are endless:

    - + \ No newline at end of file diff --git a/docs/build-hackathon.html b/docs/build-hackathon.html index a73395711411..cd33bd8873df 100644 --- a/docs/build-hackathon.html +++ b/docs/build-hackathon.html @@ -22,7 +22,7 @@ - + @@ -49,7 +49,7 @@ that can be a feature of you hackathon or suggested prerequisite for those joining to use.

    Support / Contact

    If you have any questions regarding organizing a hackathon, please free feel to contact us by email or ask us via Element chat.

    - + \ No newline at end of file diff --git a/docs/build-hrmp-channels.html b/docs/build-hrmp-channels.html index 94692b260378..6b18cf8b38af 100644 --- a/docs/build-hrmp-channels.html +++ b/docs/build-hrmp-channels.html @@ -22,7 +22,7 @@ - + @@ -61,7 +61,7 @@ 0x0f001f000301000314000400000000070010a5d4e81300000000070010a5d4e80006000300c16678419c183c0ae8030000140d01000001003145

    asset-hub-hrmp-channel-xcm

    Opening HRMP Channels Between Two System Parachains

    As of Polkadot and Kusama runtimes 1,001,000, anyone can call an establishSystemChannel extrinsic with two system parachains as arguments in order to establish a channel from the given sender to receiver.

    - + \ No newline at end of file diff --git a/docs/build-index.html b/docs/build-index.html index dcc67824224e..e57397d98cce 100644 --- a/docs/build-index.html +++ b/docs/build-index.html @@ -22,7 +22,7 @@ - + @@ -42,7 +42,7 @@ are building.

    Grants

    • Grants - Information regarding grants and funding sources available in the Polkadot ecosystem.

    PCPs

    Polkadot Contracts Proposals (PCPs) are standards for smart contracts in the Polkadot ecosystem.

    Hackathon

    - + \ No newline at end of file diff --git a/docs/build-integrate-assets.html b/docs/build-integrate-assets.html index 14165966cb98..cf286be50ae4 100644 --- a/docs/build-integrate-assets.html +++ b/docs/build-integrate-assets.html @@ -22,7 +22,7 @@ - + @@ -159,7 +159,7 @@ be claimed).

    A great resource to learn more about Error Management in XCM is the Polkadot blog post from Gavin Wood, XCM Part III: Execution and Error Management.

    - + \ No newline at end of file diff --git a/docs/build-integration.html b/docs/build-integration.html index 870116c9ab10..2db1e4e16548 100644 --- a/docs/build-integration.html +++ b/docs/build-integration.html @@ -22,7 +22,7 @@ - + @@ -45,7 +45,7 @@ transactions. Parity and Web3 Foundation will be able to provide the best support if you use these tools.

    If your team would like support, join some of our community channels or contact support@polkadot.network.

    - + \ No newline at end of file diff --git a/docs/build-light-clients.html b/docs/build-light-clients.html index 0d6cfa13cedd..15bd15af90be 100644 --- a/docs/build-light-clients.html +++ b/docs/build-light-clients.html @@ -22,7 +22,7 @@ - + @@ -57,7 +57,7 @@ end-users to interact with applications connected to multiple blockchains or connect their own blockchains to applications that support it.

    note

    Substrate Connect will auto-detect whether a user is using the extension. If not, the Wasm light client will be created in-page for them.

    Resources

    - + \ No newline at end of file diff --git a/docs/build-network-overview.html b/docs/build-network-overview.html index 52ae115dabbb..e7e4c196d0dc 100644 --- a/docs/build-network-overview.html +++ b/docs/build-network-overview.html @@ -22,7 +22,7 @@ - + @@ -45,7 +45,7 @@ here.

    For other programmatic ways of interacting with these networks (including PolkadotJS), please view the Node Interactions page.

    Testnet Faucets

    Almost all tesnets either have a web-based interface for getting test currency or a Matrix room which you can post !drip <ADDRESS>

    See here for all available faucets and how to obtain testnet tokens.

    - + \ No newline at end of file diff --git a/docs/build-node-interaction.html b/docs/build-node-interaction.html index ea4d39c4032d..13246bb4d60d 100644 --- a/docs/build-node-interaction.html +++ b/docs/build-node-interaction.html @@ -22,7 +22,7 @@ - + @@ -60,7 +60,7 @@ block by the block author.

    {
    "number":"7409038",
    "hash":"0x0e9610f3c89fac046ef83aa625ad414d5403031faa026b7ab2a918184e389968",
    "parentHash":"0xba308541eb207bc639f36d392706309a031c21622f883fb07411060389c5ffdd",
    "stateRoot":"0x4426383b64a944ad7222a4019aefd558c749da0c6920cfcdfd587741d54abbe2",
    "extrinsicsRoot":"0x74749e5f5aeb610bc23fd6d8d79fd8bbf5e4b6053f70ba94ea6b3cc271df4b3a",
    "authorId":"Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
    "logs":[
    {
    "type":"PreRuntime",
    "index":"6",
    "value":[
    "BABE",
    "0x023a0200009c7d191000000000"
    ]
    },
    {
    "type":"Seal",
    "index":"5",
    "value":[
    "BABE",
    "0x2296a50fa4fea3a46a95ad5b1f09de76d22c6ed3dc6755718c976e2d14c63e4dd3c6257813d9bdc03bb180b1e20393f1558ae1204982e5c7570df393e11f908b"
    ]
    }
    ],
    "onInitialize":{
    "events":[

    ]
    },
    "extrinsics":[
    {
    "method":{
    "pallet":"timestamp",
    "method":"set"
    },
    "signature":null,
    "nonce":null,
    "args":{
    "now":"1620636072000"
    },
    "tip":null,
    "hash":"0x8b853f49b6543e4fcbc796ad3574ea5601d2869d80629e080e501da4cb7b74b4",
    "info":{

    },
    "events":[
    {
    "method":{
    "pallet":"system",
    "method":"ExtrinsicSuccess"
    },
    "data":[
    {
    "weight":"185253000",
    "class":"Mandatory",
    "paysFee":"Yes"
    }
    ]
    }
    ],
    "success":true,
    "paysFee":false
    },
    {
    "method":{
    "pallet":"balances",
    "method":"transfer"
    },
    "signature":{
    "signature":"0x94b63112648e8e692f0076fa1ccab3a04510c269d1392c1df2560503865e144e3afd578f1e37e98063b64b98a77a89a9cdc8ade579dcac0984e78d90646a052001",
    "signer":{
    "id":"Gr5sBB1EgdmQ7FG3Ud2BdECWQTMDXNgGPfdHMMtDsmT4Dj3"
    }
    },
    "nonce":"12",
    "args":{
    "dest":{
    "id":"J6ksma2jVeHRcRoYPZBkJRzRbckys7oSmgvjKLrVbj1U8bE"
    },
    "value":"100000000"
    },
    "tip":"0",
    "hash":"0xfbc5e5de75d64abe5aa3ee9272a3112b3ce53710664f6f2b9416b2ffda8799c2",
    "info":{
    "weight":"201217000",
    "class":"Normal",
    "partialFee":"2583332634"
    },
    "events":[
    {
    "method":{
    "pallet":"balances",
    "method":"Transfer"
    },
    "data":[
    "Gr5sBB1EgdmQ7FG3Ud2BdECWQTMDXNgGPfdHMMtDsmT4Dj3",
    "J6ksma2jVeHRcRoYPZBkJRzRbckys7oSmgvjKLrVbj1U8bE",
    "100000000"
    ]
    },
    {
    "method":{
    "pallet":"balances",
    "method":"Deposit"
    },
    "data":[
    "Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
    "2583332634"
    ]
    },
    {
    "method":{
    "pallet":"system",
    "method":"ExtrinsicSuccess"
    },
    "data":[
    {
    "weight":"201217000",
    "class":"Normal",
    "paysFee":"Yes"
    }
    ]
    }
    ],
    "success":true,
    "paysFee":true
    },
    {
    "method":{
    "pallet":"utility",
    "method":"batch"
    },
    "signature":{
    "signature":"0x8aa2fc3f0cff52533745679523705720cff42d0e7258b9797feed193deb0ca73474726e148af0a0b096d44c07f20e5292819ec92279cffb2897e95cc337e638e",
    "signer":{
    "id":"F4gmSZGiM9pMYPsKW7xnGktDr4zRmN2jqy5Ze678y9YWR7F"
    }
    },
    "nonce":"687",
    "args":{
    "calls":[
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "era":"2229"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "era":"2230"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "era":"2231"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"DifishR4auphofhzxsy2aupgYo4NaUECH7qgt71CgiB2o6P",
    "era":"2231"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"J1fishfH94nFZLNScHgC2HorWpFD2xdPxd96wtTCHLvKxfa",
    "era":"2231"
    }
    }
    ]
    },
    "tip":"0",
    "hash":"0x69171ec3f4e5e4dfd27f4d1c5b5dbc884932c5d9a078c84495bb7ab875c8785f",
    "info":{
    "weight":"629782467000",
    "class":"Normal",
    "partialFee":"5150837715"
    },
    "events":[
    {
    "method":{
    "pallet":"staking",
    "method":"Reward"
    },
    "data":[
    "Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "40730624074"
    ]
    },
    {
    "method":{
    "pallet":"staking",
    "method":"Reward"
    },
    "data":[
    "FhLcXuFkTwyc3o9K82VBahpain1YHWyGeNMDTTyeDJKfm5b",
    "4296071738"
    ]
    },
    {
    "method":{
    "pallet":"staking",
    "method":"Reward"
    },
    "data":[
    "F1NyXFUayqmVMdjNK45hcaTCE3JiqdU83sEGhQ3HQXn2Rpq",
    "1770904403"
    ]
    },

    // ...

    {
    "method":{
    "pallet":"utility",
    "method":"BatchCompleted"
    },
    "data":[

    ]
    },
    {
    "method":{
    "pallet":"balances",
    "method":"Deposit"
    },
    "data":[
    "Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
    "5150837715"
    ]
    },
    {
    "method":{
    "pallet":"system",
    "method":"ExtrinsicSuccess"
    },
    "data":[
    {
    "weight":"629782467000",
    "class":"Normal",
    "paysFee":"Yes"
    }
    ]
    }
    ],
    "success":true,
    "paysFee":true
    }
    ],
    "onFinalize":{
    "events":[

    ]
    },
    "finalized":true
    }
    The JS number type is a 53 bit precision float

    There is no guarantee that the numerical values in the response will have a numerical type. Any numbers larger than 2**53-1 will have a string type.

    Submitting a Transaction

    Submit a serialized transaction using the transaction endpoint with an HTTP POST request.

    import requests
    import json

    url = 'http://127.0.0.1:8080/transaction/'
    tx_headers = {'Content-type' : 'application/json', 'Accept' : 'text/plain'}
    response = requests.post(
    url,
    data='{"tx": "0xed0...000"}', # A serialized tx.
    headers=tx_headers
    )
    tx_response = json.loads(response.text)

    If successful, this endpoint returns a JSON with the transaction hash. In case of error, it will return an error report, e.g.:

    {
    "error": "Failed to parse a tx" | "Failed to submit a tx",
    "cause": "Upstream error description"
    }
    - + \ No newline at end of file diff --git a/docs/build-node-management.html b/docs/build-node-management.html index 77ff6f7a76da..6b603f508a20 100644 --- a/docs/build-node-management.html +++ b/docs/build-node-management.html @@ -22,7 +22,7 @@ - + @@ -70,7 +70,7 @@ has a monitor node metrics tutorial which uses this endpoint.

    - + \ No newline at end of file diff --git a/docs/build-open-source.html b/docs/build-open-source.html index 9d015bf73b33..aaa2bfcb4052 100644 --- a/docs/build-open-source.html +++ b/docs/build-open-source.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ the tech stack.

    ❗ All technologies listed above need to be open-source. Ideally, the links lead directly to the code.

    Note: You will need a GitHub account to suggest changes or open issues. If you do not have one, you may sign up for free.

    - + \ No newline at end of file diff --git a/docs/build-oracle.html b/docs/build-oracle.html index 686144a2e6c4..b1b00de40787 100644 --- a/docs/build-oracle.html +++ b/docs/build-oracle.html @@ -22,7 +22,7 @@ - + @@ -52,7 +52,7 @@ ecosystem develops and oracle parachains begin to appear, this article will be updated with a comparison of the different solutions and the benefits and drawbacks that each provide.

    - + \ No newline at end of file diff --git a/docs/build-pdk.html b/docs/build-pdk.html index 79f0ff42f432..0f99901de289 100644 --- a/docs/build-pdk.html +++ b/docs/build-pdk.html @@ -22,7 +22,7 @@ - + @@ -185,7 +185,7 @@ deprecated and parachains can purchase coretime to produce blocks continuously or on-demand.

    Resources

    - + \ No newline at end of file diff --git a/docs/build-protocol-index.html b/docs/build-protocol-index.html index d5c957f74470..fdb5e62fed11 100644 --- a/docs/build-protocol-index.html +++ b/docs/build-protocol-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-protocol-info.html b/docs/build-protocol-info.html index 49f20d2ccd8d..23bfe5197eff 100644 --- a/docs/build-protocol-info.html +++ b/docs/build-protocol-info.html @@ -22,7 +22,7 @@ - + @@ -129,7 +129,7 @@ to cancel a runtime upgrade. Using a finalized depth of ten blocks should be safe.

    Note that block production and finality are isolated processes in Polkadot, and the chain can have a long unfinalized head.

    Do users need to interact with any smart contracts?

    No, users interact directly with the chain's logic.

    Does Polkadot have state rent?

    No, Polkadot uses the existential deposit to prevent dust accounts and other economic mechanisms like locking or reserving tokens for operations that utilize state.

    What is an external source to see the current chain height?

    - + \ No newline at end of file diff --git a/docs/build-smart-contracts.html b/docs/build-smart-contracts.html index 1d68e2602962..427daf474afc 100644 --- a/docs/build-smart-contracts.html +++ b/docs/build-smart-contracts.html @@ -22,7 +22,7 @@ - + @@ -151,7 +151,7 @@ Substrate and Polkadot StackExchange to ask their questions. As always, keep up to date with Polkadot and Kusama by following the social channels.

    - + \ No newline at end of file diff --git a/docs/build-storage.html b/docs/build-storage.html index 59000f10dab3..d5caf9447ef0 100644 --- a/docs/build-storage.html +++ b/docs/build-storage.html @@ -22,7 +22,7 @@ - + @@ -62,7 +62,7 @@ directory info will not be visible if you switch to a new browser or clear the browser cache. The storage module allows you to export file directory info from the current browser and import it to the new browser.

    manage file dir

    note

    These above images are taken from this pull request

    - + \ No newline at end of file diff --git a/docs/build-tools-index.html b/docs/build-tools-index.html index a88ffc938f2c..81917531e458 100644 --- a/docs/build-tools-index.html +++ b/docs/build-tools-index.html @@ -22,7 +22,7 @@ - + @@ -115,7 +115,7 @@ Squid Archive Registry
  • Polka-store - A tool which scans a Substrate chain and stores balance-relevant transactions in an SQLite database.
  • Substrate-graph - A compact indexer for Substrate based nodes providing a GraphQL interface.
  • - + \ No newline at end of file diff --git a/docs/build-transaction-construction.html b/docs/build-transaction-construction.html index 4efdaab1e367..efd22f3de288 100644 --- a/docs/build-transaction-construction.html +++ b/docs/build-transaction-construction.html @@ -22,7 +22,7 @@ - + @@ -66,7 +66,7 @@ author_submitAndWatchExtrinsic, the latter of which will subscribe you to events to be notified as a transaction gets validated and included in the chain.

    Notes

    Some addresses to use in the examples. See Subkey documentation.

    $ subkey --network polkadot generate
    Secret phrase `pulp gaze fuel ... mercy inherit equal` is account:
    Secret seed: 0x57450b3e09ba4598 ... ... ... ... ... ... ... .. 219756eeba80bb16
    Public key (hex): 0x2ca17d26ca376087dc30ed52deb74bf0f64aca96fe78b05ec3e720a72adb1235
    Account ID: 0x2ca17d26ca376087dc30ed52deb74bf0f64aca96fe78b05ec3e720a72adb1235
    SS58 Address: 121X5bEgTZcGQx5NZjwuTjqqKoiG8B2wEAvrUFjuw24ZGZf2

    $ subkey --network polkadot generate
    Secret phrase `exercise auction soft ... obey control easily` is account:
    Secret seed: 0x5f4bbb9fbb69261a ... ... ... ... ... ... ... .. 4691ed7d1130fbbd
    Public key (hex): 0xda04de6cd781c98acf0693dfb97c11011938ad22fcc476ed0089ac5aec3fe243
    Account ID: 0xda04de6cd781c98acf0693dfb97c11011938ad22fcc476ed0089ac5aec3fe243
    SS58 Address: 15vrtLsCQFG3qRYUcaEeeEih4JwepocNJHkpsrqojqnZPc2y
    - + \ No newline at end of file diff --git a/docs/chain-state-values.html b/docs/chain-state-values.html index f19b0a66ea7e..16f595525665 100644 --- a/docs/chain-state-values.html +++ b/docs/chain-state-values.html @@ -22,7 +22,7 @@ - + @@ -61,7 +61,7 @@ you can create your own nomination pool.

  • : the minimum amount of KSM required to become an active nominator and earn rewards.

  • Active Validator Count

    The number of Kusama validators in the active set is .

    Auction Ending Period

    The auction ending period on Kusama is days long.

    Block Hash Count

    On Kusama, the maximum block number to block hash mappings to keep is (which maps to seven hours given 6-second block times).

    Bounty Curator Deposit

    On Kusama, the bounty curator deposit is calculated by multiplying the curator fee by the bounty curator deposit multiplier set to %. The deposit can range between a minimum of and a maximum of .

    Bounty Deposit

    The deposit to submit a bounty on Kusama is .

    Bounty Duration

    A Kusama bounty has a predetermined duration of days.

    Child Bounty Payout Delay

    The waiting time before claiming a Kusama child bounty reward is days.

    Conviction Voting Lock Period

    One conviction voting lock period on Kusama equals days.

    Existential Deposit

    The minimum number of tokens to keep an account alive on the Kusama Relay Chain is .

    Inactive Issuance

    Kusama's inactive issuance is in the era .

    Index Deposit

    The deposit to reserve an index on Kusama is .

    Maximum Number of Nominators

    The maximum number of nominators on Kusama is capped at and currently sits at .

    Maximum Number of Proxies per Account

    The maximum number of proxies per Kusama account is . You can have the same proxy for multiple accounts.

    Maximum Votes per Nominator

    A nominator on Kusama can select up to validators.

    Minimum Active Bond

    The minimum amount of tokens to nominate on Kusama is .

    Minimum Bond to Create a Nomination Pool

    The minimum bond to create a Kusama nomination pool is .

    Minimum Bond to Join a Nomination Pool

    The minimum bond to join a Kusama nomination pool is .

    Minimum Bond to Participate in Staking

    The minimum bond to nominate on Kusama is while the minimum amount to join a pool is .

    Minimum Crowdloan contribution

    The minimum amount to participate to a Kusama crowdloan is .

    Minimum Validator Bond

    To start a validator instance on Kusama, the minimum bond required is .

    Minimum Validator Commission

    The minimum commission a Kusama Validator can set is %.

    Multisig Deposit Base

    The multisig deposit base on Kusama is .

    Multisig Deposit Factor

    The multisig deposit factor on Kusama is .

    Nomination Pool Max Commission

    The maximum commission that can be set for a Kusama nomination pool is %.

    Nomination Pool Members

    There are currently members in Kusama nomination pools. There is no limit to the number of pools or pool members per pool.

    OpenGov Referendum Timeout

    A Kusama referendum is timeout for not submitting the Decision Deposit within days since its creation.

    OpenGov Submission Deposit

    A deposit of is needed to submit a referendum on Kusama.

    Parachain ID Registration Deposit

    Reserving a ParaID on Kusama requires a deposit of .

    Parachain Genesis State Registration Deposit

    Registering the genesis state and WASM code of a Kusama parachain requires a deposit per byte.

    Period per Slot Auction

    The number of periods per slot auction on Kusama is .

    Proxy Deposits

    The creation of proxies on Kusama requires a proxy deposit base of and a proxy deposit factor of that is multiplied by the number of proxies under the same proxied account.

    In case of time-delayed proxies, there is an announcement deposit base of for announcing a call and an announcement deposit factor of for each proxy call.

    Staking Miner Deposit and Reward

    Staking miners on Kusama are required to reserve a deposit to submit their solutions. The the deposit is the sum of a signed deposit base of , a signed deposit per byte of (a solution weighing 200KB would yield 200 x 0.00000032551 = 0.000065102 KSM), and a signed deposit weight set to 0 and has no effect.

    The signed reward base on Kusama is which is a fixed amount.

    Staking Miner Max Submissions

    The maximum number of submission for a staking miner on Kusama is .

    Total Issuance

    Kusama's total issuance is in the era .

    Treasury Burn Factor

    At the end of every spending period on Kusama, % of the available funds are burned.

    Treasury Spending Period

    The spending period on Kusama is currently days.

    Unbonding Duration

    The unbonding duration on Kusama is set to days.

    - + \ No newline at end of file diff --git a/docs/community-index.html b/docs/community-index.html index 24d0cff51f4d..a51b40d9bff2 100644 --- a/docs/community-index.html +++ b/docs/community-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/community.html b/docs/community.html index ed9dcc65fa6c..a423e2a775e3 100644 --- a/docs/community.html +++ b/docs/community.html @@ -22,7 +22,7 @@ - + @@ -49,7 +49,7 @@ Discover thriving communities and participate in engaging campaigns.
  • DotAppStore - Discover featured projects and apps upvoted by the Polkadot community.
  • Awesome Dot - community curated resources, projects, and learning material about the Polkadot and Kusama ecosystems.
  • - + \ No newline at end of file diff --git a/docs/contributing.html b/docs/contributing.html index 73e782ffcef4..41cd142fb962 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -22,7 +22,7 @@ - + @@ -54,7 +54,7 @@ your local copy with npx lint-staged, but for simplicity we also have a bot which runs this for us in your PRs.

    Heritage

    This document is based on the Level contribution guidelines.


    - + \ No newline at end of file diff --git a/docs/contributors.html b/docs/contributors.html index 127286b8f2d8..b04d161cdaf4 100644 --- a/docs/contributors.html +++ b/docs/contributors.html @@ -22,7 +22,7 @@ - + @@ -98,7 +98,7 @@ for the Polkadot protocol. He contributed in creating written content and example applications that demonstrate how to use these new technologies.

    You can now find Logan leading efforts to define the prediction market space at Zeitgeist.

    - + \ No newline at end of file diff --git a/docs/dashboards-index.html b/docs/dashboards-index.html index 44dccdfcf8cf..4c7d70baf1e1 100644 --- a/docs/dashboards-index.html +++ b/docs/dashboards-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/decentralized-futures.html b/docs/decentralized-futures.html index 0e36fd854d40..b584baaa5839 100644 --- a/docs/decentralized-futures.html +++ b/docs/decentralized-futures.html @@ -22,7 +22,7 @@ - + @@ -52,7 +52,7 @@ utilized, with granularity increasing proportionally with the amount sought. This meticulous approach ensures transparency and accountability in the allocation of resources.
  • A demonstrated willingness to receive a more significant portion of the value in long-term DOT rather than immediate FIAT, aligning with the broader ecosystem's goals.
  • - + \ No newline at end of file diff --git a/docs/decentralized-voices.html b/docs/decentralized-voices.html index 93d7f41e0bb0..cb7110d27273 100644 --- a/docs/decentralized-voices.html +++ b/docs/decentralized-voices.html @@ -22,7 +22,7 @@ - + @@ -59,7 +59,7 @@ dedicated community members to shape the future of the Polkadot ecosystem. For more detailed information, see the original Medium article.

    - + \ No newline at end of file diff --git a/docs/dev-heroes.html b/docs/dev-heroes.html index 594199bdbbb9..66d91e43f0a1 100644 --- a/docs/dev-heroes.html +++ b/docs/dev-heroes.html @@ -22,7 +22,7 @@ - + @@ -43,7 +43,7 @@ open source technology stack list and contribute with a pull request, an issue, or find and fix bugs.

  • Create content: Write a blog post, record a video tutorial, and write a Twitter thread. Share about your latest coding success, something you learned and are excited about.

  • Speak at events: Do a workshop or talk at meetups and conferences.

  • - + \ No newline at end of file diff --git a/docs/explore-index.html b/docs/explore-index.html index 2c41a42a5951..e125c76850f2 100644 --- a/docs/explore-index.html +++ b/docs/explore-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/faq.html b/docs/faq.html index 8100530b1489..dab1f2d4f8a3 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -22,7 +22,7 @@ - + @@ -203,7 +203,7 @@ fee calculation page in the Substrate documentation for more detailed information.

    Answered by Gav series

    The "Answered by Gav" series is a collection of posts uploaded to Reddit of questions that have been asked in the Polkadot Watercooler Riot channel and answered by Polkadot founder Gavin Wood.

    - + \ No newline at end of file diff --git a/docs/general-index.html b/docs/general-index.html index 7efa7d99fcd4..3c2a304d9982 100644 --- a/docs/general-index.html +++ b/docs/general-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics.html b/docs/general/dune-analytics.html index 1bed43a8bebc..4bf30bdf6e63 100644 --- a/docs/general/dune-analytics.html +++ b/docs/general/dune-analytics.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics/acala-dashboards.html b/docs/general/dune-analytics/acala-dashboards.html index b0cd153b0c07..03914df09c5b 100644 --- a/docs/general/dune-analytics/acala-dashboards.html +++ b/docs/general/dune-analytics/acala-dashboards.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    Acala List of Assets
    WITH
    decimals_for_each_symbol AS (
    SELECT
    symbol,
    MAX(decimals) AS decimals
    FROM
    acala.transfers
    WHERE
    symbol IS NOT NULL
    GROUP BY
    symbol
    )
    SELECT
    b.asset,
    b.symbol,
    d.decimals
    FROM
    acala.balances b
    LEFT JOIN decimals_for_each_symbol d ON b.symbol = d.symbol
    GROUP BY
    b.asset,
    b.symbol,
    d.decimals
    ORDER BY
    SUM(b.free + b.reserved + b.misc_frozen + b.frozen) DESC

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/assethub-dashboards.html b/docs/general/dune-analytics/assethub-dashboards.html index 4413ff8b7bd2..8f4cc44b1326 100644 --- a/docs/general/dune-analytics/assethub-dashboards.html +++ b/docs/general/dune-analytics/assethub-dashboards.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    Sum of USDC in Polkadot Parachains
    SELECT
    *
    FROM
    "query_3526956(asset_id='1984')" -- AssetHub Sum of Stablecoin on Each Chain by Time
    WHERE
    not chain_name = ''

    Query result:

    Visualized result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/astar-dashboards.html b/docs/general/dune-analytics/astar-dashboards.html index 9768aac001fa..f9c62fdae7d5 100644 --- a/docs/general/dune-analytics/astar-dashboards.html +++ b/docs/general/dune-analytics/astar-dashboards.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ queries. You can use the following DuneSQL queries as examples:

    Astar EVM Executed
    SELECT
    block_number, extrinsic_id, event_id, extrinsic_hash, section, method,
    json_extract_scalar(data, '$[0]') as tx_from,
    json_extract_scalar(data, '$[1]') as tx_to,
    json_extract_scalar(data, '$[2]') as tx_hash,
    json_extract(data, '$[3]') as tx_success
    FROM
    astar.events
    WHERE
    block_time >= TIMESTAMP '2024-02-13 00:00:00' and (section = 'ethereum' and method = 'Executed')
    limit 10000;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/bifrost-dashboards.html b/docs/general/dune-analytics/bifrost-dashboards.html index 5fc503985278..58700ae9b0d0 100644 --- a/docs/general/dune-analytics/bifrost-dashboards.html +++ b/docs/general/dune-analytics/bifrost-dashboards.html @@ -22,7 +22,7 @@ - + @@ -40,7 +40,7 @@ maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/bridgehub-dashboards.html b/docs/general/dune-analytics/bridgehub-dashboards.html index 396c6e04a0fe..32659eff810f 100644 --- a/docs/general/dune-analytics/bridgehub-dashboards.html +++ b/docs/general/dune-analytics/bridgehub-dashboards.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ queries. You can use the following DuneSQL queries as examples:

    Bridgehub and Kusama Message Trends
    WITH
    transactions AS (
    SELECT
    CASE
    WHEN ROW_NUMBER() OVER (
    PARTITION BY
    "from",
    "to",
    "send_time"
    ORDER BY
    "send_time"
    ) % 2 = 1 THEN "from"
    ELSE "to"
    END AS direction,
    date_trunc('month', "send_time") as month
    FROM
    query_3816910
    ),
    polkadot_to_kusama AS (
    SELECT
    month,
    COUNT(*) as count_polkadot_to_kusama
    FROM
    transactions
    WHERE
    direction = 'polkadot'
    GROUP BY
    month
    ),
    kusama_to_polkadot AS (
    SELECT
    month,
    COUNT(*) as count_kusama_to_polkadot
    FROM
    transactions
    WHERE
    direction = 'kusama'
    GROUP BY
    month
    ),
    all_polkadot_to_kusama AS (
    SELECT
    'for_join' as "for_join",
    COUNT(*) as total_count_polkadot_to_kusama
    FROM
    transactions
    WHERE
    direction = 'polkadot'
    ),
    all_kusama_to_polkadot AS (
    SELECT
    'for_join' as "for_join",
    COUNT(*) as total_count_kusama_to_polkadot
    FROM
    transactions
    WHERE
    direction = 'kusama'
    ),
    monthly_result as (
    SELECT
    coalesce(
    polkadot_to_kusama.month,
    kusama_to_polkadot.month
    ) as month,
    coalesce(count_polkadot_to_kusama, 0) as count_polkadot_to_kusama,
    coalesce(count_kusama_to_polkadot, 0) as count_kusama_to_polkadot,
    'for_join' as "for_join"
    FROM
    polkadot_to_kusama
    FULL OUTER JOIN kusama_to_polkadot ON polkadot_to_kusama.month = kusama_to_polkadot.month
    ORDER BY
    month
    )
    SELECT
    monthly_result.month,
    monthly_result.count_polkadot_to_kusama,
    monthly_result.count_kusama_to_polkadot,
    all_polkadot_to_kusama.total_count_polkadot_to_kusama,
    all_kusama_to_polkadot.total_count_kusama_to_polkadot
    FROM
    monthly_result
    LEFT JOIN all_polkadot_to_kusama on monthly_result.for_join = all_polkadot_to_kusama.for_join
    LEFT JOIN all_kusama_to_polkadot on monthly_result.for_join = all_kusama_to_polkadot.for_join

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/centrifuge-dashboards.html b/docs/general/dune-analytics/centrifuge-dashboards.html index bcf24aa10fa9..c91d34817220 100644 --- a/docs/general/dune-analytics/centrifuge-dashboards.html +++ b/docs/general/dune-analytics/centrifuge-dashboards.html @@ -22,7 +22,7 @@ - + @@ -49,7 +49,7 @@ maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/collectives-dashboards.html b/docs/general/dune-analytics/collectives-dashboards.html index 5d4b93ce1001..ee2682cd9e7a 100644 --- a/docs/general/dune-analytics/collectives-dashboards.html +++ b/docs/general/dune-analytics/collectives-dashboards.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ materialized queries. You can use the following DuneSQL queries as examples:

    Collectives Referenda Types
    WITH types AS (
    SELECT
    block_time,
    JSON_EXTRACT_SCALAR(params, '$.proposal.lookup.hash') AS lookup,
    JSON_EXTRACT_SCALAR(params, '$.proposal_origin.fellowshipOrigins') AS fellowshipOrigins
    FROM
    collectives.extrinsics
    WHERE
    section = 'fellowshipReferenda'
    AND method = 'submit'
    AND JSON_EXTRACT_SCALAR(params, '$.proposal.lookup.hash') IS NOT NULL
    )
    SELECT
    JSON_EXTRACT_SCALAR(data, '$[0]') AS r_id,
    JSON_EXTRACT_SCALAR(data, '$[2].lookup.hash') AS lookup,
    COALESCE(types.fellowshipOrigins, 'Fellows') AS types
    FROM
    collectives.events
    LEFT JOIN types ON JSON_EXTRACT_SCALAR(data, '$[2].lookup.hash') = types.lookup
    WHERE
    method = 'Submitted'
    AND JSON_EXTRACT_SCALAR(data, '$[2].lookup.hash') IS NOT NULL;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/coretime-dashboards.html b/docs/general/dune-analytics/coretime-dashboards.html index aab6cc83b06e..c364ef150a60 100644 --- a/docs/general/dune-analytics/coretime-dashboards.html +++ b/docs/general/dune-analytics/coretime-dashboards.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ queries. You can use the following DuneSQL queries as examples:

    Kusama Coretime Core Statistics
    WITH
    core_sta as (
    SELECT
    block_time,
    get_href (
    'https://nodle.subscan.io/extrinsic/' || cast(extrinsic_id as VARCHAR),
    extrinsic_id
    ) as extrinsics_url,
    extrinsic_id,
    CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS BIGINT) as sale_start,
    CAST(JSON_EXTRACT_SCALAR(data, '$[1]') AS BIGINT) as leadin_length,
    CAST(JSON_EXTRACT_SCALAR(data, '$[2]') AS BIGINT) / pow(10, 12) as start_price,
    CAST(JSON_EXTRACT_SCALAR(data, '$[3]') AS BIGINT) / pow(10, 12) as regular_price,
    CAST(JSON_EXTRACT_SCALAR(data, '$[4]') AS BIGINT) as region_begin,
    CAST(JSON_EXTRACT_SCALAR(data, '$[5]') AS BIGINT) as region_end,
    CAST(JSON_EXTRACT_SCALAR(data, '$[6]') AS BIGINT) as ideal_cores_sold,
    CAST(JSON_EXTRACT_SCALAR(data, '$[7]') AS BIGINT) as cores_offered,
    CAST(
    ROW_NUMBER() OVER (
    ORDER BY
    block_time ASC
    ) AS BIGINT
    ) AS sale_round
    FROM
    coretime_kusama.events
    WHERE
    section = 'broker'
    AND method = 'SaleInitialized'
    )
    SELECT
    *,
    get_href (
    'https://dune.com/substrate/kusama-coretime-sales-history?sale_round=' || cast(sale_round as VARCHAR),
    cast(sale_round as VARCHAR)
    ) as sale_round_url
    FROM
    core_sta
    ORDER BY
    block_time DESC

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/energywebx-dashboards.html b/docs/general/dune-analytics/energywebx-dashboards.html index fc44c75dad3f..c1096252fd76 100644 --- a/docs/general/dune-analytics/energywebx-dashboards.html +++ b/docs/general/dune-analytics/energywebx-dashboards.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    EnergyWebX Token Lifted & Lowered
    WITH
    lift AS (
    SELECT
    date_trunc('day', block_time) AS day,
    SUM(
    CAST(json_extract_scalar(data, '$[1]') AS double) / POWER(10, 18)
    ) AS amount,
    'AVTLifted' AS method
    FROM
    energywebx.events
    WHERE
    method = 'AVTLifted'
    GROUP BY
    date_trunc('day', block_time)
    ),
    lower AS (
    SELECT
    date_trunc('day', block_time) AS day,
    SUM(
    CAST(json_extract_scalar(data, '$[2]') AS double) / POWER(10, 18)
    ) AS amount,
    'AVTLowered' AS method
    FROM
    energywebx.events
    WHERE
    method = 'AvtLowered'
    GROUP BY
    date_trunc('day', block_time)
    )
    SELECT
    *
    FROM
    lift
    UNION ALL
    SELECT
    *
    FROM
    lower;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/frequency-dashboards.html b/docs/general/dune-analytics/frequency-dashboards.html index 55445c31d4a4..d86c6dedd65b 100644 --- a/docs/general/dune-analytics/frequency-dashboards.html +++ b/docs/general/dune-analytics/frequency-dashboards.html @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ queries. You can use the following DuneSQL queries as examples:

    Frequency Extrinsics by Day
    SELECT
    DATE_TRUNC('day', block_time) AS day,
    section || '_' || method AS section_method,
    COUNT(*) AS cnt
    FROM
    frequency.extrinsics
    WHERE
    section || '_' || method IN (
    SELECT section_method
    FROM unnest(SPLIT('{{section_method}}', ',')) AS c(section_method)
    )
    GROUP BY
    DATE_TRUNC('day', block_time),
    section || '_' || method;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/hydration-dashboards.html b/docs/general/dune-analytics/hydration-dashboards.html index 4bed5408f556..0d143fe3d76d 100644 --- a/docs/general/dune-analytics/hydration-dashboards.html +++ b/docs/general/dune-analytics/hydration-dashboards.html @@ -22,7 +22,7 @@ - + @@ -49,7 +49,7 @@ and still maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/interlay-dashboards.html b/docs/general/dune-analytics/interlay-dashboards.html index a5508e7b5500..0e8beeb2337e 100644 --- a/docs/general/dune-analytics/interlay-dashboards.html +++ b/docs/general/dune-analytics/interlay-dashboards.html @@ -22,7 +22,7 @@ - + @@ -49,7 +49,7 @@ and still maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/invarch-dashboards.html b/docs/general/dune-analytics/invarch-dashboards.html index 181ce0ed80f0..adfd79317797 100644 --- a/docs/general/dune-analytics/invarch-dashboards.html +++ b/docs/general/dune-analytics/invarch-dashboards.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    InvArch Cumulative Activated Acounts by Day
    WITH accounts_first_active AS (
    SELECT
    address_ss58,
    MIN(date_trunc('day', ts)) AS first_active_date
    FROM
    invarch.balances
    WHERE
    (free + reserved + misc_frozen + frozen) > 0
    GROUP BY
    address_ss58
    )
    SELECT
    first_active_date AS date,
    SUM(COUNT(DISTINCT address_ss58)) OVER (
    ORDER BY
    DATE(first_active_date)
    ) AS cumulative_accounts
    FROM
    accounts_first_active
    GROUP BY
    first_active_date
    ORDER BY
    first_active_date DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/litentry-dashboards.html b/docs/general/dune-analytics/litentry-dashboards.html index 099e66847983..7c2ea0da704d 100644 --- a/docs/general/dune-analytics/litentry-dashboards.html +++ b/docs/general/dune-analytics/litentry-dashboards.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ queries. You can use the following DuneSQL queries as examples:

    Litentry LIT Token Sent To Ethereum
    SELECT DISTINCT
    block_time,
    extrinsic_id,
    get_href(
    'https://litentry.statescan.io/#/extrinsics/' || extrinsic_id,
    extrinsic_id
    ) AS extrinsic_id_url,
    JSON_VALUE(data, 'strict $[0]') AS dest_id,
    JSON_VALUE(data, 'strict $[1]') AS nonce,
    JSON_VALUE(data, 'strict $[2]') AS source_id,
    IF(
    JSON_VALUE(data, 'strict $[3]') LIKE '0x%',
    bytearray_to_int256(JSON_VALUE(data, 'strict $[3]')) / POW(10, 12),
    CAST(JSON_VALUE(data, 'strict $[3]') AS int256) / POW(10, 12)
    ) AS amount,
    JSON_VALUE(data, 'strict $[4]') AS recipient,
    get_href(
    'https://etherscan.io/address/' || JSON_VALUE(data, 'strict $[4]'),
    CONCAT(
    SUBSTR(JSON_VALUE(data, 'strict $[4]'), 1, 4),
    '...',
    SUBSTR(
    JSON_VALUE(data, 'strict $[4]'),
    LENGTH(JSON_VALUE(data, 'strict $[4]')) - 3
    )
    )
    ) AS recipient_url
    FROM
    litentry.events
    WHERE
    section = 'chainBridge'
    AND method = 'FungibleTransfer'
    ORDER BY
    block_time DESC;

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/manta-dashboards.html b/docs/general/dune-analytics/manta-dashboards.html index 50c79492c7fe..048c9a6b2bd5 100644 --- a/docs/general/dune-analytics/manta-dashboards.html +++ b/docs/general/dune-analytics/manta-dashboards.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    Manta to Moonbeam XTokens Transfer
    SELECT
    DATE_TRUNC('day', block_time) AS day,
    SUM(
    CAST(json_extract_scalar(params, '$.amount') AS DOUBLE) / POWER(10, 18)
    ) AS amount,
    'Manta to Moonbeam' AS section
    FROM
    manta.extrinsics
    WHERE
    section = 'xTokens'
    AND method = 'transfer'
    AND json_extract_scalar(params, '$.dest.v3.interior.x2[0].parachain') = '2004'
    GROUP BY
    DATE_TRUNC('day', block_time)
    ORDER BY
    day DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/moonbeam-dashboards.html b/docs/general/dune-analytics/moonbeam-dashboards.html index dd5c2bb938a1..c299c87ea33a 100644 --- a/docs/general/dune-analytics/moonbeam-dashboards.html +++ b/docs/general/dune-analytics/moonbeam-dashboards.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ queries. You can use the following DuneSQL queries as examples:

    Moonbeam Referenda Result
    SELECT DISTINCT
    CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS INTEGER) AS referenda_id,
    get_href(
    'https://moonbeam.subscan.io/referenda_v2/' || CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS VARCHAR),
    CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS VARCHAR)
    ) AS referenda_id_url,
    varbinary_to_uint256(
    from_hex(SUBSTR(JSON_EXTRACT_SCALAR(data, '$[1].ayes'), 3))
    ) / POW(10, 18) AS aye_total,
    varbinary_to_uint256(
    from_hex(SUBSTR(JSON_EXTRACT_SCALAR(data, '$[1].nays'), 3))
    ) / POW(10, 18) AS nay_total,
    varbinary_to_uint256(
    from_hex(SUBSTR(JSON_EXTRACT_SCALAR(data, '$[1].support'), 3))
    ) / POW(10, 18) AS support,
    method AS result
    FROM
    moonbeam.events
    WHERE
    section = 'referenda'
    AND (
    method = 'Confirmed'
    OR method = 'Rejected'
    OR method = 'Cancelled'
    OR method = 'TimedOut'
    )
    ORDER BY
    referenda_id DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/neuroweb-dashboards.html b/docs/general/dune-analytics/neuroweb-dashboards.html index be2b4ade8023..3e3defcecc87 100644 --- a/docs/general/dune-analytics/neuroweb-dashboards.html +++ b/docs/general/dune-analytics/neuroweb-dashboards.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ queries. You can use the following DuneSQL queries as examples:

    Neuroweb Knowledge Asset Distribution
    SELECT DISTINCT
    get_href(
    'https://dkg.origintrail.io/profile?wallet=' || CAST(To AS VARCHAR),
    CONCAT(
    SUBSTR(To, 1, 4),
    '...',
    SUBSTR(To, LENGTH(To) - 3)
    )
    ) AS Holder_URL,
    CONCAT(
    SUBSTR(To, 1, 4),
    '...',
    SUBSTR(To, LENGTH(To) - 3)
    ) AS Holder,
    COUNT("Token ID") AS "# of Tokens"
    FROM
    query_3695045
    GROUP BY
    To
    ORDER BY
    "# of Tokens" DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/nodle-dashboards.html b/docs/general/dune-analytics/nodle-dashboards.html index b618b7b9157f..fe3a8de82493 100644 --- a/docs/general/dune-analytics/nodle-dashboards.html +++ b/docs/general/dune-analytics/nodle-dashboards.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ queries. You can use the following DuneSQL queries as examples:

    Nodle Mint Uniques
    SELECT DISTINCT
    block_time,
    JSON_EXTRACT_SCALAR(call_args, '$.owner.id') AS owner,
    JSON_EXTRACT(call_args, '$.collection') AS collection,
    JSON_EXTRACT(call_args, '$.item') AS item
    FROM
    nodle.calls
    WHERE
    (call_section = 'nodleUniques' OR call_section = 'uniques')
    AND call_method = 'mint'
    AND extrinsic_id NOT IN (
    SELECT
    extrinsic_id
    FROM
    nodle.events
    WHERE
    method = 'ExtrinsicFailed'
    );

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/parachain-dashboards.html b/docs/general/dune-analytics/parachain-dashboards.html index 28617a44ccda..b8e1fee3f127 100644 --- a/docs/general/dune-analytics/parachain-dashboards.html +++ b/docs/general/dune-analytics/parachain-dashboards.html @@ -22,13 +22,13 @@ - +

    Parachain Dashboards

    In-depth analysis dashboards for each specific parachain within the Polkadot ecosystem.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/pendulum-dashboards.html b/docs/general/dune-analytics/pendulum-dashboards.html index 40292eebba87..54e4436feff8 100644 --- a/docs/general/dune-analytics/pendulum-dashboards.html +++ b/docs/general/dune-analytics/pendulum-dashboards.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ queries. You can use the following DuneSQL queries as examples:

    Pendulum Spacewalk Transactions by Month
    SELECT
    DATE_TRUNC('month', block_time) AS month,
    SUM(amount) AS amount,
    COUNT(*) AS count,
    token_name
    FROM
    query_3821151 -- Pendulum Spacewalk Transactions
    GROUP BY
    DATE_TRUNC('month', block_time),
    token_name;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/people-dashboards.html b/docs/general/dune-analytics/people-dashboards.html index bd45d5b6410d..d463f00dcde4 100644 --- a/docs/general/dune-analytics/people-dashboards.html +++ b/docs/general/dune-analytics/people-dashboards.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    Kusama People Chain - Identity History Sample
    SELECT
    block_time,
    extrinsic_id,
    signer_ss58,
    signer_pub_key,
    CAST(
    from_utf8(
    from_hex(JSON_EXTRACT_SCALAR(call_args, '$.info.display.raw'))
    ) AS VARCHAR
    ) AS name,
    CAST(
    from_utf8(
    from_hex(JSON_EXTRACT_SCALAR(call_args, '$.info.email.raw'))
    ) AS VARCHAR
    ) AS email
    FROM
    people_kusama.calls
    WHERE
    call_section = 'identity'
    AND call_method = 'setIdentity';

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/phala-dashboards.html b/docs/general/dune-analytics/phala-dashboards.html index 07bdda1888e0..633bfe774916 100644 --- a/docs/general/dune-analytics/phala-dashboards.html +++ b/docs/general/dune-analytics/phala-dashboards.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    Phala Computation
    SELECT
    chain,
    circulation,
    sygma_bridge,
    reward,
    COALESCE(total_issuance, total_supply) AS total_issuance,
    total_value,
    idle_worker_count,
    daily_rewards,
    average_apr,
    budget_per_share,
    delegator_count
    FROM
    dune.phala_network.dataset_phala_computation;

    Query result:

    Visualizations using the query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polimec-dashboards.html b/docs/general/dune-analytics/polimec-dashboards.html index be0534cee319..a6c72195a76a 100644 --- a/docs/general/dune-analytics/polimec-dashboards.html +++ b/docs/general/dune-analytics/polimec-dashboards.html @@ -22,7 +22,7 @@ - + @@ -34,7 +34,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polimec Latest Reward Distribution
    WITH latest_round AS (
    SELECT
    MAX(CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS BIGINT)) AS start_block
    FROM
    polimec.events
    WHERE
    section = 'parachainStaking'
    AND method = 'NewRound'
    ),
    summed AS (
    SELECT
    MAX(block_time) AS latest_time,
    JSON_EXTRACT_SCALAR(JSON_PARSE(data), '$[0]') AS delegator,
    SUM(
    CAST(JSON_EXTRACT_SCALAR(data, '$[1]') AS BIGINT) / POW(10, 10)
    ) AS reward
    FROM
    polimec.events
    WHERE
    section = 'parachainStaking'
    AND method = 'Rewarded'
    AND CAST(block_number AS BIGINT) >= (
    SELECT
    start_block
    FROM
    latest_round
    )
    GROUP BY
    JSON_EXTRACT_SCALAR(JSON_PARSE(data), '$[0]')
    )
    SELECT
    latest_time,
    delegator,
    get_href(
    'https://explorer.polimec.org/polimec/account/' || delegator,
    CONCAT(
    SUBSTR(delegator, 1, 4),
    '...',
    SUBSTR(delegator, LENGTH(delegator) - 3)
    )
    ) AS delegator_url,
    reward
    FROM
    summed
    ORDER BY
    reward DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadex-dashboards.html b/docs/general/dune-analytics/polkadex-dashboards.html index 75f54f5e87c3..f3dc03bd5a8a 100644 --- a/docs/general/dune-analytics/polkadex-dashboards.html +++ b/docs/general/dune-analytics/polkadex-dashboards.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polkadot BridgeHub Outbound Msg Sent To Ethereum
    SELECT
    DATE_TRUNC('day', block_time) AS day,
    COUNT(method) AS cnt
    FROM
    polkadex.events
    WHERE
    method = 'TransferredMultiAssets'
    GROUP BY
    DATE_TRUNC('day', block_time);

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-governance.html b/docs/general/dune-analytics/polkadot-dashboards-governance.html index 5250cad58a99..a37e9d184629 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-governance.html +++ b/docs/general/dune-analytics/polkadot-dashboards-governance.html @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ Visit our dashboard on Dune to use the referendum_id parameter for more in-depth analysis. For more information, please visit the Dune documentation on parameters.

    Voting Power Analysis

    • Voting Power Daily Accumulation

    • Aye vs Nay

    Vote Analysis

    • Aye Votes Analysis

    • Nay Votes Analysis

    • Abstain Votes Analysis

    Voter Insights

    • First Time Voter Analysis

    • Voter Conviction Adjustment

    • Awakened Voters

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-network.html b/docs/general/dune-analytics/polkadot-dashboards-network.html index f2ee7d808110..6a72ea35daf8 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-network.html +++ b/docs/general/dune-analytics/polkadot-dashboards-network.html @@ -22,7 +22,7 @@ - + @@ -46,7 +46,7 @@ stake concentration by showing the difference between the highest and lowest stakes as a percentage of the total stake, offering insights into the network's staking dynamics and the level of decentralization.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-overview.html b/docs/general/dune-analytics/polkadot-dashboards-overview.html index ee3e7cb1afec..d1e0a7068903 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-overview.html +++ b/docs/general/dune-analytics/polkadot-dashboards-overview.html @@ -22,7 +22,7 @@ - + @@ -71,7 +71,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polkadot Staking APR (Normalized)
    SELECT
    AVG(validator_normalized_staking_apr) AS staking_apr,
    era,
    DATE_FORMAT(ts, '%Y-%m-%d') AS era_ts
    FROM
    dune.substrate.result_polkadot_validators
    WHERE
    validator_is_active = TRUE
    AND validator_commission <> 1
    GROUP BY
    era,
    ts
    HAVING
    AVG(validator_normalized_staking_apr) > 0
    ORDER BY
    era DESC;

    Query result:

    Visualized result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-staking.html b/docs/general/dune-analytics/polkadot-dashboards-staking.html index 57e09c26c5dc..76e0d77e3081 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-staking.html +++ b/docs/general/dune-analytics/polkadot-dashboards-staking.html @@ -22,7 +22,7 @@ - + @@ -58,7 +58,7 @@ Visit our dashboard on Dune to use the user_ss58 parameter for more in-depth analysis. For more information, please visit the Dune documentation on parameters.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards.html b/docs/general/dune-analytics/polkadot-dashboards.html index 3f83a4c62528..fbaa74cd8934 100644 --- a/docs/general/dune-analytics/polkadot-dashboards.html +++ b/docs/general/dune-analytics/polkadot-dashboards.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html index b553fb4bd26b..16b2b3ab0472 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html index b9752856d455..678dbd0c8113 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html @@ -22,7 +22,7 @@ - + @@ -84,7 +84,7 @@ voting conviction, using interactive elements that link to external references for detailed blockchain data. This allows for an in-depth look at the re-emergence of major stakeholders in the decision-making process.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html index 552bb0fd4dea..b814f337569d 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html @@ -22,7 +22,7 @@ - + @@ -32,7 +32,7 @@ Polkassembly.

    If you want to see more details of each referendum, please check Polkadot Opengov - Referendum Voting Analysis.

    Authored by @ colorfulnotion

    Controversial Referenda

    Select those referenda with approval ratings ranging from 0.2 to 0.8, and consider them as controversial referenda.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html index cb78b09b9d51..34ee6613b11b 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ how voter convictions shift across referenda.

    Methodology

    Calculates each voter's previous average conviction, compares it to their current conviction in the referendum, and categorizes the change as Increase 🔼, Maintain 🔁, or Decrease 🔽. Finally, it provides counts and percentages for each category

    Awakened Voters

    Enumerate the "Aye" and "Nay" voters who have not voted in the last 90 days

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html index 87bc9419f384..b5c99828d724 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@

    Polkadot Staking Dashboard (Nomination Pool)

    View On Dune: Polkadot Staking Dashboard

    We're using default parameters for all of the following parameterized charts. Visit our dashboard on Dune to use the pool_id parameter and analyze a specific referendum.

    For a _specific nomination pool id, this dashbaord shows:

    • Pool Members
    • Historical APY, Daily Pool Rewards & Fees

    Raw data is presented at the bottom.

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_nominationpools

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html index 770208944bf3..77b352b373a6 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@

    Polkadot Staking Dashboard (Nominators)

    View On Dune: Polkadot Staking Dashboard

    We're using default parameters for all of the following parameterized charts. Visit our dashboard on Dune to use the nominator_ss58 parameter and analyze a specific referendum.

    For a specific nominator, this dashboard shows:

    • Nominator Staking Rewards
    • Nominator Shares
    • Delegated Amount
    • Nominator Staking Rewards Raw Data

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_nominators

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html index f059ffdc5787..b8f09cf0549c 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@

    Polkadot Staking Dashboard (Pool Member)

    View On Dune: Polkadot Staking Dashboard

    We're using default parameters for all of the following parameterized charts. Visit our dashboard on Dune to use the user_ss58 parameter and analyze a specific referendum.

    For a specific nomination pool member

    This dashboard shows raw data of member activity within the pool

    Member Pool Fee: 365 * member_staking_rewards / member_bonded

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_poolmembers

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html index 80f748446d78..78bf24fa2285 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html @@ -22,7 +22,7 @@ - + @@ -34,7 +34,7 @@ commission) / validator_total_stake. This metric nomoralized the reward rate across active validator sets

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_validators

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html index 6bb15f21770c..71f9b300770e 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ dune.substrate.result_polkadot_nominationpools (MetVeiw)
  • Pool Members - dune.substrate.result_polkadot_poolmembers (MetVeiw)
  • On-Chain Identities - dune.substrate.result_polkadot_identity (MetVeiw)
  • Github repo: substrate-etl

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/snowbridge-dashboards.html b/docs/general/dune-analytics/snowbridge-dashboards.html index 68d7bf65f93a..085f038d7626 100644 --- a/docs/general/dune-analytics/snowbridge-dashboards.html +++ b/docs/general/dune-analytics/snowbridge-dashboards.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polkadot BridgeHub Outbound Msg Sent To Ethereum
    SELECT DISTINCT
    block_time,
    block_number,
    block_hash,
    extrinsic_id,
    extrinsic_hash,
    event_id,
    section,
    method,
    CAST(JSON_VALUE(data, 'strict $[0]') AS VARCHAR) AS message_id,
    CAST(JSON_VALUE(data, 'strict $[1]') AS uint256) AS nonce
    FROM
    bridgehub.events
    WHERE
    section = 'ethereumOutboundQueue'
    AND method = 'MessageAccepted';

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/stellaswap-dashboards.html b/docs/general/dune-analytics/stellaswap-dashboards.html index e2a9965d2a31..885429bffb7a 100644 --- a/docs/general/dune-analytics/stellaswap-dashboards.html +++ b/docs/general/dune-analytics/stellaswap-dashboards.html @@ -22,7 +22,7 @@ - + @@ -48,7 +48,7 @@ calculated.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/unique-dashboards.html b/docs/general/dune-analytics/unique-dashboards.html index 1d74349ef88b..ab67b3dcc61d 100644 --- a/docs/general/dune-analytics/unique-dashboards.html +++ b/docs/general/dune-analytics/unique-dashboards.html @@ -22,7 +22,7 @@ - + @@ -37,7 +37,7 @@ queries. You can use the following DuneSQL queries as examples:

    Unique Top Collections by Total Sales Amount
    SELECT
    collection_id_with_dashboard_url,
    token_prefix,
    SUM(for_price) AS total_amount
    FROM
    dune.substrate.result_unique_nft_transaction_info
    GROUP BY
    collection_id_with_dashboard_url,
    token_prefix
    ORDER BY
    SUM(for_price) DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dunesql-cheatsheet.html b/docs/general/dunesql-cheatsheet.html index 5b57d22badef..abb6149bf7b0 100644 --- a/docs/general/dunesql-cheatsheet.html +++ b/docs/general/dunesql-cheatsheet.html @@ -22,7 +22,7 @@ - + @@ -32,7 +32,7 @@ versions of SQL. Below is a comparison table of common features between DuneSQL and Google BigQuery SQL.

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL documentation.

    Problem TypeBigQueryDuneSQL(V2)Description
    JSON Reading MethodJSON_EXTRACT_SCALAR(call_args, "$.remark")JSON_EXTRACT_SCALAR(JSON_PARSE(call_args), '$.remark')In DuneSQL, JSON_PARSE is needed to split the JSON if it is initially not in JSON format but is transformed into a JSON string.
    JSON array to SQL arrayJSON_EXTRACT_ARRAY(JSON_EXTRACT(pv, '$.others'))cast(json_extract(pv, '$.others') as array<json>)BigQuery uses a function for this conversion, while DuneSQL utilizes casting and supports the JSON data type.
    HEX to UTF8SAFE_CONVERT_BYTES_TO_STRING(FROM_HEX(SUBSTR(hex_encode, 3)))FROM_UTF8(from_hex(SUBSTR(hex_encode, 3)))In DuneSQL, the SAFE_CONVERT_BYTES_TO_STRING is not required.
    Time SeriesTIMESTAMP_TRUNC(block_time, DAY) >= TIMESTAMP("2023-12-01")block_time >= date('2023-12-01')Time conversion in DuneSQL is simpler, involving direct usage of variable operator date(value).
    Data Type Conversion (FLOAT64 to DOUBLE)CAST(JSON_EXTRACT_SCALAR(nominationpools_rewardpools, '$.lastRecordedRewardCounter') AS FLOAT64)CAST(JSON_EXTRACT_SCALAR(nominationpools_rewardpools, '$.lastRecordedRewardCounter')BigQuery refers to the data format as FLOAT64, while in DuneSQL, it is termed DOUBLE.
    Handling Null ValuesIFNULL(prev_member_bonded, 0)COALESCE(prev_member_bonded, 0)In DuneSQL, BigQuery's IFNULL is equivalent to COALESCE.
    Calculating Local Time and Subtracting DaysTIMESTAMP_TRUNC(ts, DAY) >= TIMESTAMP(DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY))ts >= date(current_date - interval '30' day)In BigQuery, operations on dates require functions, but DuneSQL allows direct use of + and -.
    Using Hyperlinks in TablesSELECT concat(concat(concat("<a href='https://analytics.polkaholic.io/superset/dashboard/77/?account=", address_ss58), "'>"), if(address_name is null, concat(address_ss58, '</a>'), concat(address_name, '</a>')))CONCAT('<a target="_new" href="https://analytics.polkaholic.io/superset/dashboard/77/?account=', address_ss58, '">', address_ss58 ,'</a>') AS address_ss58DuneSQL enables string concatenation using CONCAT, making it straightforward compared to the multiple concat functions required in BigQuery.
    - + \ No newline at end of file diff --git a/docs/general/onboarding-status-and-key-dashboards.html b/docs/general/onboarding-status-and-key-dashboards.html index 638fbbcefc96..72e1237366e1 100644 --- a/docs/general/onboarding-status-and-key-dashboards.html +++ b/docs/general/onboarding-status-and-key-dashboards.html @@ -22,7 +22,7 @@ - + @@ -33,7 +33,7 @@ powerful Dune Integration.

    The data must flow. As dashboard catalysts, we are looking forward to seeing more impressive dashboards developed by the community, leveraging this rich dataset to unlock new possibilities and insights.

    - + \ No newline at end of file diff --git a/docs/general/polkadot-ecosystem-overview.html b/docs/general/polkadot-ecosystem-overview.html index 4c5153ef6878..f521deb48c3f 100644 --- a/docs/general/polkadot-ecosystem-overview.html +++ b/docs/general/polkadot-ecosystem-overview.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ Asset Hub Dashboards
  • For Polkadot relay-chain treasury, visit Polkadot Dashboards Governance
  • For Polkadot staking, visit Polkadot Dashboards Staking
  • For NFTs, visit Unique Dashboards
  • Activities Metrics

    Polkadot Treasury Flow

    Polkadot Network & Security

    XCM Metrics

    - + \ No newline at end of file diff --git a/docs/general/project-dashboards.html b/docs/general/project-dashboards.html index 10bb8b44fa46..aa75501549aa 100644 --- a/docs/general/project-dashboards.html +++ b/docs/general/project-dashboards.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ goal is set up the JAM DUNA as a Wyoming DUNA in July 2024. Wyoming DUNAs provide significant legal advantages over DAOs, requiring a minimum 100 members.
  • DED: DED is a memecoin project originated in the DOT community and developed by the DED Foundation
  • - + \ No newline at end of file diff --git a/docs/getting-started.html b/docs/getting-started.html index 88e22c45f2ff..01e9ef0c029f 100644 --- a/docs/getting-started.html +++ b/docs/getting-started.html @@ -22,7 +22,7 @@ - + @@ -94,7 +94,7 @@ about Polkadot.
  • Sample Applications - Sample applications that are built on or currently being built for Polkadot.
  • Contributing Guide - Rules for contributing to the wiki.
  • Polkadot Knowledge Base - Troubleshooting resources for specific errors and problems.
  • - + \ No newline at end of file diff --git a/docs/glossary.html b/docs/glossary.html index ca395ada9fc9..d8bf507771a8 100644 --- a/docs/glossary.html +++ b/docs/glossary.html @@ -22,7 +22,7 @@ - + @@ -292,7 +292,7 @@ not relevant for parachain developers.

    Witness

    Cryptographic proof statements of data validity.

    Whitelist Pallet

    Allows one Origin to escalate the privilege level of another Origin for a certain operation. In terms of OpenGov, it allows the Fellowship to authorise a new origin (which we will call Whitelisted-Root) to be executed with Root-level privileges.

    - + \ No newline at end of file diff --git a/docs/governance-apps.html b/docs/governance-apps.html index e0423011def9..9c6d8606f5b8 100644 --- a/docs/governance-apps.html +++ b/docs/governance-apps.html @@ -22,7 +22,7 @@ - + @@ -56,7 +56,7 @@ this support guide..

    If you become a nomination pool member or a pool admin, you cannot participate in Governance with the bonded tokens in the pool, as they are held in a system account.

    - + \ No newline at end of file diff --git a/docs/grants.html b/docs/grants.html index 79cbf0a985e1..c3cdd322b06d 100644 --- a/docs/grants.html +++ b/docs/grants.html @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ Treasury or receive a tip for doing something cool in the community.

    Other Grant Programs

    Below is a list of other grant programs in the Polkadot/Substrate ecosystem.

    - + \ No newline at end of file diff --git a/docs/how-to-dyor.html b/docs/how-to-dyor.html index e6ec0f4373ba..8ad806dac06f 100644 --- a/docs/how-to-dyor.html +++ b/docs/how-to-dyor.html @@ -22,7 +22,7 @@ - + @@ -220,7 +220,7 @@ aims to bring to the ecosystem.

    This does not fall under fact-checking and verifying claims, but it is important to mention: fully understanding what something does and its prospective impact is an integral part of making an informed decision, so do not overlook it.

    - + \ No newline at end of file diff --git a/docs/kusama-adversarial-cheatsheet.html b/docs/kusama-adversarial-cheatsheet.html index 7a00ae10a0fd..c86810cff3dc 100644 --- a/docs/kusama-adversarial-cheatsheet.html +++ b/docs/kusama-adversarial-cheatsheet.html @@ -22,14 +22,14 @@ - +

    Adversarial Cheatsheet

    Expect things to break on Kusama. To help you break some things, take a look at the following threat model.

    Hacker wants to …Security promise that should prevent the hackHacking IncentiveHacking DamageHacking value details
    Double spend tokens via getting the clients to accept a different chainIntegrity (System-wide)HighHighIf attackers are able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack.
    Cause system to mint tokens to his own accountIntegrity (System-wide) MediumLow - MediumIf an attacker is able to craft transactions that mint tokens to their account, then this provides a high monetary incentive to execute this attack.
    Validate malicious blocks to double spend tokensAvailability (System-wide) HighMediumIf an attacker is able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack.
    Undermine consensus mechanism to split chainIntegrity (System-wide)HighHigh"If an attacker is able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack. Betting on decrease in value of the cryptocurrency or competitors want to damage the reputation, so that the value of their blockchain increases.
    Tamper/manipulate blockchain history to invalidate transactions (e.g. a voting result)Integrity (System-wide)MediumMedium - HighAttacker can rollback undesired transactions by intentionally invalidating the block where transaction has happened. Attacker can force a governance decision (or even an on-chain update) that favors them.
    Undermine blockchain or consensus mechanism to damage the ecosystem's reputationAvailability (System-wide)HighHighBetting on decrease in value of the cryptocurrency or competitors want to damage the reputation, so that the value of their blockchain increases
    CensorshipAvailability (System-wide)MediumHighHackers are able to block undesirable types of transactions (e.g. industry competitor transactions or referendum votes). This could be achieved by colluding with other stakeholders or by otherwise obtaining more voting power.
    Deanonymize usersConfidentiality (Node)MediumMediumParties that want to de-anonymize users can use the information to oppress the opposition (e.g. political activists).
    Steal token from nodeIntegrity (Node)HighHighAttackers that are able to steal tokens from nodes can claim assets for themselves, which gives them a high monetary incentive to execute the attack.
    Steal token from node by leaking credentialsConfidentiality (Node)HighHighAttackers that are able to steal tokens from nodes can claim assets for themselves, which gives them a high monetary incentive to execute the attack.
    Prevent node from accessing the Polkadot networkAvailability (Node)LowLow - MediumRun a targeted denial-of-service attack out of revenge, monetary interests (in case of a competing coin exchange, etc.).
    Defraud other participantsIntegrity (Node)MediumLow - MediumAttacker can abuse other participants’ misunderstanding of Polkadot's security guarantees to defraud them. Also, if the reward for calling out bad behavior can be set up so that it is higher than the according punishment, a set of self-handled nodes can be set up to generate a source cycle. Other participants are not needed for this attack.
    Defraud other participantsIntegrity (System-wide)HighHighAn attacker could abuse bugs in Polkadot's economic system to defraud other participants. For example, an attacker could exploit a logic bug to not pay transaction fees.
    - + \ No newline at end of file diff --git a/docs/kusama-bug-bounty.html b/docs/kusama-bug-bounty.html index 4db758db4d38..fba425b279e0 100644 --- a/docs/kusama-bug-bounty.html +++ b/docs/kusama-bug-bounty.html @@ -22,7 +22,7 @@ - + @@ -47,7 +47,7 @@ not to be disruptive or harmful to our users or us. Otherwise, your actions might be interpreted as an attack rather than an effort to be helpful.

    How to report a bug

    Please follow the instructions at web3.foundation/security-report/.

    - + \ No newline at end of file diff --git a/docs/kusama-coc.html b/docs/kusama-coc.html index cedddb769cfe..c39b9f5eac86 100644 --- a/docs/kusama-coc.html +++ b/docs/kusama-coc.html @@ -22,7 +22,7 @@ - + @@ -45,7 +45,7 @@ on feedback from the Kusama participants and/or the Polkadot community.

    Bugs

    Please understand that this network is, despite its success, an experiment with potential flaws, so it’s appreciated that community members help report any sort of exploits directly to the team before sharing publicly. Please see the bug bounty program.

    - + \ No newline at end of file diff --git a/docs/kusama-getting-started.html b/docs/kusama-getting-started.html index 0a2c3344ccb8..6c1362263fe2 100644 --- a/docs/kusama-getting-started.html +++ b/docs/kusama-getting-started.html @@ -22,7 +22,7 @@ - + @@ -43,7 +43,7 @@ here.

    While Kusama does not support smart contracts natively, building apps on it is still possible (e.g. RMRK.app). If you're interested in diving deeper into proper development, however, check out the builders guide.

    - + \ No newline at end of file diff --git a/docs/kusama-social-recovery.html b/docs/kusama-social-recovery.html index da9dee82951e..08cb50888778 100644 --- a/docs/kusama-social-recovery.html +++ b/docs/kusama-social-recovery.html @@ -22,7 +22,7 @@ - + @@ -68,7 +68,7 @@ That is by using the Root origin. However, in order to use root permissions, you will need to either go through governance.

    Further Reading

    - + \ No newline at end of file diff --git a/docs/kusama-timeline.html b/docs/kusama-timeline.html index d825b293de5e..8d156fbb7f0b 100644 --- a/docs/kusama-timeline.html +++ b/docs/kusama-timeline.html @@ -22,7 +22,7 @@ - + @@ -60,7 +60,7 @@ forkless upgradability provided by Substrate, chaos continues, and in the spirit of chaos, more teams are eager to deploy on Kusama. The path of Kusama deployment has paved the way to Polkadot's parachains as the technology became proven.

    - + \ No newline at end of file diff --git a/docs/learn-DOT.html b/docs/learn-DOT.html index 37697ad42efd..88fd179e6cae 100644 --- a/docs/learn-DOT.html +++ b/docs/learn-DOT.html @@ -22,7 +22,7 @@ - + @@ -79,7 +79,7 @@ market.

    Polkadot Mainnet DOT

    Polkadot Mainnet DOT are not freely given away. If you purchased DOT in the original 2017 offering, you may claim them via the Polkadot claims process. Alternatively, they are available on the open market.

    - + \ No newline at end of file diff --git a/docs/learn-account-abstraction.html b/docs/learn-account-abstraction.html index 1922ffd31cb8..f96cc77ea308 100644 --- a/docs/learn-account-abstraction.html +++ b/docs/learn-account-abstraction.html @@ -22,7 +22,7 @@ - + @@ -92,7 +92,7 @@ Bader Youssef - "Abstracting Away Account Abstraction on Polkadot"
  • Parity Blog Post by Joe Petrowski - "Building a Hot Wallet with Substrate Primitives"
  • FRAME Origin - Polkadot-SDK Docs
  • - + \ No newline at end of file diff --git a/docs/learn-account-advanced.html b/docs/learn-account-advanced.html index 5dddb4a0c83e..cc801abe4a6d 100644 --- a/docs/learn-account-advanced.html +++ b/docs/learn-account-advanced.html @@ -22,7 +22,7 @@ - + @@ -206,7 +206,7 @@ directly in the browser on the new one.

    This has been tested on Brave and Chrome, but not other browsers.

    1. Go to Polkadot-JS Apps
    2. Go to JavaScript console on the browser (Available in Developer Tools)
    3. Type in the command:
    JSON.stringify(localStorage)
    1. Copy and paste the returned string to a text editor and save the file.
    2. Check that the string you pasted begins and ends with a tick mark ('). If not, add one to the beginning and end.
    3. Save and send that file with the copied string to the new computer.
    4. On the new computer, go to Polkadot-JS Apps
    5. Open the Javascript console on the browser (Available in Developer Tools)
    6. Set a variable raw equal to the string from the text file
    raw = ... copy-pasted json from original computer ...
    1. Run the following code on the console:
    accounts = JSON.parse(raw);
    for (var key in accounts) {
    if (accounts.hasOwnProperty(key)) {
    val = JSON.stringify(accounts[key]).replace(/\\/g,'').slice(1,-1);
    console.log(key + " -> " + val);
    localStorage.setItem(key, val);
    }
    }
    1. Refresh Polkadot-JS App browser and check the Accounts and Addresses pages. All of your accounts and addresses should now be available.
    - + \ No newline at end of file diff --git a/docs/learn-account-balances.html b/docs/learn-account-balances.html index a15efe165d59..e1678d94d4cb 100644 --- a/docs/learn-account-balances.html +++ b/docs/learn-account-balances.html @@ -22,7 +22,7 @@ - + @@ -104,7 +104,7 @@ The same applies to proxies. The idea is that those actions require some network memory usage that is not given for free. In the example, we created a governance proxy, and the reserved funds for this are 0.0668 KSM. - + \ No newline at end of file diff --git a/docs/learn-account-multisig.html b/docs/learn-account-multisig.html index 96f8ed84174d..49e0cc52f99f 100644 --- a/docs/learn-account-multisig.html +++ b/docs/learn-account-multisig.html @@ -22,7 +22,7 @@ - + @@ -47,7 +47,7 @@ the entities designated as the recipients come together in a new multisig under a matching threshold, they will immediately have access to these tokens.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about multi-signature accounts.

    - + \ No newline at end of file diff --git a/docs/learn-accounts.html b/docs/learn-accounts.html index df0c3e1d2e53..c04a63f87cb6 100644 --- a/docs/learn-accounts.html +++ b/docs/learn-accounts.html @@ -22,7 +22,7 @@ - + @@ -95,7 +95,7 @@ It just means you want to keep your computer clean until you maybe need this folder again and recreate it. Your address is like this folder - it gets removed from the chain when nothing is in it but gets put back when it has the existential deposit.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about accounts.

    - + \ No newline at end of file diff --git a/docs/learn-advanced-index.html b/docs/learn-advanced-index.html index e8265401920b..0017d259d102 100644 --- a/docs/learn-advanced-index.html +++ b/docs/learn-advanced-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-agile-coretime-index.html b/docs/learn-agile-coretime-index.html index 4d928eddbfd3..283bb306d5be 100644 --- a/docs/learn-agile-coretime-index.html +++ b/docs/learn-agile-coretime-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-agile-coretime.html b/docs/learn-agile-coretime.html index 2c8b4d87a11d..2be980375b30 100644 --- a/docs/learn-agile-coretime.html +++ b/docs/learn-agile-coretime.html @@ -22,7 +22,7 @@ - + @@ -213,7 +213,7 @@ timeslices.
  • Interlacing: the action of dividing a region into the execution of different tasks for each block of a timeslice. The result regions will have the same start and end timeslice as the parent region, but different tasks will be executed at different blocks.
  • - + \ No newline at end of file diff --git a/docs/learn-architecture.html b/docs/learn-architecture.html index f86562525a07..594bae774e83 100644 --- a/docs/learn-architecture.html +++ b/docs/learn-architecture.html @@ -22,7 +22,7 @@ - + @@ -87,7 +87,7 @@ They collect parachain transactions and produce state transition proofs for the validators on the Relay Chain. They can also send and receive messages from other parachains using XCMP.

    Parachain blocks themselves are produced by collators, whereas the relay chain validators only verify their validity (and later, their availability).

    - + \ No newline at end of file diff --git a/docs/learn-archive.html b/docs/learn-archive.html index 891a615c2408..abe93a5a9c19 100644 --- a/docs/learn-archive.html +++ b/docs/learn-archive.html @@ -22,14 +22,14 @@ - + - + \ No newline at end of file diff --git a/docs/learn-asset-conversion-assethub.html b/docs/learn-asset-conversion-assethub.html index 332c509b6fa3..6581f0e9f8c1 100644 --- a/docs/learn-asset-conversion-assethub.html +++ b/docs/learn-asset-conversion-assethub.html @@ -22,7 +22,7 @@ - + @@ -63,7 +63,7 @@ experience bonuses here:

    • The exchange/custodian only needs to transact on one parachain and can access every other without any infrastructure lift.
    • For the user, they never actually need to “see” AssetHub. It’s entirely abstracted away behind either the parachain wallet/application or the exchange/custodian.
    - + \ No newline at end of file diff --git a/docs/learn-assets-index.html b/docs/learn-assets-index.html index f14eb3ea824b..344e720ed5f7 100644 --- a/docs/learn-assets-index.html +++ b/docs/learn-assets-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-assets.html b/docs/learn-assets.html index dea8a444de63..7665d00687fd 100644 --- a/docs/learn-assets.html +++ b/docs/learn-assets.html @@ -22,7 +22,7 @@ - + @@ -127,7 +127,7 @@ create a 2-of-2 multisig from two pure proxies, and then set members from each group as proxies to those two accounts.

    - + \ No newline at end of file diff --git a/docs/learn-async-backing.html b/docs/learn-async-backing.html index de873635cf63..aeec772bf771 100644 --- a/docs/learn-async-backing.html +++ b/docs/learn-async-backing.html @@ -22,7 +22,7 @@ - + @@ -159,7 +159,7 @@ Synchronous and Asynchronous Backing - + \ No newline at end of file diff --git a/docs/learn-auction.html b/docs/learn-auction.html index fade657ecb7f..3b7beff5ed28 100644 --- a/docs/learn-auction.html +++ b/docs/learn-auction.html @@ -22,7 +22,7 @@ - + @@ -141,7 +141,7 @@ W3F research page on parachain allocation that goes more in depth to the mechanism
  • Research Update: The Case for Candle Auctions - W3F breakdown and research update about candle auctions
  • Front-Running, Smart Contracts, and Candle Auctions W3F Research team discusses how to remedy current blockchain auction setbacks with candle auctions
  • - + \ No newline at end of file diff --git a/docs/learn-basics-index.html b/docs/learn-basics-index.html index d4a9d3f46057..7196e4c2eed7 100644 --- a/docs/learn-basics-index.html +++ b/docs/learn-basics-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-bridges.html b/docs/learn-bridges.html index ed714f236a02..3286b7e5e0b2 100644 --- a/docs/learn-bridges.html +++ b/docs/learn-bridges.html @@ -22,7 +22,7 @@ - + @@ -118,7 +118,7 @@ example.
  • XCLAIM - XCLAIM is a framework for achieving trustless and efficient cross-chain exchanges using cryptocurrency-backed assets.
  • Celer cBridge - a bridge to transfer assets from Ethereum & Binance Smart Chain to the Astar Polkadot EVM.
  • - + \ No newline at end of file diff --git a/docs/learn-collator.html b/docs/learn-collator.html index bdee2e722198..4bc91f156428 100644 --- a/docs/learn-collator.html +++ b/docs/learn-collator.html @@ -22,7 +22,7 @@ - + @@ -72,7 +72,7 @@ information can be found under the Cumulus section on the build parachain page.

    Guides and Tools

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-avalanche.html b/docs/learn-comparisons-avalanche.html index 24c8de92a8d4..5e9c8f3478dc 100644 --- a/docs/learn-comparisons-avalanche.html +++ b/docs/learn-comparisons-avalanche.html @@ -22,7 +22,7 @@ - + @@ -116,7 +116,7 @@ need a recommended minimum of 5 validators, which make the costs of launch predictable. Avalanche has plans to implement shared security, interoperability, composability and on-chain governance features which are already offered by Polkadot.

    References

    1. The Avalanche Platform Whitepaper
    2. The Avalanche Consensus Whitepaper
    3. The AVAX Token Dynamics Paper
    4. Nakomoto vs Snow consensus
    - + \ No newline at end of file diff --git a/docs/learn-comparisons-cosmos.html b/docs/learn-comparisons-cosmos.html index 4dbb2f02bc91..2dc60e65c864 100644 --- a/docs/learn-comparisons-cosmos.html +++ b/docs/learn-comparisons-cosmos.html @@ -22,7 +22,7 @@ - + @@ -133,7 +133,7 @@ receiving chain must trust the sending chain. Thus, each blockchain in the Cosmos network has its independent security mechanisms. Chains also have the option to share security with the Cosmos Hub and thereby leverage its economic security.

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-ethereum-2.html b/docs/learn-comparisons-ethereum-2.html index b4fe5102311d..4a55395dd2af 100644 --- a/docs/learn-comparisons-ethereum-2.html +++ b/docs/learn-comparisons-ethereum-2.html @@ -22,7 +22,7 @@ - + @@ -158,7 +158,7 @@ enacted autonomously via forkless upgrades.
  • Validator selection mechanisms differ as Polkadot can provide strong availability and validity guarantees with fewer validators per protocol.
  • - + \ No newline at end of file diff --git a/docs/learn-comparisons-index.html b/docs/learn-comparisons-index.html index 280631f63061..e7c642c3e8ae 100644 --- a/docs/learn-comparisons-index.html +++ b/docs/learn-comparisons-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-comparisons-kusama.html b/docs/learn-comparisons-kusama.html index d7944540c760..c428953b4d24 100644 --- a/docs/learn-comparisons-kusama.html +++ b/docs/learn-comparisons-kusama.html @@ -22,7 +22,7 @@ - + @@ -65,7 +65,7 @@ the future, we’re also likely to see Kusama bridged to Polkadot for cross-network interoperability. Web3 Foundation remains committed to both networks going forward, providing crucial support and guidance to teams building for the ecosystem.

    Explore more

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-rollups.html b/docs/learn-comparisons-rollups.html index 507d98ff06f7..179c8a143550 100644 --- a/docs/learn-comparisons-rollups.html +++ b/docs/learn-comparisons-rollups.html @@ -22,7 +22,7 @@ - + @@ -97,7 +97,7 @@ transition data.

    Despite these drawbacks, Polkadot remains upgradable through forkless upgrades, which allows the protocol to be easily upgradable to stay in line with future technological advances.

    - + \ No newline at end of file diff --git a/docs/learn-comparisons.html b/docs/learn-comparisons.html index dd87cfac32ad..015bd3ff0896 100644 --- a/docs/learn-comparisons.html +++ b/docs/learn-comparisons.html @@ -22,7 +22,7 @@ - + @@ -64,7 +64,7 @@ Chain, and as the number of validators in the active set on Polkadot are increased, more parachains can be supported.

    - + \ No newline at end of file diff --git a/docs/learn-components-index.html b/docs/learn-components-index.html index 2f0a0eca2aa4..8355c449ef27 100644 --- a/docs/learn-components-index.html +++ b/docs/learn-components-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-consensus.html b/docs/learn-consensus.html index 0f4b0e977b1c..d94cf0e92d44 100644 --- a/docs/learn-consensus.html +++ b/docs/learn-consensus.html @@ -22,7 +22,7 @@ - + @@ -139,7 +139,7 @@ Bill Laboon.
  • Block Production and Finalization in Polkadot: Understanding the BABE and GRANDPA Protocols - An academic talk by Bill Laboon, given at MIT Cryptoeconomic Systems 2020, describing Polkadot's hybrid consensus model in-depth.
  • - + \ No newline at end of file diff --git a/docs/learn-crowdloans.html b/docs/learn-crowdloans.html index 73ced11cf632..c63b4f939c2e 100644 --- a/docs/learn-crowdloans.html +++ b/docs/learn-crowdloans.html @@ -22,7 +22,7 @@ - + @@ -96,7 +96,7 @@ Apps page.

    Here is an example of the crowdloans in play during the very first Kusama auction.

    crowdloan dashboard

    Furthermore, check out this video on How to Participate in Crowdloans for steps on how to access available crowdloans on PolkadotJS apps.

    - + \ No newline at end of file diff --git a/docs/learn-cryptography.html b/docs/learn-cryptography.html index 0236e51f579f..b8de6b285cf0 100644 --- a/docs/learn-cryptography.html +++ b/docs/learn-cryptography.html @@ -22,7 +22,7 @@ - + @@ -178,7 +178,7 @@ make passive attacks much harder if such a backdoor exists.

    However an alternative exists in the form of Curve25519. This algorithm has been proposed in 2006 by DJB [Curve25519]. Its main strengths are its speed, its constant-time run time (and resistance against side-channel attacks), and its lack of nebulous hard-coded constants.

    - + \ No newline at end of file diff --git a/docs/learn-dot-ksm-bridge.html b/docs/learn-dot-ksm-bridge.html index a0316ac63b11..2aace4935689 100644 --- a/docs/learn-dot-ksm-bridge.html +++ b/docs/learn-dot-ksm-bridge.html @@ -22,7 +22,7 @@ - + @@ -61,7 +61,7 @@ through Kusama OpenGov.

    For more information on relayer rewards, check the relayers compensation scheme section on the relayer docs on the Polkadot-SDK repository.

    - + \ No newline at end of file diff --git a/docs/learn-elastic-scaling.html b/docs/learn-elastic-scaling.html index 57672c4f773b..aac050c4f732 100644 --- a/docs/learn-elastic-scaling.html +++ b/docs/learn-elastic-scaling.html @@ -22,7 +22,7 @@ - + @@ -62,7 +62,7 @@ parachain side, collators must produce more parablocks per unit of time, implying that technical specifications for collators will likely increase.

    For more advanced technical challenges, see the Elastic Scaling GitHub PR.

    - + \ No newline at end of file diff --git a/docs/learn-future-implementations-index.html b/docs/learn-future-implementations-index.html index 0928b9a18126..76111e2d9293 100644 --- a/docs/learn-future-implementations-index.html +++ b/docs/learn-future-implementations-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-multisig.html b/docs/learn-guides-accounts-multisig.html index f28ca2db57fe..372102525c0c 100644 --- a/docs/learn-guides-accounts-multisig.html +++ b/docs/learn-guides-accounts-multisig.html @@ -22,7 +22,7 @@ - + @@ -92,7 +92,7 @@ Check the "How to use a multisig account" in the support docs on how to decode the multisig call data.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-proxy-pure.html b/docs/learn-guides-accounts-proxy-pure.html index 8e729b9daae2..214747575bbb 100644 --- a/docs/learn-guides-accounts-proxy-pure.html +++ b/docs/learn-guides-accounts-proxy-pure.html @@ -22,7 +22,7 @@ - + @@ -87,7 +87,7 @@ address but does not impact the pure proxy address. In Scenario Two, if signatories behind the pure proxies change, the address of the multisig stays the same. However, changing the number of signatories and threshold would not be possible.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-proxy.html b/docs/learn-guides-accounts-proxy.html index 987b357ebb78..20bd55cfbbff 100644 --- a/docs/learn-guides-accounts-proxy.html +++ b/docs/learn-guides-accounts-proxy.html @@ -22,7 +22,7 @@ - + @@ -82,7 +82,7 @@ automatically ask for Charly's signature. Thus one proxy call will trigger the second one because Charly's is the only any proxy of P-C, and P-C cannot sign anything. While if we want to use Bob's account we will need to submit all three proxy calls.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts.html b/docs/learn-guides-accounts.html index a86629253906..f9516a8f62ff 100644 --- a/docs/learn-guides-accounts.html +++ b/docs/learn-guides-accounts.html @@ -22,7 +22,7 @@ - + @@ -130,7 +130,7 @@ encrypting/decrypting your wallet. If you cannot load a JSON file, please use the latest version of the wallet software. If you cannot load it, ensure that the wallet software uses the newest version of the Polkadot API.

    - + \ No newline at end of file diff --git a/docs/learn-guides-asset-conversion.html b/docs/learn-guides-asset-conversion.html index a9669ddfff4a..6df7f07a5969 100644 --- a/docs/learn-guides-asset-conversion.html +++ b/docs/learn-guides-asset-conversion.html @@ -22,7 +22,7 @@ - + @@ -82,7 +82,7 @@ (u128 value of 400000000000 as it has 10 decimals).

    Remove Liquidity

    Below is the snapshot of the liquidity pool on the DOT ACP UI. after successful submission of the extrinsic above.

    Remove Liquidity Example

    - + \ No newline at end of file diff --git a/docs/learn-guides-assets-create.html b/docs/learn-guides-assets-create.html index 11fb359e3a3a..6c71ff936740 100644 --- a/docs/learn-guides-assets-create.html +++ b/docs/learn-guides-assets-create.html @@ -22,7 +22,7 @@ - + @@ -57,7 +57,7 @@ an ID that has already been taken. After all the details are entered, click on the next button.

    Add Asset Metadata

    • Choose the admin, issuer and the freezer accounts for your asset and click on the create button.

    Asset managing accounts

    • Sign and submit the transaction (If you like to verify the transaction details before signing, you can click on the dropdown button pointed by the arrow in the snapshot below).

    Sign asset creating transaction

    If the transaction is successful, you should see the asset and its details displayed in the Network > Assets page on the Asset Hub.

    - + \ No newline at end of file diff --git a/docs/learn-guides-assets.html b/docs/learn-guides-assets.html index 35ed2844c6cb..f26ccd5bc2ba 100644 --- a/docs/learn-guides-assets.html +++ b/docs/learn-guides-assets.html @@ -22,7 +22,7 @@ - + @@ -31,7 +31,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-guides-bounties.html b/docs/learn-guides-bounties.html index 246fa8daaa47..14a24f671583 100644 --- a/docs/learn-guides-bounties.html +++ b/docs/learn-guides-bounties.html @@ -22,7 +22,7 @@ - + @@ -95,7 +95,7 @@ parent bounty.

    To get the bounty system account of a parent bounty, go to Subsquare, search for the bounty name, and the address will be shown under Metadata.

    - + \ No newline at end of file diff --git a/docs/learn-guides-bridges.html b/docs/learn-guides-bridges.html index e7bc9c59d098..272790adf72f 100644 --- a/docs/learn-guides-bridges.html +++ b/docs/learn-guides-bridges.html @@ -22,7 +22,7 @@ - + @@ -31,7 +31,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-guides-claims.html b/docs/learn-guides-claims.html index 6755b59ca5f2..b730960e3c83 100644 --- a/docs/learn-guides-claims.html +++ b/docs/learn-guides-claims.html @@ -22,7 +22,7 @@ - + @@ -67,7 +67,7 @@ Polkadot network such as governance and staking.

    Verifying your Claim

    After you make an on-chain claim for DOT, your Your account balance should be updated immediately.

    - + \ No newline at end of file diff --git a/docs/learn-guides-coretime-marketplaces.html b/docs/learn-guides-coretime-marketplaces.html index 28a9463da823..e9cfd71c32db 100644 --- a/docs/learn-guides-coretime-marketplaces.html +++ b/docs/learn-guides-coretime-marketplaces.html @@ -22,7 +22,7 @@ - + @@ -41,7 +41,7 @@ Wallet and Polkadot-JS Extension. Select the account to be used for the coretime purchase and then, click on "buy core" button to sign and broadcast the transaction.

    Lastic-purchase-bulk-coretime

    Managing Cores with Lastic

    Lastic enables you to transfer your core to another account, utilize it for a parachain, split it up, change block production frequency, or assign it to a task.

    Lastic-manage-core

    - + \ No newline at end of file diff --git a/docs/learn-guides-coretime-parachains.html b/docs/learn-guides-coretime-parachains.html index 350104e02361..9b67ea0561a2 100644 --- a/docs/learn-guides-coretime-parachains.html +++ b/docs/learn-guides-coretime-parachains.html @@ -22,7 +22,7 @@ - + @@ -82,7 +82,7 @@ account if the provided funds will run out, ensuring the account is kept alive.

    With each successful on-demand extrinsic, the parachain head changes (you may have to zoom out on the browser for parachain head details to show up on Polkadot-JS UI).

    coretime-ondemand-parahead

    The successful collation can also be verified in the parachain collator logs. It can be noticed that with each parachain block, the state of adder-collator is incremented by 2.

    coretime-new-collation

    - + \ No newline at end of file diff --git a/docs/learn-guides-dot-ksm-bridge.html b/docs/learn-guides-dot-ksm-bridge.html index 106e91cfaa70..ca17aa1116c7 100644 --- a/docs/learn-guides-dot-ksm-bridge.html +++ b/docs/learn-guides-dot-ksm-bridge.html @@ -22,7 +22,7 @@ - + @@ -83,7 +83,7 @@ destination chain but will not be accepted by your account, and instead get trapped in the Asset Trap on the destination chain.

    Once arbitrary asset transfers are enabled by the Asset Hubs, a guide will be posted to this Wiki page.

    - + \ No newline at end of file diff --git a/docs/learn-guides-identity.html b/docs/learn-guides-identity.html index 86f26080b3e8..e189d1d567fa 100644 --- a/docs/learn-guides-identity.html +++ b/docs/learn-guides-identity.html @@ -22,7 +22,7 @@ - + @@ -88,7 +88,7 @@ OpenGov, then wait for people to vote on it. For best results, write a post about your identity and intentions beforehand, and once the proposal is in the queue ask people to endorse it so that it gets ahead in the referendum queue.

    - + \ No newline at end of file diff --git a/docs/learn-guides-ledger.html b/docs/learn-guides-ledger.html index 6d0525e77442..9b4b9edd2455 100644 --- a/docs/learn-guides-ledger.html +++ b/docs/learn-guides-ledger.html @@ -22,7 +22,7 @@ - + @@ -112,7 +112,7 @@ device after the installation.
  • If you wish to revert the version to the stable release, go to Ledger Live. The app will automatically detect the developer release and give the option to install the previous stable release.
  • - + \ No newline at end of file diff --git a/docs/learn-guides-nominator.html b/docs/learn-guides-nominator.html index 4d8a86ee42fd..9ac4bb110f1e 100644 --- a/docs/learn-guides-nominator.html +++ b/docs/learn-guides-nominator.html @@ -22,7 +22,7 @@ - + @@ -93,7 +93,7 @@ Subscan. Also, you can verify the bonding state under the Staking page on the Polkadot-JS UI.

    Step 3: Nominate a validator

    To nominate a validator, you can execute the following command:

    polkadot-js-api --seed "MNEMONIC_PHRASE" tx.staking.nominate '["VALIDATOR_ADDRESS"]' --ws WS_ENDPOINT
    polkadot-js-api --seed "xxxx xxxxx xxxx xxxxx" tx.staking.nominate '["CmD9vaMYoiKe7HiFnfkftwvhKbxN9bhyjcDrfFRGbifJEG8","E457XaKbj2yTB2URy8N4UuzmyuFRkcdxYs67UvSgVr7HyFb"]' --ws wss://kusama-rpc.polkadot.io

    After a few seconds, you should see the hash of the transaction, and if you would like to verify the nomination status, you can check that on the Polkadot-JS UI as well.

    - + \ No newline at end of file diff --git a/docs/learn-guides-polkadot-opengov.html b/docs/learn-guides-polkadot-opengov.html index 2ceca67cc66d..98e4694ef05f 100644 --- a/docs/learn-guides-polkadot-opengov.html +++ b/docs/learn-guides-polkadot-opengov.html @@ -22,7 +22,7 @@ - + @@ -160,7 +160,7 @@ a decimal integer. The bitfield stores both the conviction and aye/nay boolean, where the boolean is represented using the MSB of the byte. This would mean that the seven remaining bits are grouped to store the conviction.

    - + \ No newline at end of file diff --git a/docs/learn-guides-staking-pools.html b/docs/learn-guides-staking-pools.html index 323b8e421362..4e8e2377b64e 100644 --- a/docs/learn-guides-staking-pools.html +++ b/docs/learn-guides-staking-pools.html @@ -22,7 +22,7 @@ - + @@ -67,7 +67,7 @@ Polkadot-JS UI Extrinsic Tab and issue the following extrisics:

    • nominationPools.claimPayoutOthers extrinsic specifying ALICE's account. This will claim the rewards as a free balance on ALICE's account.

    pools-payoutOthers

    • nominationPools.bondExtraOthers extrinsic specifying ALICE's account and the option to bond:
      • the free balance currently available in ALICE's account (FreeBalance) or
      • the pool rewards (Rewards) unclaimed by ALICE.

    pools-bondExtraOthers

    - + \ No newline at end of file diff --git a/docs/learn-guides-staking.html b/docs/learn-guides-staking.html index 9f687f0801c5..71f1d090bd70 100644 --- a/docs/learn-guides-staking.html +++ b/docs/learn-guides-staking.html @@ -22,7 +22,7 @@ - + @@ -31,7 +31,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-guides-transfers.html b/docs/learn-guides-transfers.html index b9bdcf05818e..09746687ff2b 100644 --- a/docs/learn-guides-transfers.html +++ b/docs/learn-guides-transfers.html @@ -22,7 +22,7 @@ - + @@ -124,7 +124,7 @@ probably not the reason for your tokens having existing references.

    Existing Non-Native Assets

    Currently, Polkadot does not use the Assets Pallet, so this is probably not the reason for your tokens having existing references.

    - + \ No newline at end of file diff --git a/docs/learn-guides-treasury.html b/docs/learn-guides-treasury.html index e37a1fa59198..92be500f934a 100644 --- a/docs/learn-guides-treasury.html +++ b/docs/learn-guides-treasury.html @@ -22,7 +22,7 @@ - + @@ -134,7 +134,7 @@ about your referendum
  • Place the decision deposit before the timeout
  • Once the referendum ends you can claim the preimage and decision deposits back
  • - + \ No newline at end of file diff --git a/docs/learn-guides-vault.html b/docs/learn-guides-vault.html index c96fc4bddd39..cc4c5803a8e2 100644 --- a/docs/learn-guides-vault.html +++ b/docs/learn-guides-vault.html @@ -22,7 +22,7 @@ - + @@ -89,7 +89,7 @@ chain and version is the version of the metadata.

    Add the renamed files to the /public/qr folder within the Metadata Portal repository.

    Run Portal

    Open the terminal within the Metadata Portal repository and run make updater. Then run make collector; this will create the _latest.apng files for each of the chains (removed by the command make cleaner). Finally, run yarn start to load the metadata portal on your localhost.

    - + \ No newline at end of file diff --git a/docs/learn-hyperbridge.html b/docs/learn-hyperbridge.html index d081475f9073..37ffd0450f48 100644 --- a/docs/learn-hyperbridge.html +++ b/docs/learn-hyperbridge.html @@ -22,7 +22,7 @@ - + @@ -90,7 +90,7 @@ Lecture about state machine from Polkadot Blockchain Academy
  • Hyperbridge Source Code - Public codebase repository of hyperbridge.
  • Interoperable State Machine Protocol (ISMP) Book - Guidebook of the ISMP
  • The Puzzle of Blockchain Interoperability
  • ISMP, The Endgame for Parachain Interoperability | Sub0 2023
  • - + \ No newline at end of file diff --git a/docs/learn-identity.html b/docs/learn-identity.html index e48657e50467..ab4f75351aa0 100644 --- a/docs/learn-identity.html +++ b/docs/learn-identity.html @@ -22,7 +22,7 @@ - + @@ -68,7 +68,7 @@
    Fee: 0.5 DOT

    Polkassembly (Registrar 3) provides setting on-chain ID as a service on their website.

    See this page to learn how to become a Registrar.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about account identity.

    - + \ No newline at end of file diff --git a/docs/learn-implementations.html b/docs/learn-implementations.html index f59e32210648..639b1cc4ebb0 100644 --- a/docs/learn-implementations.html +++ b/docs/learn-implementations.html @@ -22,7 +22,7 @@ - + @@ -60,7 +60,7 @@ collection of tools, interfaces, and libraries for Polkadot and Substrate.

    Other implementations that have received grants

    While the ecosystem continues to grow rapidly, the continued development of alternative implementations will only make Polkadot stronger. Consider becoming a contributor to the ecosystem, and learn about the how you can receive a grant for your development.

    - + \ No newline at end of file diff --git a/docs/learn-index.html b/docs/learn-index.html index ea313b15eca2..d9a9e8241637 100644 --- a/docs/learn-index.html +++ b/docs/learn-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-inflation.html b/docs/learn-inflation.html index 75edebe717d3..474cdf9cc600 100644 --- a/docs/learn-inflation.html +++ b/docs/learn-inflation.html @@ -22,7 +22,7 @@ - + @@ -79,7 +79,7 @@ incentivizing them to stake more tokens on the network. On the contrary, staking rewards drop if staked tokens exceed the ideal staking rate. This results from the change in the percentage of staking rewards that go to the Treasury.

    - + \ No newline at end of file diff --git a/docs/learn-jam-chain.html b/docs/learn-jam-chain.html index be15766bc939..8eb2b959bd26 100644 --- a/docs/learn-jam-chain.html +++ b/docs/learn-jam-chain.html @@ -22,7 +22,7 @@ - + @@ -232,7 +232,7 @@ capability to target coretime not only at parachains but also at arbitrary sets of work packages. This flexibility enhances the versatility and efficiency of resource allocation within the JAM ecosystem.

    - + \ No newline at end of file diff --git a/docs/learn-jam-faq.html b/docs/learn-jam-faq.html index 1c241cce0679..556fb6589677 100644 --- a/docs/learn-jam-faq.html +++ b/docs/learn-jam-faq.html @@ -22,7 +22,7 @@ - + @@ -93,7 +93,7 @@ learn more about JAM. You can also join discussions on the forum and the fellowship calls.
  • Read this blog post about the original talk by Gavin Wood at Token2049 in Dubai.
  • - + \ No newline at end of file diff --git a/docs/learn-jam.html b/docs/learn-jam.html index 8044eccd69bf..dac84fe18123 100644 --- a/docs/learn-jam.html +++ b/docs/learn-jam.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-nft-pallets.html b/docs/learn-nft-pallets.html index cb23059b2603..6d40ff9228fc 100644 --- a/docs/learn-nft-pallets.html +++ b/docs/learn-nft-pallets.html @@ -22,7 +22,7 @@ - + @@ -119,7 +119,7 @@ balance-keeping chain for both fungible and non-fungibles.

    These NFTs can be viewed and interacted with on RMRK's Singular platform, by switching the top right menu from Kusama to the Asset Hub.

    nft-hub

    They can also be interacted with directly through the extrinsics tab of the Asset Hub:

    uniques.png

    - + \ No newline at end of file diff --git a/docs/learn-nft-projects.html b/docs/learn-nft-projects.html index cf493e2ced97..244faa83e637 100644 --- a/docs/learn-nft-projects.html +++ b/docs/learn-nft-projects.html @@ -22,7 +22,7 @@ - + @@ -101,7 +101,7 @@ on, rather than entering the NFT space themselves as an end-product.

    Unique Network aims to make their marketplace technology open-source and whitelabel-friendly. In theory, it should be trivial to set up a new marketplace for your project using Unique's technology. Unique network aims to be a parachain on Polkadot, and Quartz is their Kusama counterpart.

    - + \ No newline at end of file diff --git a/docs/learn-nft.html b/docs/learn-nft.html index 9043448c3812..7cc888642de7 100644 --- a/docs/learn-nft.html +++ b/docs/learn-nft.html @@ -22,7 +22,7 @@ - + @@ -67,7 +67,7 @@ RMRK hackathon for porting RMRK NFTs into simplified IOUs on EVM chains

    References

    - + \ No newline at end of file diff --git a/docs/learn-nomination-pools.html b/docs/learn-nomination-pools.html index 92341663ded0..dc6d86bff92c 100644 --- a/docs/learn-nomination-pools.html +++ b/docs/learn-nomination-pools.html @@ -22,7 +22,7 @@ - + @@ -174,7 +174,7 @@ additional information, see this blog post. Check the wiki doc on nomination pools for more information.

    NominatingJoining a Pool
    Minimum 250 DOT to nominate.Minimum 1 DOT to be a member.
    Rewards can be compounded automatically or sent to any account.Rewards can be manually claimed to the pool member's account and be bonded in the pool again to compound them.
    If the active validator gets slashed, all active nominators are subjected to slashing.If the active validator gets slashed, all pool members are subjected to slashing.
    Can bond and stake DOT indefinitely.Can bond and stake DOT until the pool exists.
    Unbonding period of 28 days. Can switch validators without unbonding.Unbonding period of 28 days. Need to unbond before switching to a different pool.
    Maximum uncapped.Maximum uncapped.
    Should bond more than the minimum active nomination in an era to be eligible to earn staking rewards, although it can depend on multiple other factors outlined in the linked document.A nomination pool earns rewards in an era if it satisfies all the conditions mentioned for the nominator (as the nomination pool is just a nominator from the NPoS system perspective).
    Staked tokens can be used for participation in Governance.Staked tokens cannot be used for participation in Governance.
    Rewards payout can be triggered permissionlessly by anyone (typically done by the validator).A pool member can self claim the rewards or can grant permission to any other account to claim and compound rewards on your behalf. See Claim Permissions.
    Bonded funds remain in your account.Bonded funds are transferred to a pool account which is administered by the network protocol and is not accessible to anyone else. See System Accounts for more information.
    Nominator manages the list of staked validators (up to 16).Nominations managed by the pool operator.
    - + \ No newline at end of file diff --git a/docs/learn-nominator.html b/docs/learn-nominator.html index 85be2e5bb8a8..a3dc10d836cb 100644 --- a/docs/learn-nominator.html +++ b/docs/learn-nominator.html @@ -22,7 +22,7 @@ - + @@ -234,7 +234,7 @@ required to earn staking rewards.

    Minimum Active Nomination

    Guides

    - + \ No newline at end of file diff --git a/docs/learn-offenses.html b/docs/learn-offenses.html index 855269479b7c..dcc1d087311e 100644 --- a/docs/learn-offenses.html +++ b/docs/learn-offenses.html @@ -22,7 +22,7 @@ - + @@ -123,7 +123,7 @@ DoS (Denial of Service) attacks. The consequences of closing channels may vary. In general, performing validator tasks under reduced reputation will be harder, resulting in lower validator rewards.

    - + \ No newline at end of file diff --git a/docs/learn-parachains-faq.html b/docs/learn-parachains-faq.html index af972f954f17..801ea62d7012 100644 --- a/docs/learn-parachains-faq.html +++ b/docs/learn-parachains-faq.html @@ -22,7 +22,7 @@ - + @@ -113,7 +113,7 @@ initiate an auction, however, Root origin (via referendum) is needed to cancel an auction. Here is a proposal that gives a glimpse of what goes into planning auctions schedule - Proposed Polkadot Auction Schedule 2022.

    - + \ No newline at end of file diff --git a/docs/learn-parachains-index.html b/docs/learn-parachains-index.html index 3e173c395750..920dcc547d49 100644 --- a/docs/learn-parachains-index.html +++ b/docs/learn-parachains-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-parachains-protocol.html b/docs/learn-parachains-protocol.html index e5b0dad55258..492a7c06f4b6 100644 --- a/docs/learn-parachains-protocol.html +++ b/docs/learn-parachains-protocol.html @@ -22,7 +22,7 @@ - + @@ -275,7 +275,7 @@ Parity analyst Joe Petrowski expounds on the validity checks that a parachain block must pass in order to progress the parachain.
  • Availability and Validity - Paper by the W3F Research Team that specifies the availability and validity protocol in detail.
  • - + \ No newline at end of file diff --git a/docs/learn-parachains.html b/docs/learn-parachains.html index 52d2f7e91e52..045f1d78481b 100644 --- a/docs/learn-parachains.html +++ b/docs/learn-parachains.html @@ -22,7 +22,7 @@ - + @@ -222,7 +222,7 @@ its own. The Relay Chain provides security to attached parachains, but also provides a guarantee of secure message-passing between them."
  • The Path of a Parachain Block - A technical walk-through of how parachains interact with the Relay Chain.
  • - + \ No newline at end of file diff --git a/docs/learn-participants-index.html b/docs/learn-participants-index.html index f3ffd943b64d..65260abbf851 100644 --- a/docs/learn-participants-index.html +++ b/docs/learn-participants-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-phragmen.html b/docs/learn-phragmen.html index 82d904e41f24..942cce3c4c37 100644 --- a/docs/learn-phragmen.html +++ b/docs/learn-phragmen.html @@ -22,7 +22,7 @@ - + @@ -268,7 +268,7 @@ This paper by Brill et al. is the source for the simple Phragmén method, along with proofs about its properties.
  • Offline Phragmén - Script to generate the Phragmén validator election outcome before the start of an era.
  • - + \ No newline at end of file diff --git a/docs/learn-polkadot-host.html b/docs/learn-polkadot-host.html index bbcd632b41de..3cf367583038 100644 --- a/docs/learn-polkadot-host.html +++ b/docs/learn-polkadot-host.html @@ -22,7 +22,7 @@ - + @@ -48,7 +48,7 @@ Host is referred to as the Executor. For additional technical implementation details, check out this section of the Polkadot Spec.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-js-guides.html b/docs/learn-polkadot-js-guides.html index 910e800de57c..b86ce54005f0 100644 --- a/docs/learn-polkadot-js-guides.html +++ b/docs/learn-polkadot-js-guides.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ Ledger and Polkadot Vault for signing transactions. We do not provide support for third party applications.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-index.html b/docs/learn-polkadot-opengov-index.html index 4a1c8939d556..0b39ca733bbb 100644 --- a/docs/learn-polkadot-opengov-index.html +++ b/docs/learn-polkadot-opengov-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-origins.html b/docs/learn-polkadot-opengov-origins.html index 7348780f5d01..0e6fb25c1945 100644 --- a/docs/learn-polkadot-opengov-origins.html +++ b/docs/learn-polkadot-opengov-origins.html @@ -22,7 +22,7 @@ - + @@ -84,7 +84,7 @@ slightly sharper reductions in their thresholds for passing.

    Referendum Killer

    The origin can cancel an ongoing referendum and slash the deposits. This track also has a low lead-time and approval/support curves with slightly sharper reductions in their thresholds for passing.

    Small Tipper

    Origin able to spend up to 250 DOT from the treasury at once.

    Big Tipper

    Origin able to spend up to 1000 DOT from the treasury at once.

    Small Spender

    Origin able to spend up to 10000 DOT from the treasury at once.

    Medium Spender

    Origin able to spend up to 100000 DOT from the treasury at once.

    Big Spender

    Origin able to spend up to 1000000 DOT from the treasury at once.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-treasury.html b/docs/learn-polkadot-opengov-treasury.html index 287908afc9b0..cffaed4fa8e3 100644 --- a/docs/learn-polkadot-opengov-treasury.html +++ b/docs/learn-polkadot-opengov-treasury.html @@ -22,7 +22,7 @@ - + @@ -105,7 +105,7 @@ allocation of funds and as part of a nested iteration of the bounty mechanism.

    Child Bounties

    Child bounties are spawned from parent bounties. Child bounties are used to access funds directly from the parent bounty without going through an OpenGov referendum.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about bounties and treasury.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov.html b/docs/learn-polkadot-opengov.html index bf1d3188011c..4a72509ec5b0 100644 --- a/docs/learn-polkadot-opengov.html +++ b/docs/learn-polkadot-opengov.html @@ -22,7 +22,7 @@ - + @@ -293,7 +293,7 @@ allow voters to participate in OpenGov hands-free by delegating their voting power to trusted entities.

    Resources


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about OpenGov.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-technical-fellowship.html b/docs/learn-polkadot-technical-fellowship.html index 4cb2798aa2ed..64e39d9d8882 100644 --- a/docs/learn-polkadot-technical-fellowship.html +++ b/docs/learn-polkadot-technical-fellowship.html @@ -22,7 +22,7 @@ - + @@ -82,7 +82,7 @@ Promotion of the Polkadot Fellowship members from rank 5 needs to be done through an OpenGov referendum. For more information, check the rank updates section on the fellowship dashboard.

    - + \ No newline at end of file diff --git a/docs/learn-polkadotjs.html b/docs/learn-polkadotjs.html index 7ad93bbd77da..c28576d2fdd3 100644 --- a/docs/learn-polkadotjs.html +++ b/docs/learn-polkadotjs.html @@ -22,7 +22,7 @@ - + @@ -31,7 +31,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-proxies-pure.html b/docs/learn-proxies-pure.html index 7c4f6215115c..0e94ae8b98b3 100644 --- a/docs/learn-proxies-pure.html +++ b/docs/learn-proxies-pure.html @@ -22,7 +22,7 @@ - + @@ -67,7 +67,7 @@ corporate-level management where the chance of replacing someone within a multisig can be high. Pure proxies allow keeping the same multisig when the signatories change.
    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about pure proxy accounts.

    - + \ No newline at end of file diff --git a/docs/learn-proxies.html b/docs/learn-proxies.html index ced6fb7b7044..91302656ffd6 100644 --- a/docs/learn-proxies.html +++ b/docs/learn-proxies.html @@ -22,7 +22,7 @@ - + @@ -92,7 +92,7 @@ announcementDepositFactor is reserved as well.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about proxy accounts. You can find information about creating and removing proxies, and more.

    - + \ No newline at end of file diff --git a/docs/learn-runtime-upgrades.html b/docs/learn-runtime-upgrades.html index 75219a79a0fa..b1e5af38d0d3 100644 --- a/docs/learn-runtime-upgrades.html +++ b/docs/learn-runtime-upgrades.html @@ -22,7 +22,7 @@ - + @@ -108,7 +108,7 @@ will be enacted.
  • referenda (Rejected) indicates that index's referendum has been rejected and will not be enacted.
  • When the runtime upgrades, there will be a system(CodeUpdated) event confirming the execution of the runtime upgrade.
  • - + \ No newline at end of file diff --git a/docs/learn-safrole.html b/docs/learn-safrole.html index c4065086aa73..f519b14d7c5b 100644 --- a/docs/learn-safrole.html +++ b/docs/learn-safrole.html @@ -22,7 +22,7 @@ - + @@ -43,7 +43,7 @@ SAFROLE prevents forks can be found in Section 4.3, 4.8, and 6 of the JAM Graypaper.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-scams.html b/docs/learn-scams.html index ac3369f11deb..169e3ff0806a 100644 --- a/docs/learn-scams.html +++ b/docs/learn-scams.html @@ -22,7 +22,7 @@ - + @@ -91,7 +91,7 @@ for steps you should take to prevent further loss and contact Polkadot Support from the same page. Finally, make sure to read the present article carefully to learn how to avoid falling victim in the future.

    - + \ No newline at end of file diff --git a/docs/learn-snowbridge.html b/docs/learn-snowbridge.html index 3d98f4300f62..ed94a5da1ff8 100644 --- a/docs/learn-snowbridge.html +++ b/docs/learn-snowbridge.html @@ -22,7 +22,7 @@ - + @@ -64,7 +64,7 @@ increasing the security parameter.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-spree.html b/docs/learn-spree.html index 9f75ec2ec5ba..f74e2b31822f 100644 --- a/docs/learn-spree.html +++ b/docs/learn-spree.html @@ -22,7 +22,7 @@ - + @@ -81,7 +81,7 @@ instances, and the next state root of the instance. They do this validation by checking it against the validate function as provided by the SPREE module API. Collators are expected to be able to provide this information to progress their parachains.

    - + \ No newline at end of file diff --git a/docs/learn-staking-advanced.html b/docs/learn-staking-advanced.html index 0c05acb45c83..3db401362c9a 100644 --- a/docs/learn-staking-advanced.html +++ b/docs/learn-staking-advanced.html @@ -22,7 +22,7 @@ - + @@ -241,7 +241,7 @@ to receiving a SignedRewardBase. For more information about deposit values see the Chain State Values page.

    Further Resources

    If you want to run a staking miner on your validator, refer to the repository provided in the resources section below.

    - + \ No newline at end of file diff --git a/docs/learn-staking-index.html b/docs/learn-staking-index.html index d4a81fe0731c..59c3300ff5c4 100644 --- a/docs/learn-staking-index.html +++ b/docs/learn-staking-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-staking.html b/docs/learn-staking.html index c91044472cf3..b9bad128cac7 100644 --- a/docs/learn-staking.html +++ b/docs/learn-staking.html @@ -22,7 +22,7 @@ - + @@ -306,7 +306,7 @@ Blog post by Web3 Foundation researcher Alfonso Cevallos covering NPoS in Polkadot.
  • Validator setup
  • Polkadot validator selector tool - A tool that helps nominators find reliable validators that meet quality-control criteria, including commission rates, verified identity, etc.

  • Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about staking.

    - + \ No newline at end of file diff --git a/docs/learn-system-chains.html b/docs/learn-system-chains.html index 0e1355f6abd2..1ba4aca65310 100644 --- a/docs/learn-system-chains.html +++ b/docs/learn-system-chains.html @@ -22,7 +22,7 @@ - + @@ -93,7 +93,7 @@ for digital democracy. This can also be adapted by other chains, which can use the unique identity system to prevent Sybil attacks and use PoP for token airdrops or faucets.

    tip

    To learn more about Encointer, check out the official Encointer book.

    - + \ No newline at end of file diff --git a/docs/learn-teleport.html b/docs/learn-teleport.html index 48a06946d08f..80e464a16fa7 100644 --- a/docs/learn-teleport.html +++ b/docs/learn-teleport.html @@ -22,7 +22,7 @@ - + @@ -51,7 +51,7 @@ teleportation should result in the same circulating supply of the asset, and failing to uphold this condition will result in a change in the asset's total issuance (in the case of fungible tokens) or a complete loss/duplication of an NFT.

    - + \ No newline at end of file diff --git a/docs/learn-transactions.html b/docs/learn-transactions.html index 2ab432f33c00..cca2a475995d 100644 --- a/docs/learn-transactions.html +++ b/docs/learn-transactions.html @@ -22,7 +22,7 @@ - + @@ -125,7 +125,7 @@ the fee will go to the block producer, producers will include the transactions with the highest fees to maximize their reward.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about transfers.

    - + \ No newline at end of file diff --git a/docs/learn-validator.html b/docs/learn-validator.html index 2c3a6f3bb28c..0a7851635025 100644 --- a/docs/learn-validator.html +++ b/docs/learn-validator.html @@ -22,7 +22,7 @@ - + @@ -95,7 +95,7 @@ statistics.
  • YieldScan - Staking yield maximization platform, designed to minimize effort.
  • Subscan Validators Page - Displays information on the current validators - not as tailored for validators as the other sites.
  • - + \ No newline at end of file diff --git a/docs/learn-video-tutorials.html b/docs/learn-video-tutorials.html index cdf2b4c5259f..9279382df632 100644 --- a/docs/learn-video-tutorials.html +++ b/docs/learn-video-tutorials.html @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + \ No newline at end of file diff --git a/docs/learn-wasm.html b/docs/learn-wasm.html index ca2e3b4efd0a..5ed5a07479d7 100644 --- a/docs/learn-wasm.html +++ b/docs/learn-wasm.html @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ spec.
  • Wasmi - WebAssembly interpreter written in Rust.
  • Parity Wasm - WebAssembly serialization/deserialization in Rust.
  • Wasm utils - Collection of Wasm utilities used in Parity and Wasm contract development.
  • - + \ No newline at end of file diff --git a/docs/learn-xcm-index.html b/docs/learn-xcm-index.html index 1a7a9c53dba5..a917bd18642a 100644 --- a/docs/learn-xcm-index.html +++ b/docs/learn-xcm-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-xcm-instructions.html b/docs/learn-xcm-instructions.html index 0b2c668ffa44..b063cecd1c8b 100644 --- a/docs/learn-xcm-instructions.html +++ b/docs/learn-xcm-instructions.html @@ -22,7 +22,7 @@ - + @@ -40,7 +40,7 @@ system and may not be transferred. It may only be unlocked with the receipt of the UnlockAsset instruction from this chain.

  • RequestUnlock(MultiAsset, MultiLocation) - Send an UnlockAsset instruction to the locker for the given asset.

  • - + \ No newline at end of file diff --git a/docs/learn-xcm-pallet.html b/docs/learn-xcm-pallet.html index 216d7d34c105..e0bae399c3f3 100644 --- a/docs/learn-xcm-pallet.html +++ b/docs/learn-xcm-pallet.html @@ -22,7 +22,7 @@ - + @@ -90,7 +90,7 @@ calculates the total fee based on the number of instructions.

    The Trader used to calculate the weight (time for computation in consensus) to include in the message. Fee calculation in XCM is highly configurable and, for this reason, subjective to whichever configuration is in place.

    - + \ No newline at end of file diff --git a/docs/learn-xcm-transport.html b/docs/learn-xcm-transport.html index a2f494b8cd50..53dfda4fa4f6 100644 --- a/docs/learn-xcm-transport.html +++ b/docs/learn-xcm-transport.html @@ -22,7 +22,7 @@ - + @@ -72,7 +72,7 @@ asset transfer as intended.

    The collator now hands this block to the validator, which itself will verify that this message was processed. If the message was processed and all other aspects of the block are valid, the validator will include this block for parachain B into the Relay Chain.

    - + \ No newline at end of file diff --git a/docs/learn-xcm-usecases.html b/docs/learn-xcm-usecases.html index 0fa10164c774..2613e86e74eb 100644 --- a/docs/learn-xcm-usecases.html +++ b/docs/learn-xcm-usecases.html @@ -22,7 +22,7 @@ - + @@ -49,7 +49,7 @@ destination's sovereign account, and sends this instruction onwards to the destination. The destination receives the instruction and processes it, minting the derivative assets as a result of the process.

    1. DepositAsset

    The destination deposits the derivative assets minted to the receiving account.

    - + \ No newline at end of file diff --git a/docs/learn-xcm.html b/docs/learn-xcm.html index fc2ca6ff18b9..244df4745432 100644 --- a/docs/learn-xcm.html +++ b/docs/learn-xcm.html @@ -22,7 +22,7 @@ - + @@ -95,7 +95,7 @@ Technical audit report by Quarkslab prepared for Parity.

  • XCM pallet code - The pallet that contains XCM logic from the Polkadot code repository

  • XCM Config & Pallet-XCM | Polkadot Deep Dives - A technical deep dive into pallet-xcm and the XCM configuration.

  • - + \ No newline at end of file diff --git a/docs/learn-xcvm.html b/docs/learn-xcvm.html index ea06995b8e78..79340f7a198a 100644 --- a/docs/learn-xcvm.html +++ b/docs/learn-xcvm.html @@ -22,7 +22,7 @@ - + @@ -114,7 +114,7 @@ xcm-simulator, which allows developers to experiment with building, executing, and simulating various XCM use scenarios.

    - + \ No newline at end of file diff --git a/docs/learn/learn-controller.html b/docs/learn/learn-controller.html index 62561a942a26..8d2302c18de3 100644 --- a/docs/learn/learn-controller.html +++ b/docs/learn/learn-controller.html @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ used less often and usually signed by the stash.

    stash-not-as-controller

    From a practical perspective, there were two accounts, and we needed to remember two passwords. From a security perspective, the party who wanted to control our staking actions was required to control two accounts.

    - + \ No newline at end of file diff --git a/docs/learn/learn-governance.html b/docs/learn/learn-governance.html index f4ae75f74266..2c86c9ed7ddb 100644 --- a/docs/learn/learn-governance.html +++ b/docs/learn/learn-governance.html @@ -22,7 +22,7 @@ - + @@ -245,7 +245,7 @@ proposals and referenda.

    * E.g. via pallets/democracy/storage/ReferendumInfoOf?key1=index&at=blockNumber on Sidecar.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn/learn-launch.html b/docs/learn/learn-launch.html index 7619c799f226..63c02b913c31 100644 --- a/docs/learn/learn-launch.html +++ b/docs/learn/learn-launch.html @@ -22,7 +22,7 @@ - + @@ -49,7 +49,7 @@ block number 1_205_128 on August 18, 2020, at 16:39 UTC.

    Core Functionality

    After five years of research and development and a multi-stage launch that began in May 2020, Polkadot launch was completed on December 18, 2021, with all auction-winning parachains producing blocks on the network.

    Check out these resources for further information:

    - + \ No newline at end of file diff --git a/docs/learn/learn-redenomination.html b/docs/learn/learn-redenomination.html index df676efa5e1a..c49b08cc96e7 100644 --- a/docs/learn/learn-redenomination.html +++ b/docs/learn/learn-redenomination.html @@ -22,7 +22,7 @@ - + @@ -87,7 +87,7 @@ Ecosystem Redenomination Guide for recommendations.

    Please reach out to support@polkadot.network if you need any assistance in making sure your software is compatible with the redenomination.

    - + \ No newline at end of file diff --git a/docs/learn/learn-treasury.html b/docs/learn/learn-treasury.html index c72c94ca1612..0593c2df97b1 100644 --- a/docs/learn/learn-treasury.html +++ b/docs/learn/learn-treasury.html @@ -22,7 +22,7 @@ - + @@ -157,7 +157,7 @@ taking place. The time delay then allows chain participants time to respond. The response may take the form of governance measures or - in the most extreme cases a liquidation of their holdings and a migration to a minority fork. However, the possibility of this scenario is quite low.

    Further Reading

    - + \ No newline at end of file diff --git a/docs/learn/xcm.html b/docs/learn/xcm.html index 7f06d27dc800..04cdaa4c7158 100644 --- a/docs/learn/xcm.html +++ b/docs/learn/xcm.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/config-deep-dive.html b/docs/learn/xcm/config-deep-dive.html index ed98d58dc5d6..ba60b6f0df86 100644 --- a/docs/learn/xcm/config-deep-dive.html +++ b/docs/learn/xcm/config-deep-dive.html @@ -22,7 +22,7 @@ - + @@ -135,7 +135,7 @@ Statemine, or Trappist for examples of how to implement the xcm-executor config.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-fees.html b/docs/learn/xcm/fundamentals-fees.html index 143eb8076165..c1ce2467db2a 100644 --- a/docs/learn/xcm/fundamentals-fees.html +++ b/docs/learn/xcm/fundamentals-fees.html @@ -22,7 +22,7 @@ - + @@ -59,7 +59,7 @@ and charging execution fees.

    XCM pallet

    FRAME pallets, like the XCM pallet, specify weights for each extrinsic they expose. That means that when interacting with pallets that deal with XCM, there will be an additional fee at the beginning for calling the extrinsic locally.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-multiasset.html b/docs/learn/xcm/fundamentals-multiasset.html index 55fe72bd2dcc..62f89f6cdf25 100644 --- a/docs/learn/xcm/fundamentals-multiasset.html +++ b/docs/learn/xcm/fundamentals-multiasset.html @@ -22,7 +22,7 @@ - + @@ -59,7 +59,7 @@ MultiAssets and WildMultiAsset allowing either a wildcard or a list of definite (i.e. not wildcard) assets to be specified.

    pub enum MultiAssetFilter {
    /// Specify the filter as being everything contained by the given `MultiAssets` inner.
    Definite(MultiAssets),
    /// Specify the filter as the given `WildMultiAsset` wildcard.
    Wild(WildMultiAsset),
    }

    Examples

    MultiAsset

    For more information about the MultiLocations used to define concrete assets, see MultiLocation and Junction.

    // Location Relay Chain
    // 100 Native Asset (three ways)
    MultiAsset {id: Concrete(MultiLocation {parents: 0, interior: Here}), fun: Fungible(100u128)};
    MultiAsset {id: Here.into(), fun: 100.into()};
    let _: MultiAsset = (Here, 100u128).into();

    // 100 Parachain's Native Asset
    let _: MultiAsset = (X1(Parachain(1000)), 100u128).into();
    // 100 Fungible assets in Parachain 1000 with id 1234
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), 100u128).into();
    // Non Fungible asset with asset class 1234 containing only one nft instance in Parachain 1000
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), Undefined).into();
    // Non Fungible asset with asset class 1234 and AssetInstance 1 in Parachain 1000
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), Index(1)).into();

    MultiAssetFilter

    let a1: MultiAssets = MultiAssets::from(vec![MultiAsset {id: Here.into(), fun: 100u128.into()}]);
    let b1: MultiAssets = (Here, 100u128).into();
    assert_eq!(a1, b1);

    let a2: MultiAssetFilter = a1.into();
    let b2 = MultiAssetFilter::Definite((Here, 100u128).into());
    assert_eq!(a2, b2);

    let a3 = MultiAssetFilter::Wild(WildMultiAsset::All);
    let b3: MultiAssetFilter = All.into();
    assert_eq!(a3, b3);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-summary.html b/docs/learn/xcm/fundamentals-summary.html index 6489119762e4..d4686890c880 100644 --- a/docs/learn/xcm/fundamentals-summary.html +++ b/docs/learn/xcm/fundamentals-summary.html @@ -22,14 +22,14 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-xcvm.html b/docs/learn/xcm/fundamentals-xcvm.html index c1ff456cae9c..a48613e10e96 100644 --- a/docs/learn/xcm/fundamentals-xcvm.html +++ b/docs/learn/xcm/fundamentals-xcvm.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals.html b/docs/learn/xcm/fundamentals.html index f7cf210ede9e..b0bbd7eb9084 100644 --- a/docs/learn/xcm/fundamentals.html +++ b/docs/learn/xcm/fundamentals.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-example.html b/docs/learn/xcm/fundamentals/multilocation-example.html index 2926e05ec73f..6818c15c40c7 100644 --- a/docs/learn/xcm/fundamentals/multilocation-example.html +++ b/docs/learn/xcm/fundamentals/multilocation-example.html @@ -22,14 +22,14 @@ - +

    Example

    In this example we show different MultiLocations for the system hierarchy in the image below. Example

    From the perspective of RelayA

    // ParaA
    let _: MultiLocation = Parachain(1000).into();
    // AccountId32 in Parachain A
    let _: MultiLocation = (Parachain(1000), AccountId32 { network: RELAY_A_NETWORK, id: [0u8; 32]}).into();
    // Asset in Parachain A
    let _: MultiLocation = (Parachain(1000), PalletInstance(1), GeneralIndex(1)).into();
    // Ethereum based account on Parachain B
    let _: MultiLocation = (Parachain(2000), AccountKey20 { network: RELAY_A_NETWORK, key: [0u8; 20] }).into();
    // Smart Contract
    let _: MultiLocation = (Parachain(2000), PalletInstance(1), AccountKey20 { network: RELAY_A_NETWORK, key: [0u8; 20] }).into();
    // RelayB
    let _: MultiLocation = (Parent, GlobalConsensus(RELAY_B_NETWORK)).into();
    // NFT on Parachain C
    let _: MultiLocation = (Parent, GlobalConsensus(RELAY_B_NETWORK), Parachain(1000), GeneralIndex(1)).into();

    From the perspective of Parachain C

    // Relay B
    let _: MultiLocation = Parent.into();
    // Plurality Example. Many more BodyId/BodyPart combos imaginable
    let _: MultiLocation = (Parent, Plurality { id: BodyId::Index(0), part: BodyPart::Members { count: 10 } }).into();
    // Account in Relay
    let _: MultiLocation = (Parent, AccountId32 { network: None, id: [0u8; 32] }).into();

    From the perspective of the Smart Contract

    // Asset in Parachain A
    let _: MultiLocation = (Parent, Parent, Parachain(1000), PalletInstance(1), GeneralIndex(1)).into();

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-junctions.html b/docs/learn/xcm/fundamentals/multilocation-junctions.html index 3801292be7dc..92ac17c341db 100644 --- a/docs/learn/xcm/fundamentals/multilocation-junctions.html +++ b/docs/learn/xcm/fundamentals/multilocation-junctions.html @@ -22,7 +22,7 @@ - + @@ -62,7 +62,7 @@ relay chain from the perspective of the Polkadot relay chain as {parents: 1, interior: GlobalConsensus(Kusama)}. An example use case could be routing XCMs between global consensus networks using bridges.

    Multiple ways to create a MultiLocation

    // Current Location
    MultiLocation {parents: 0, interior: Here};
    MultiLocation::new(0, Here);
    MultiLocation::here();
    MultiLocation::default();
    let _: MultiLocation = Here.into();

    // Parent Location
    MultiLocation {parents: 1, interior: Here};
    MultiLocation::parent();
    let _: MultiLocation = Parent.into();

    // Conversion
    MultiLocation { parents: 2, interior: X2(Parachain(1), GeneralIndex(1))};
    let _: MultiLocation = (Parent, Parent, Parachain(1), GeneralIndex(1)).into();
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-summary.html b/docs/learn/xcm/fundamentals/multilocation-summary.html index 2f11c0f1011c..27601165a08f 100644 --- a/docs/learn/xcm/fundamentals/multilocation-summary.html +++ b/docs/learn/xcm/fundamentals/multilocation-summary.html @@ -22,7 +22,7 @@ - + @@ -57,7 +57,7 @@ .. are followed by some number of Junctions, all separated by /. The X1 and X2 variants are expressing the number of Junctions that we step down in the hierarchical structure (see Junctions for an explanation).

    // From: RelayA
    // To: ParaB
    // Location: Parachain(2000)
    MultiLocation {parents: 0, interior: X1(Parachain(2000))};
    // To: Account in ParaA
    // Location: Parachain(1000)/AccountId32(0x00..)
    MultiLocation {
    parents: 0,
    interior: X2(
    Parachain(1000),
    AccountId32{network: None, id: [0u8; 32]}
    )
    };

    // From: ParaB
    // To: RelayA
    // Location: ../Here
    MultiLocation {parents: 1, interior: Here};
    // To: Account in ParaA
    // Location: ../Parachain(1000)/AccountId32(0x00..)
    MultiLocation {
    parents: 1,
    interior: X2(
    Parachain(1000),
    AccountId32{network: None, id: [0u8; 32]}
    )
    };

    What's next:

    • More information about junctions
    • More MultiLocation examples
    • Expressing assets using Multilocations: [MultiAsset][../multiasset.md]
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation.html b/docs/learn/xcm/fundamentals/multilocation.html index 75655b18d73c..b244e76eed6a 100644 --- a/docs/learn/xcm/fundamentals/multilocation.html +++ b/docs/learn/xcm/fundamentals/multilocation.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/introduction.html b/docs/learn/xcm/introduction.html index c4d9f851efcc..83ec4f196d78 100644 --- a/docs/learn/xcm/introduction.html +++ b/docs/learn/xcm/introduction.html @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ open an issue. If you want to contribute to the format, check out the RFC process.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-assets.html b/docs/learn/xcm/journey-assets.html index e55b41927fd8..c6c57ce10def 100644 --- a/docs/learn/xcm/journey-assets.html +++ b/docs/learn/xcm/journey-assets.html @@ -22,7 +22,7 @@ - + @@ -45,7 +45,7 @@ relay chain. The assets are trapped because an error is thrown and the execution is halted. Parachain A claims the trapped assets and receives a report of the holding register.

    Parachain A sends the following message to the relay chain. The message errors because of the Trap instruction, so all assets in the Holding Register are trapped.

    let message = Xcm(vec![
    WithdrawAsset((Here, 10 * CENTS).into()),
    BuyExecution { fees: (Here, CENTS).into(), weight_limit: WeightLimit::Unlimited },
    Trap(0), // <-- Errors
    DepositAsset { // <-- Not executed because of error.
    assets: All.into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into()
    }.into()
    }
    ]);

    Parachain A claims the assets, reports them to itself and deposits them in the Account of Alice.

    let claim_message = Xcm(vec![
    ClaimAsset { assets: (Here, 10 * CENTS).into(), ticket: Here.into() },
    ReportHolding {
    response_info: QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_parts(1_000_000_000, 64*64) },
    assets: All.into()
    },
    DepositAsset {
    assets: All.into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into()
    }.into()
    },
    ]);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-channels.html b/docs/learn/xcm/journey-channels.html index b7779fe4add6..0b94765e80f0 100644 --- a/docs/learn/xcm/journey-channels.html +++ b/docs/learn/xcm/journey-channels.html @@ -22,7 +22,7 @@ - + @@ -54,7 +54,7 @@ network), you would call with network: NetworkId::Kusama and destination: X1(Parachain(1000)). Alternatively, to export a message for execution on Polkadot, you would call with network: NetworkId:: Polkadot and destination: Here.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-expectations.html b/docs/learn/xcm/journey-expectations.html index 10310904097b..0165d7adf7c3 100644 --- a/docs/learn/xcm/journey-expectations.html +++ b/docs/learn/xcm/journey-expectations.html @@ -22,7 +22,7 @@ - + @@ -47,7 +47,7 @@ the error handler, when a specific error is thrown.

        ExpectError(Option<(u32, Error)>)

    Example

    For the full example, check here.

    SetErrorHandler(Xcm(vec![
    ExpectError(Some((1, XcmError::VersionIncompatible))),
    ReportError(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    }),
    ])),
    // Pallet index is wrong, so throws `PalletNotFound` error.
    ExpectPallet {
    index: 100,
    name: "Balances".into(),
    module_name: "pallet_balances".into(),
    crate_major: 4,
    min_crate_minor: 0,
    },

    ExpectTransactStatus

    The ExpectTransactStatus instruction throws an ExpectationFalse error if the transact status register does not equal the expected transact status.

    Example

    For the full example, check here. The transact status is reported to Parachain(1) if the call in the Transact errors.

    SetErrorHandler(Xcm(vec![ReportTransactStatus(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    })])),
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: call.encode().into(),
    },
    ExpectTransactStatus(MaybeErrorCode::Success),
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-fees.html b/docs/learn/xcm/journey-fees.html index 82073f669ca8..1236ab5dbc33 100644 --- a/docs/learn/xcm/journey-fees.html +++ b/docs/learn/xcm/journey-fees.html @@ -22,7 +22,7 @@ - + @@ -65,7 +65,7 @@ throws an error, the error handler will be called and the weight for all the instructions that weren't executed is refunded. For the full example, check our repo.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-holding.html b/docs/learn/xcm/journey-holding.html index 11ab40d33b9e..c790924576e4 100644 --- a/docs/learn/xcm/journey-holding.html +++ b/docs/learn/xcm/journey-holding.html @@ -22,7 +22,7 @@ - + @@ -50,7 +50,7 @@ results could differ.

    The Assets in the exchange in Parachain(1). This is a custom exchange implementation just for testing purposes.

    let assets_in_exchange = vec![(Parent, 10 * CENTS).into()];
    parachain::set_exchange_assets(assets_in_exchange);

    The message that is send:

    let message = Xcm(vec![
    WithdrawAsset((Here, 10 * CENTS).into()),
    BuyExecution { fees: (Here, CENTS).into(), weight_limit: WeightLimit::Unlimited },
    // Maximal field set to true.
    ExchangeAsset {
    give: Definite((Here, 5 * CENTS).into()),
    want: (Parent, 5 * CENTS).into(),
    maximal: true,
    },
    DepositAsset {
    assets: AllCounted(2).into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into(),
    }
    .into(),
    },
    ]);

    Alice receives 5 CENTS worth of native assets (Here) and 5 CENTS worth of relay chain derivative assets (Parent).

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-locks.html b/docs/learn/xcm/journey-locks.html index d1ecacf5a4b9..c48138402f42 100644 --- a/docs/learn/xcm/journey-locks.html +++ b/docs/learn/xcm/journey-locks.html @@ -22,7 +22,7 @@ - + @@ -58,7 +58,7 @@ pallet-balances: 10.
    ParaA::execute_with(|| {
    let message = Xcm(vec![
    LockAsset { asset: (Here, 10 * CENTS).into(), unlocker: (Parachain(2)).into() },
    LockAsset { asset: (Here, 5 * CENTS).into(), unlocker: (Parachain(3)).into() },
    ]);
    assert_ok!(ParachainPalletXcm::send_xcm(Here, Parent, message.clone()));
    });

    Relay::execute_with(|| {
    assert_eq!(
    relay_chain::Balances::locks(&parachain_sovereign_account_id(1)),
    vec![BalanceLock { id: *b"py/xcmlk", amount: 10 * CENTS, reasons: Reasons::All }]
    );
    });
    1. Parachain B and C receive the NoteUnlockable instruction.
    ParaB::execute_with(|| {
    assert_eq!(
    parachain::MsgQueue::received_dmp(),
    vec![Xcm(vec![NoteUnlockable {
    owner: (Parent, Parachain(1)).into(),
    asset: (Parent, 10 * CENTS).into()
    }])]
    );
    });

    ParaC::execute_with(|| {
    assert_eq!(
    parachain::MsgQueue::received_dmp(),
    vec![Xcm(vec![NoteUnlockable {
    owner: (Parent, Parachain(1)).into(),
    asset: (Parent, 5 * CENTS).into()
    }])]
    );
    });
    1. Parachain A sends a RequestUnlock instruction to Parachain B for 8 CENTS.
    ParaA::execute_with(|| {
    let message = Xcm(vec![RequestUnlock {
    asset: (Parent, 8 * CENTS).into(),
    locker: Parent.into(),
    }]);

    assert_ok!(ParachainPalletXcm::send_xcm(Here, (Parent, Parachain(2)), message.clone()));
    });
    1. Parachain B Unlocks a part of the funds by sending an UnlockAsset to the relay chain. we check the lock in the balances-pallet. Unlockers: B, C; Funds registered in pallet-xcm: 2, 5. Lock set in pallet-balances: 5.
    Relay::execute_with(|| {
    assert_eq!(
    relay_chain::Balances::locks(&parachain_sovereign_account_id(1)),
    vec![BalanceLock { id: *b"py/xcmlk", amount: 5 * CENTS, reasons: Reasons::All }]
    );
    });
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-origin.html b/docs/learn/xcm/journey-origin.html index cff1e4ca09dd..41bcd0728ef0 100644 --- a/docs/learn/xcm/journey-origin.html +++ b/docs/learn/xcm/journey-origin.html @@ -22,7 +22,7 @@ - + @@ -50,7 +50,7 @@ for certain values of X (thereby allowing sibling chains to use the same account IDs) or Parachain(X)/ (allowing a Relay-chain to use the account IDs native to its child parachains) or just Parent/ (allowing parachains to use AccountIds of the Relay-chain).

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-queries.html b/docs/learn/xcm/journey-queries.html index dfeff6d94b2a..8dfa9b7c9b93 100644 --- a/docs/learn/xcm/journey-queries.html +++ b/docs/learn/xcm/journey-queries.html @@ -22,7 +22,7 @@ - + @@ -54,7 +54,7 @@ specified destination.

    ReportTransactStatus(QueryResponseInfo)

    Example

    For the full example, check here. Dispatches a call on the consensus system receiving this Xcm and reports back the status of the Transact Status Register.

    Xcm(vec![
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: remark.encode().into(),
    },
    ReportTransactStatus(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    }),
    ]);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-register.html b/docs/learn/xcm/journey-register.html index 2a6838d6dd24..e3bf29387e74 100644 --- a/docs/learn/xcm/journey-register.html +++ b/docs/learn/xcm/journey-register.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ and error handler instruction are executed. These instructions are executed regardless of whether an error occurred.

    ClearError

    ClearError

    The ClearError instruction clears the Error Register by setting it to None.

    ClearTransactStatus

    ClearTransactStatus

    The ClearTransactStatus instruction sets the Transact Status Register to its default, cleared, value.

    SetTopic

    SetTopic([u8; 32])

    The SetTopic instruction sets the Topic Register.

    ClearTopic

    ClearTopic

    The ClearTopic instruction clears the Topic Register.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-summary.html b/docs/learn/xcm/journey-summary.html index 8620953f4875..78065b8aa4b1 100644 --- a/docs/learn/xcm/journey-summary.html +++ b/docs/learn/xcm/journey-summary.html @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-transact.html b/docs/learn/xcm/journey-transact.html index 0dd7a459e97c..dd0942a219ac 100644 --- a/docs/learn/xcm/journey-transact.html +++ b/docs/learn/xcm/journey-transact.html @@ -22,7 +22,7 @@ - + @@ -53,7 +53,7 @@ Parachain(1). This function requires the origin to be root. We enable the root origin for the relay chain by setting ParentAsSuperuser for the OriginConverter config type.

    let call = parachain::RuntimeCall::Balances(
    pallet_balances::Call::<parachain::Runtime>::set_balance {
    who: ALICE,
    new_free: 5 * AMOUNT,
    new_reserved: 0,
    },
    );

    let message = Xcm(vec![
    WithdrawAsset((Here, AMOUNT).into()),
    BuyExecution { fees: (Here, AMOUNT).into(), weight_limit: WeightLimit::Unlimited },
    Transact {
    origin_kind: OriginKind::Superuser,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: call.encode().into(),
    },
    ]);

    Example 2

    For the full example, check the repo.

    In this example, as Parachain(1), we create an NFT collection on the relay chain and we then mint an NFT with ID 1. The admin for the nft collection is parachain(1). The call looks as follows:

    let create_collection = relay_chain::RuntimeCall::Uniques(
    pallet_uniques::Call::<relay_chain::Runtime>::create {
    collection: 1u32,
    admin: parachain_sovereign_account_id(1),
    }
    );

    The owner of the NFT is Alice. The nft mint call looks as follows:

    let mint = relay_chain::RuntimeCall::Uniques(
    pallet_uniques::Call::<relay_chain::Runtime>::mint {
    collection: 1u32,
    item: 1u32,
    owner: ALICE,
    }
    );

    The xcm message contains the following instructions:

    1. Withdraw native assets from the Parachain(1)'s sovereign account.
    2. Buy weight with these assets.
    3. Create a collection with as admin and owner the sovereign account of Parachain(1).
    4. Mints an NFT in the collection with item ID 1 and as owner Alice.
    let message = Xcm(vec![
    WithdrawAsset((Here, AMOUNT).into()),
    BuyExecution { fees: (Here, AMOUNT).into(), weight_limit: WeightLimit::Unlimited },
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: create_collection.encode().into(),
    },
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: mint.encode().into(),
    },
    ]);

    Next:

    Check out the following instructions that interact with the Transact Status Register:

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-version.html b/docs/learn/xcm/journey-version.html index 1eb31097bf68..da5a0c9d7253 100644 --- a/docs/learn/xcm/journey-version.html +++ b/docs/learn/xcm/journey-version.html @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ send back its currently AdvertisedVersion and will keep the subscribed location up to date when the version changes. The subscribed location can unsubscribe to version changes by sending the UnsubscribeVersion instruction.

    SubscribeVersion {
    #[codec(compact)]
    query_id: QueryId,
    max_response_weight: Weight,
    }

    UnsubscribeVersion

    Check out the example.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey.html b/docs/learn/xcm/journey.html index 4a008e9b8c51..9541deb92bed 100644 --- a/docs/learn/xcm/journey.html +++ b/docs/learn/xcm/journey.html @@ -22,13 +22,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-reserve.html b/docs/learn/xcm/journey/transfers-reserve.html index 067eed3bd5c1..b2d489528747 100644 --- a/docs/learn/xcm/journey/transfers-reserve.html +++ b/docs/learn/xcm/journey/transfers-reserve.html @@ -22,7 +22,7 @@ - + @@ -76,7 +76,7 @@ It's the sender the one who doesn't need to trust the destination, since it'll ever only be minting derivatives anyway, the sender/reserve controls the real assets and issuance.

    Next steps

    Next, we'll talk about a very important topic we mentioned before but skipped in this chapter, paying fees for the effects our XCMs have.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-summary.html b/docs/learn/xcm/journey/transfers-summary.html index ea0aeee7dbd4..92d75d1afc05 100644 --- a/docs/learn/xcm/journey/transfers-summary.html +++ b/docs/learn/xcm/journey/transfers-summary.html @@ -22,7 +22,7 @@ - + @@ -45,7 +45,7 @@ paying for execution and depositing the rest to another account on the same system. The full example can be seen in the repo.

    Transferring between systems

    But what if you want to make a transfer from one system to another? There are two ways of doing this:

    • Asset teleportation
    • Reserve-backed transfers

    We'll be discussing both in the following chapters.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-teleport.html b/docs/learn/xcm/journey/transfers-teleport.html index 808a71e9702c..90eb12f2fb23 100644 --- a/docs/learn/xcm/journey/transfers-teleport.html +++ b/docs/learn/xcm/journey/transfers-teleport.html @@ -22,7 +22,7 @@ - + @@ -64,7 +64,7 @@ another system. We could do so with the following program:

    let message = Xcm(vec![
    WithdrawAsset((GeneralIndex(1), 42u32).into()),
    InitiateTeleport {
    assets: All.into(),
    dest: Parachain(1).into(),
    xcm: Xcm(vec![DepositAsset {
    assets: All.into(),
    beneficiary: Junction::AccountId32 {
    id: ALICE.into(),
    network: None,
    }.into()
    }]),
    },
    ]);

    Very little changes, in fact, only the MultiAsset we're referencing changes, like we would expect. All the teleportation logic stays the same. The example assumes an NFT with index 42 inside a collection with index 1.

    Next steps

    We'll look at reserve-backed transfers next.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers.html b/docs/learn/xcm/journey/transfers.html index d65ebd60bef2..cb22d7a63fa8 100644 --- a/docs/learn/xcm/journey/transfers.html +++ b/docs/learn/xcm/journey/transfers.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-architecture.html b/docs/learn/xcm/overview-architecture.html index 8ff607b1b192..e65bc45bb1f5 100644 --- a/docs/learn/xcm/overview-architecture.html +++ b/docs/learn/xcm/overview-architecture.html @@ -22,7 +22,7 @@ - + @@ -52,7 +52,7 @@ about later. It's the glue between XCM and FRAME, which is highly used in the Polkadot ecosystem.

    Simulator

    The simulator allows for testing XCMs fast, without needing to boot up several different nodes in a network, or test in production. It's a very useful tool which we'll use throughout this document to build and test different XCMs.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-format.html b/docs/learn/xcm/overview-format.html index b82ddd7c3484..5e6691982ac6 100644 --- a/docs/learn/xcm/overview-format.html +++ b/docs/learn/xcm/overview-format.html @@ -22,7 +22,7 @@ - + @@ -41,7 +41,7 @@ changes. XCM communicates intentions; the actual interpretation and behaviour of each instruction in an XCM is defined by target's XCVM implementation.

    Both simple and more complex scenarios can be expressed, and developers are encouraged to design and implement diverse cross-consensus communication solutions.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-intro.html b/docs/learn/xcm/overview-intro.html index a9e67d2c225a..cbe51753f30e 100644 --- a/docs/learn/xcm/overview-intro.html +++ b/docs/learn/xcm/overview-intro.html @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ propose changes, which end up in newer versions, the current one being v3. To keep up with the development of the format, or to propose changes, go to the XCM format repository.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-summary.html b/docs/learn/xcm/overview-summary.html index b8fdffb214a1..b95a7c55eeac 100644 --- a/docs/learn/xcm/overview-summary.html +++ b/docs/learn/xcm/overview-summary.html @@ -22,7 +22,7 @@ - + @@ -35,7 +35,7 @@ interactions between them. XCM is meant to be used by developers to package these interactions into their runtime logic before exposing that functionality to end users.

    This chapter will cover what XCM is, what it isn't, and why it matters before exploring the different components that make up the XCM ecosystem.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-xcvm.html b/docs/learn/xcm/overview-xcvm.html index a05e059358ee..ba4008372550 100644 --- a/docs/learn/xcm/overview-xcvm.html +++ b/docs/learn/xcm/overview-xcvm.html @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ putting them in and taking them from this register. This register is used by several of the instructions we will look at later, including DepositAsset and WithdrawAsset.

    For more information on other registers, see the All XCVM Registers section.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview.html b/docs/learn/xcm/overview.html index 47981046b019..25a93318c1ed 100644 --- a/docs/learn/xcm/overview.html +++ b/docs/learn/xcm/overview.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-first-look.html b/docs/learn/xcm/quickstart-first-look.html index 1f51e5ca5e14..02a88c639de1 100644 --- a/docs/learn/xcm/quickstart-first-look.html +++ b/docs/learn/xcm/quickstart-first-look.html @@ -22,7 +22,7 @@ - + @@ -54,7 +54,7 @@ examples for every instruction in the journey through XCM chapter. First, it's important to learn the fundamentals, MultiLocation, MultiAsset, and other concepts in XCM. We'll talk about those next.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-simulator.html b/docs/learn/xcm/quickstart-simulator.html index ca4b01f39c58..9849a1040b27 100644 --- a/docs/learn/xcm/quickstart-simulator.html +++ b/docs/learn/xcm/quickstart-simulator.html @@ -22,7 +22,7 @@ - + @@ -34,7 +34,7 @@ actually test your XCM-powered solution. We'll get into tools and best practices for testing in the testing chapter.

    We'll use the simulator throughout the documentation to show different XCMs in action. In the next section we will take a first look at an XCM.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-summary.html b/docs/learn/xcm/quickstart-summary.html index 5e585bb046f8..6a0bba3b807d 100644 --- a/docs/learn/xcm/quickstart-summary.html +++ b/docs/learn/xcm/quickstart-summary.html @@ -22,7 +22,7 @@ - + @@ -32,7 +32,7 @@ installation guide.

    Running the Examples

    All examples in the documentation are located in the repository. Follow these steps to run the first-look example. First clone the repository:

    git clone git@github.com:paritytech/xcm-docs.git
    cd xcm-docs/examples

    To run the first-look example, run the following line:

    cargo test -p xcm-examples para_a_simple_transfer -- --nocapture

    It should show you the following output:

    running 1 test
    test first_look::tests::para_a_simple_transfer ... ok

    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.01s
    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart.html b/docs/learn/xcm/quickstart.html index 8a3584ddf8cb..6833bd29c584 100644 --- a/docs/learn/xcm/quickstart.html +++ b/docs/learn/xcm/quickstart.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/reference-glossary.html b/docs/learn/xcm/reference-glossary.html index 7557dff017fe..22b6d7820507 100644 --- a/docs/learn/xcm/reference-glossary.html +++ b/docs/learn/xcm/reference-glossary.html @@ -22,7 +22,7 @@ - + @@ -47,7 +47,7 @@ through the relay chain.

    HRMP (Horizontal Message Passing)

    Transport-layer protocol that allows a parachain to send messages to a sibling parachain going through the relay chain. It's a precursor to XCMP, also known as XCMP-lite. It uses a mixture of UMP and VMP.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/reference-xcvm-registers.html b/docs/learn/xcm/reference-xcvm-registers.html index 3f1a0769287c..e523e5617c6e 100644 --- a/docs/learn/xcm/reference-xcvm-registers.html +++ b/docs/learn/xcm/reference-xcvm-registers.html @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@
    - + \ No newline at end of file diff --git a/docs/learn/xcm/references.html b/docs/learn/xcm/references.html index bfea9122b4a8..4498f9aa0c76 100644 --- a/docs/learn/xcm/references.html +++ b/docs/learn/xcm/references.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/testing.html b/docs/learn/xcm/testing.html index b807c30c7226..1cb0cf2189c2 100644 --- a/docs/learn/xcm/testing.html +++ b/docs/learn/xcm/testing.html @@ -22,7 +22,7 @@ - + @@ -43,7 +43,7 @@ messaging infrastructure as live networks, as the transport mechanism is being mocked out. Also, consensus related events are not tested, like disputes and staking. To test for these events, parachains can use E2E tests.

    End-to-End testing

    There are two frameworks being used in the ecosystem to do e2e testing:

    - + \ No newline at end of file diff --git a/docs/ledger.html b/docs/ledger.html index 6d38557628b4..62277d67ade0 100644 --- a/docs/ledger.html +++ b/docs/ledger.html @@ -22,7 +22,7 @@ - + @@ -88,7 +88,7 @@ this support article to learn how to use Polkadot with ledger live.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about Ledger.

    - + \ No newline at end of file diff --git a/docs/maintain-archive.html b/docs/maintain-archive.html index e6d01fc538e1..baab8757d1fb 100644 --- a/docs/maintain-archive.html +++ b/docs/maintain-archive.html @@ -22,14 +22,14 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-bootnode.html b/docs/maintain-bootnode.html index f0cc3341290c..cbfc8d30f442 100644 --- a/docs/maintain-bootnode.html +++ b/docs/maintain-bootnode.html @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ port 30311:

    /etc/nginx/sites-enabled/dot-bootnode

    server {
    listen 30312 ssl http2 default_server;
    server_name dot-bootnode.stakeworld.io;
    root /var/www/html;

    ssl_certificate "<your_cert";
    ssl_certificate_key "<your_key>";

    location / {
    proxy_buffers 16 4k;
    proxy_buffer_size 2k;
    proxy_pass http://localhost:30311;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    }

    }

    Testing Bootnode Connection

    If we have the above node running with DNS name dot-bootnode.stakeworld.io, proxied with a valid certificate and node-id 12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg then the following commands should give you a: "syncing 1 peers".

    tip

    You can add -lsub-libp2p=trace on the end to get libp2p trace logging for debugging purposes.

    p2p:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30310/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks

    p2p/ws:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30311/ws/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks

    p2p/wss:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30312/wss/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks
    - + \ No newline at end of file diff --git a/docs/maintain-collator-index.html b/docs/maintain-collator-index.html index fd8c2f80446f..522b5777408e 100644 --- a/docs/maintain-collator-index.html +++ b/docs/maintain-collator-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-endpoints.html b/docs/maintain-endpoints.html index ac8eae172542..c13653f49ef7 100644 --- a/docs/maintain-endpoints.html +++ b/docs/maintain-endpoints.html @@ -22,7 +22,7 @@ - + @@ -43,9 +43,9 @@ like so:

    // Using the Polkadot Mainnet Endpoint
    const { ApiPromise, WsProvider } = require('@polkadot/api');
    async () => {
    // Construct a provider with the endpoint URL
    const provider = new WsProvider('wss://polkadot-asset-hub-rpc.polkadot.io');
    // Create an API instance for Polkadot
    const api = await ApiPromise.create({ provider });
    // ...

    Third Party Providers

    There are a number of third-party providers of RPC infrastructure to the Polkadot and Kusama communities, commonly providing access to multiple networks and parachains in a single service. They provide additional services such as higher rate limits, potentially more reliable and scalable -service, and additional metrics.

    note

    The list of third party RPC endpoints above for Polkadot and Kusama is directly fetched from -Polkadot-JS UI

    - +service, and additional metrics.

    note

    The list of third party RPC endpoints above for Polkadot and Kusama is directly fetched from +Polkadot-JS UI

    + \ No newline at end of file diff --git a/docs/maintain-errors.html b/docs/maintain-errors.html index c4f168bf5b66..29c1fbc4f176 100644 --- a/docs/maintain-errors.html +++ b/docs/maintain-errors.html @@ -22,7 +22,7 @@ - + @@ -54,7 +54,7 @@ will wait to be executed at the correct place in the nonce sequence OR it will get discarded due to some other error (ex. the validity period expires).*

    Error Table

    The below table is a reference to the errors that exists in Polkadot. It is generated from the runtime's metadata.

    PalletErrorDocumentation
    System (0)
    InvalidSpecName (0)The name of specification does not match between the current runtime and the new runtime.
    SpecVersionNeedsToIncrease (1)The specification version is not allowed to decrease between the current runtime and the new runtime.
    FailedToExtractRuntimeVersion (2)Failed to extract the runtime version from the new runtime. Either calling Core_version or decoding RuntimeVersion failed.
    NonDefaultComposite (3)Suicide called when the account has non-default composite data.
    NonZeroRefCount (4)There is a non-zero reference count preventing the account from being purged.
    Scheduler (1)
    FailedToSchedule (0)Failed to schedule a call
    NotFound (1)Cannot find the scheduled call.
    TargetBlockNumberInPast (2)Given target block number is in the past.
    RescheduleNoChange (3)Reschedule failed because it does not change scheduled time.
    Balances (5)
    VestingBalance (0)Vesting balance too high to send value
    LiquidityRestrictions (1)Account liquidity restrictions prevent withdrawal
    Overflow (2)Got an overflow after adding
    InsufficientBalance (3)Balance too low to send value
    ExistentialDeposit (4)Value too low to create account due to existential deposit
    KeepAlive (5)Transfer/payment would kill account
    ExistingVestingSchedule (6)A vesting schedule already exists for this account
    DeadAccount (7)Beneficiary account must pre-exist
    Authorship (6)
    InvalidUncleParent (0)The uncle parent not in the chain.
    UnclesAlreadySet (1)Uncles already set in the block.
    TooManyUncles (2)Too many uncles.
    GenesisUncle (3)The uncle is genesis.
    TooHighUncle (4)The uncle is too high in chain.
    UncleAlreadyIncluded (5)The uncle is already included.
    OldUncle (6)The uncle isn't recent enough to be included.
    Staking (7)
    NotController (0)Not a controller account.
    NotStash (1)Not a stash account.
    AlreadyBonded (2)Stash is already bonded.
    AlreadyPaired (3)Controller is already paired.
    EmptyTargets (4)Targets cannot be empty.
    DuplicateIndex (5)Duplicate index.
    InvalidSlashIndex (6)Slash record index out of bounds.
    InsufficientValue (7)Can not bond with value less than minimum balance.
    NoMoreChunks (8)Can not schedule more unlock chunks.
    NoUnlockChunk (9)Can not rebond without unlocking chunks.
    FundedTarget (10)Attempting to target a stash that still has funds.
    InvalidEraToReward (11)Invalid era to reward.
    InvalidNumberOfNominations (12)Invalid number of nominations.
    NotSortedAndUnique (13)Items are not sorted and unique.
    AlreadyClaimed (14)Rewards for this era have already been claimed for this validator.
    OffchainElectionEarlySubmission (15)The submitted result is received out of the open window.
    OffchainElectionWeakSubmission (16)The submitted result is not as good as the one stored on chain.
    SnapshotUnavailable (17)The snapshot data of the current window is missing.
    OffchainElectionBogusWinnerCount (18)Incorrect number of winners were presented.
    OffchainElectionBogusWinner (19)One of the submitted winners is not an active candidate on chain (index is out of range in snapshot).
    OffchainElectionBogusCompact (20)Error while building the assignment type from the compact. This can happen if an index is invalid, or if the weights overflow.
    OffchainElectionBogusNominator (21)One of the submitted nominators is not an active nominator on chain.
    OffchainElectionBogusNomination (22)One of the submitted nominators has an edge to which they have not voted on chain.
    OffchainElectionSlashedNomination (23)One of the submitted nominators has an edge which is submitted before the last non-zero slash of the target.
    OffchainElectionBogusSelfVote (24)A self vote must only be originated from a validator to ONLY themselves.
    OffchainElectionBogusEdge (25)The submitted result has unknown edges that are not among the presented winners.
    OffchainElectionBogusScore (26)The claimed score does not match with the one computed from the data.
    OffchainElectionBogusElectionSize (27)The election size is invalid.
    CallNotAllowed (28)The call is not allowed at the given time due to restrictions of election period.
    IncorrectHistoryDepth (29)Incorrect previous history depth input provided.
    IncorrectSlashingSpans (30)Incorrect number of slashing spans provided.
    Session (9)
    InvalidProof (0)Invalid ownership proof.
    NoAssociatedValidatorId (1)No associated validator ID for account.
    DuplicatedKey (2)Registered duplicate key.
    NoKeys (3)No keys are associated with this account.
    Grandpa (11)
    PauseFailed (0)Attempt to signal GRANDPA pause when the authority set isn't live (either paused or already pending pause).
    ResumeFailed (1)Attempt to signal GRANDPA resume when the authority set isn't paused (either live or already pending resume).
    ChangePending (2)Attempt to signal GRANDPA change with one already pending.
    TooSoon (3)Cannot signal forced change so soon after last.
    InvalidKeyOwnershipProof (4)A key ownership proof provided as part of an equivocation report is invalid.
    InvalidEquivocationProof (5)An equivocation proof provided as part of an equivocation report is invalid.
    DuplicateOffenceReport (6)A given equivocation report is valid but already previously reported.
    Democracy (14)
    ValueLow (0)Value too low
    ProposalMissing (1)Proposal does not exist
    BadIndex (2)Unknown index
    AlreadyCanceled (3)Cannot cancel the same proposal twice
    DuplicateProposal (4)Proposal already made
    ProposalBlacklisted (5)Proposal still blacklisted
    NotSimpleMajority (6)Next external proposal not simple majority
    InvalidHash (7)Invalid hash
    NoProposal (8)No external proposal
    AlreadyVetoed (9)Identity may not veto a proposal twice
    NotDelegated (10)Not delegated
    DuplicatePreimage (11)Preimage already noted
    NotImminent (12)Not imminent
    TooEarly (13)Too early
    Imminent (14)Imminent
    PreimageMissing (15)Preimage not found
    ReferendumInvalid (16)Vote given for invalid referendum
    PreimageInvalid (17)Invalid preimage
    NoneWaiting (18)No proposals waiting
    NotLocked (19)The target account does not have a lock.
    NotExpired (20)The lock on the account to be unlocked has not yet expired.
    NotVoter (21)The given account did not vote on the referendum.
    NoPermission (22)The actor has no permission to conduct the action.
    AlreadyDelegating (23)The account is already delegating.
    Overflow (24)An unexpected integer overflow occurred.
    Underflow (25)An unexpected integer underflow occurred.
    InsufficientFunds (26)Too high a balance was provided that the account cannot afford.
    NotDelegating (27)The account is not currently delegating.
    VotesExist (28)The account currently has votes attached to it and the operation cannot succeed until these are removed, either through unvote or reap_vote.
    InstantNotAllowed (29)The instant referendum origin is currently disallowed.
    Nonsense (30)Delegation to oneself makes no sense.
    WrongUpperBound (31)Invalid upper bound.
    MaxVotesReached (32)Maximum number of votes reached.
    InvalidWitness (33)The provided witness data is wrong.
    TooManyProposals (34)Maximum number of proposals reached.
    Council (15)
    NotMember (0)Account is not a member
    DuplicateProposal (1)Duplicate proposals not allowed
    ProposalMissing (2)Proposal must exist
    WrongIndex (3)Mismatched index
    DuplicateVote (4)Duplicate vote ignored
    AlreadyInitialized (5)Members are already initialized!
    TooEarly (6)The close call was made too early, before the end of the voting.
    TooManyProposals (7)There can only be a maximum of MaxProposals active proposals.
    WrongProposalWeight (8)The given weight bound for the proposal was too low.
    WrongProposalLength (9)The given length bound for the proposal was too low.
    TechnicalCommittee (16)
    NotMember (0)Account is not a member
    DuplicateProposal (1)Duplicate proposals not allowed
    ProposalMissing (2)Proposal must exist
    WrongIndex (3)Mismatched index
    DuplicateVote (4)Duplicate vote ignored
    AlreadyInitialized (5)Members are already initialized!
    TooEarly (6)The close call was made too early, before the end of the voting.
    TooManyProposals (7)There can only be a maximum of MaxProposals active proposals.
    WrongProposalWeight (8)The given weight bound for the proposal was too low.
    WrongProposalLength (9)The given length bound for the proposal was too low.
    ElectionsPhragmen (17)
    UnableToVote (0)Cannot vote when no candidates or members exist.
    NoVotes (1)Must vote for at least one candidate.
    TooManyVotes (2)Cannot vote more than candidates.
    MaximumVotesExceeded (3)Cannot vote more than maximum allowed.
    LowBalance (4)Cannot vote with stake less than minimum balance.
    UnableToPayBond (5)Voter can not pay voting bond.
    MustBeVoter (6)Must be a voter.
    ReportSelf (7)Cannot report self.
    DuplicatedCandidate (8)Duplicated candidate submission.
    MemberSubmit (9)Member cannot re-submit candidacy.
    RunnerSubmit (10)Runner cannot re-submit candidacy.
    InsufficientCandidateFunds (11)Candidate does not have enough funds.
    NotMember (12)Not a member.
    InvalidCandidateCount (13)The provided count of number of candidates is incorrect.
    InvalidVoteCount (14)The provided count of number of votes is incorrect.
    InvalidRenouncing (15)The renouncing origin presented a wrong Renouncing parameter.
    InvalidReplacement (16)Prediction regarding replacement after member removal is wrong.
    Treasury (19)
    InsufficientProposersBalance (0)Proposer's balance is too low.
    InvalidIndex (1)No proposal or bounty at that index.
    ReasonTooBig (2)The reason given is just too big.
    AlreadyKnown (3)The tip was already found/started.
    UnknownTip (4)The tip hash is unknown.
    NotFinder (5)The account attempting to retract the tip is not the finder of the tip.
    StillOpen (6)The tip cannot be claimed/closed because there are not enough tippers yet.
    Premature (7)The tip cannot be claimed/closed because it's still in the countdown period.
    UnexpectedStatus (8)The bounty status is unexpected.
    RequireCurator (9)Require bounty curator.
    InvalidValue (10)Invalid bounty value.
    InvalidFee (11)Invalid bounty fee.
    PendingPayout (12)A bounty payout is pending. To cancel the bounty, you must unassign and slash the curator.
    Claims (24)
    InvalidEthereumSignature (0)Invalid Ethereum signature.
    SignerHasNoClaim (1)Ethereum address has no claim.
    SenderHasNoClaim (2)Account ID sending tx has no claim.
    PotUnderflow (3)There's not enough in the pot to pay out some unvested amount. Generally implies a logic error.
    InvalidStatement (4)A needed statement was not included.
    VestedBalanceExists (5)The account already has a vested balance.
    Vesting (25)
    NotVesting (0)The account given is not vesting.
    ExistingVestingSchedule (1)An existing vesting schedule already exists for this account that cannot be clobbered.
    AmountLow (2)Amount being transferred is too low to create a vesting schedule.
    Identity (28)
    TooManySubAccounts (0)Too many subs-accounts.
    NotFound (1)Account isn't found.
    NotNamed (2)Account isn't named.
    EmptyIndex (3)Empty index.
    FeeChanged (4)Fee is changed.
    NoIdentity (5)No identity found.
    StickyJudgement (6)Sticky judgement.
    JudgementGiven (7)Judgement given.
    InvalidJudgement (8)Invalid judgement.
    InvalidIndex (9)The index is invalid.
    InvalidTarget (10)The target is invalid.
    TooManyFields (11)Too many additional fields.
    TooManyRegistrars (12)Maximum amount of registrars reached. Cannot add any more.
    AlreadyClaimed (13)Account ID is already named.
    NotSub (14)Sender is not a sub-account.
    NotOwned (15)Sub-account isn't owned by sender.
    Proxy (29)
    TooMany (0)There are too many proxies registered or too many announcements pending.
    NotFound (1)Proxy registration not found.
    NotProxy (2)Sender is not a proxy of the account to be proxied.
    Unproxyable (3)A call which is incompatible with the proxy type's filter was attempted.
    Duplicate (4)Account is already a proxy.
    NoPermission (5)Call may not be made by proxy because it may escalate its privileges.
    Unannounced (6)Announcement, if made at all, was made too recently.
    Multisig (30)
    MinimumThreshold (0)Threshold must be 2 or greater.
    AlreadyApproved (1)Call is already approved by this signatory.
    NoApprovalsNeeded (2)Call doesn't need any (more) approvals.
    TooFewSignatories (3)There are too few signatories in the list.
    TooManySignatories (4)There are too many signatories in the list.
    SignatoriesOutOfOrder (5)The signatories were provided out of order; they should be ordered.
    SenderInSignatories (6)The sender was contained in the other signatories; it shouldn't be.
    NotFound (7)Multisig operation not found when attempting to cancel.
    NotOwner (8)Only the account that originally created the multisig is able to cancel it.
    NoTimepoint (9)No timepoint was given, yet the multisig operation is already underway.
    WrongTimepoint (10)A different timepoint was given to the multisig operation that is underway.
    UnexpectedTimepoint (11)A timepoint was given, yet no multisig operation is underway.
    WeightTooLow (12)The maximum weight information provided was too low.
    AlreadyStored (13)The data to be stored is already stored.
    - + \ No newline at end of file diff --git a/docs/maintain-guides-async-backing.html b/docs/maintain-guides-async-backing.html index 5e84f67b789c..7375b654d98f 100644 --- a/docs/maintain-guides-async-backing.html +++ b/docs/maintain-guides-async-backing.html @@ -22,7 +22,7 @@ - + @@ -94,7 +94,7 @@ Relay block number is kept track of by each parachain in pallet-parachain-system with the storage value LastRelayChainBlockNumber. This value can be obtained and used wherever timing based on block number is needed.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-chill.html b/docs/maintain-guides-how-to-chill.html index a0bc622c7779..b7ca49514d23 100644 --- a/docs/maintain-guides-how-to-chill.html +++ b/docs/maintain-guides-how-to-chill.html @@ -22,7 +22,7 @@ - + @@ -70,7 +70,7 @@ Polkadot is set to None eliminating the upper bound on the number of nominators on the network. Due to this, the chillOther extrinsic on Polkadot network has no effect as the chill threshold will never be met.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-monitor-your-node.html b/docs/maintain-guides-how-to-monitor-your-node.html index f41189932ace..d7a6f40f52d2 100644 --- a/docs/maintain-guides-how-to-monitor-your-node.html +++ b/docs/maintain-guides-how-to-monitor-your-node.html @@ -22,7 +22,7 @@ - + @@ -87,7 +87,7 @@ here. There are other interesting alerts you may find useful here.

    groups:
    - name: alert_rules
    rules:
    - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
    severity: critical
    annotations:
    summary: "Instance [{{ $labels.instance }}] down"
    description: "[{{ $labels.instance }}] of job [{{ $labels.job }}] has been down for more than 1 minute."

    Change the ownership of this file to prometheus instead of root by running:

    sudo chown prometheus:prometheus rules.yml

    To check the rules defined in the "rules.yml" is syntactically correct, run the following command:

    sudo -u prometheus promtool check rules rules.yml

    Finally, restart everything by running:

    sudo systemctl restart prometheus && sudo systemctl restart alertmanager

    Now if one of your target instances down, you will receive an alert on the AlertManager and Gmail like below.

    grafana-am-6

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-stop-validating.html b/docs/maintain-guides-how-to-stop-validating.html index 12a13b8c77ec..3297f2093b03 100644 --- a/docs/maintain-guides-how-to-stop-validating.html +++ b/docs/maintain-guides-how-to-stop-validating.html @@ -22,7 +22,7 @@ - + @@ -43,7 +43,7 @@ transfer your tokens.

    See Unbonding and Rebonding for more details.

    Unbond your tokens

    Unbonding your tokens can be done through the Network > Staking > Account actions page in PolkadotJS Apps by clicking the corresponding stash account dropdown and selecting "Unbond funds". This can also be done through the staking.unbond() extrinsic with the staking proxy account.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-systemd.html b/docs/maintain-guides-how-to-systemd.html index a91feaa07f9b..6d3ab6ed9d11 100644 --- a/docs/maintain-guides-how-to-systemd.html +++ b/docs/maintain-guides-how-to-systemd.html @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ not recognize votes that didn't make it to disk, and will then cast conflicting votes. Delaying the restart will allow the network to progress past potentially conflicting votes, at which point other nodes will not accept them.

    To enable this to autostart on bootup run:

    systemctl enable polkadot-validator.service

    Start it manually with:

    systemctl start polkadot-validator.service

    You can check that it's working with:

    systemctl status polkadot-validator.service

    You can tail the logs with journalctl like so:

    journalctl -f -u polkadot-validator
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-upgrade.html b/docs/maintain-guides-how-to-upgrade.html index 1d2f79397594..8c7406ea980e 100644 --- a/docs/maintain-guides-how-to-upgrade.html +++ b/docs/maintain-guides-how-to-upgrade.html @@ -22,7 +22,7 @@ - + @@ -53,7 +53,7 @@ Validator A.
  • Take note of the Session that this extrinsic was executed in.
  • Again, it is imperative that Validator B is kept running until the current session finishes and two further full sessions have elapsed.

    Once this time has elapsed, Validator A will take over. You can safely stop Validator B.

    NOTE: To verify that the Session has changed, make sure that a block in the new Session is finalized. You should see log messages like the ones below to confirm the change:

    2019-10-28 21:44:13 Applying authority set change scheduled at block #450092
    2019-10-28 21:44:13 Applying GRANDPA set change to new set with 20 authorities
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-validate-kusama.html b/docs/maintain-guides-how-to-validate-kusama.html index 9431d666ce84..9d1597d036fe 100644 --- a/docs/maintain-guides-how-to-validate-kusama.html +++ b/docs/maintain-guides-how-to-validate-kusama.html @@ -22,7 +22,7 @@ - + @@ -61,7 +61,7 @@ validator payout document.

    Run a Kusama Validator

    Running a validator on the Kusama network is identical to running a Polkadot validator. Check out the Polkadot guide on how to setup a validator.

    Make sure to adjust the Polkadot guide to run a Kusama network validator (the instructions will also be available in the Polkadot Validator guide):

    • When starting the node pass --chain=kusama CLI flag
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-validate-polkadot.html b/docs/maintain-guides-how-to-validate-polkadot.html index bc733494a0cd..7a2ec8dae3c7 100644 --- a/docs/maintain-guides-how-to-validate-polkadot.html +++ b/docs/maintain-guides-how-to-validate-polkadot.html @@ -22,7 +22,7 @@ - + @@ -264,7 +264,7 @@ instance, Digital Ocean lists "Mining of Cryptocurrencies" under the Network Abuse section of their Acceptable Use Policy and requires explicit permission to do so. This may extend to other cryptocurrency activity.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-secure-validator.html b/docs/maintain-guides-secure-validator.html index 3e859c49088d..03c74e1f4189 100644 --- a/docs/maintain-guides-secure-validator.html +++ b/docs/maintain-guides-secure-validator.html @@ -22,7 +22,7 @@ - + @@ -71,7 +71,7 @@ hardware. The provisioning of the validator machine should be automated and defined in code. This code should be kept in private version control, reviewed, audited, and tested.

  • Session keys should be generated and provided in a secure way.

  • Polkadot should be started at boot and restarted if stopped for any reason (supervisor process).

  • Polkadot should run as a non-root user.

  • Monitoring

    • There should be an on-call rotation for managing the alerts.

    • There should be a clear protocol with actions to perform for each level of each alert and an escalation policy.

    Resources

    - + \ No newline at end of file diff --git a/docs/maintain-guides-society-kusama.html b/docs/maintain-guides-society-kusama.html index 0816ad4b871f..d28fcf52de0f 100644 --- a/docs/maintain-guides-society-kusama.html +++ b/docs/maintain-guides-society-kusama.html @@ -22,7 +22,7 @@ - + @@ -96,7 +96,7 @@ extrinsic's parameters go to Element 1 ("proposal") -> "value" -> "params" -> Element 2 ("rules") and copy the value corresponding to the key "value". You can use a hex-to-UTF8 converter to then display the text. Note that the text is formatted with Markdown.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-validator-community.html b/docs/maintain-guides-validator-community.html index e82fddfeb9ad..f64d26fef816 100644 --- a/docs/maintain-guides-validator-community.html +++ b/docs/maintain-guides-validator-community.html @@ -22,7 +22,7 @@ - + @@ -167,7 +167,7 @@ monitoring, observability services, staking dashboards, wallets, command-line utilities, or porting implementations to other languages. Additionally, this may also be eligible to be funded via a Web3 Foundation Grant.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-validator-payout.html b/docs/maintain-guides-validator-payout.html index a419bf5bfbd6..8e2056de330d 100644 --- a/docs/maintain-guides-validator-payout.html +++ b/docs/maintain-guides-validator-payout.html @@ -22,7 +22,7 @@ - + @@ -96,7 +96,7 @@ brackets ([]) next to each validator. Note that since the validator payment is public knowledge, having a low or non-existent validator payment may attract more stake from nominators, since they know they will receive a larger reward.

    Validator Set Size (v): 4
    Validator 1 Stake (v1) [20% commission]: 18 DOT (9 validator, 9 nominator)
    Validator 2 Stake (v2) [40% commission]: 9 DOT (3 validator, 6 nominator)
    Validator 3 Stake (v3) [10% commission]: 8 DOT (4 validator, 4 nominator)
    Validator 4 Stake (v4) [ 0% commission]: 6 DOT (1 validator, 5 nominator)
    Payout (p): 8 DOT

    Payout for each validator (v1 - v4):
    p / v = 8 / 4 = 2 DOT

    v1:
    (0.2 * 2) = 0.4 DOT -> validator payment
    (2 - 0.4) = 1.6 -> shared between all stake
    (9 / 18) * 1.6 = 0.8 -> validator stake share
    (9 / 18) * 1.6 = 0.8 -> nominator stake share
    v1 validator total reward: 0.4 + 0.8 = 1.2 DOT
    v1 nominator reward: 0.8 DOT

    v2:
    (0.4 * 2) = 0.8 DOT -> validator payment
    (2 - 0.8) = 1.2 -> shared between all stake
    (3 / 9) * 1.2 = 0.4 -> validator stake share
    (6 / 9) * 1.2 = 0.8 -> nominator stake share
    v2 validator total reward: 0.8 + 0.4 = 1.2 DOT
    v2 nominator reward: 0.8 DOT

    v3:
    (0.1 * 2) = 0.2 DOT -> validator payment
    (2 - 0.2) = 1.8 -> shared between all stake
    (4 / 8) * 1.8 = 0.9 -> validator stake share
    (4 / 8) * 1.8 = 0.9 -> nominator stake share
    v3 validator total reward: 0.2 + 0.9 DOT = 1.1 DOT
    v3 nominator reward: 0.9 DOT

    v4:
    (0 * 2) = 0 DOT -> validator payment
    (2 - 0) = 2.0 -> shared between all stake
    (1 / 6) * 2 = 0.33 -> validator stake share
    (5 / 6) * 2 = 1.67 -> nominator stake share
    v4 validator total reward: 0 + 0.33 DOT = 0.33 DOT
    v4 nominator reward: 1.67 DOT
    - + \ No newline at end of file diff --git a/docs/maintain-index.html b/docs/maintain-index.html index c6efd9fdc7a8..d71280daa845 100644 --- a/docs/maintain-index.html +++ b/docs/maintain-index.html @@ -22,7 +22,7 @@ - + @@ -32,7 +32,7 @@ information and guides to set up a node and run the network.

    Polkadot's Canary Network Kusama

    For more information about being a Kusama maintainer, see the pages below:

    - + \ No newline at end of file diff --git a/docs/maintain-networks.html b/docs/maintain-networks.html index 81f13edc2490..b0652d54bb31 100644 --- a/docs/maintain-networks.html +++ b/docs/maintain-networks.html @@ -22,7 +22,7 @@ - + @@ -57,7 +57,7 @@ the public Telemetry service.

    You can verify that your node is connected by navigating to the correct network on the dashboard and finding the name of your node.

    There is a built-in search function on the nodes page. Simply start typing keystrokes in the main window to make it available.

    - + \ No newline at end of file diff --git a/docs/maintain-node-index.html b/docs/maintain-node-index.html index 4af538d3349c..21d78e599736 100644 --- a/docs/maintain-node-index.html +++ b/docs/maintain-node-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-polkadot-parameters.html b/docs/maintain-polkadot-parameters.html index 175fd472bb74..d2d3baf27610 100644 --- a/docs/maintain-polkadot-parameters.html +++ b/docs/maintain-polkadot-parameters.html @@ -22,7 +22,7 @@ - + @@ -41,7 +41,7 @@ known as Denomination Day. See Redenomination for details.

    - + \ No newline at end of file diff --git a/docs/maintain-rpc.html b/docs/maintain-rpc.html index 8ee9d719fbd3..0ba32f5d0e65 100644 --- a/docs/maintain-rpc.html +++ b/docs/maintain-rpc.html @@ -22,7 +22,7 @@ - + @@ -57,7 +57,7 @@ node. Activate the "Development" toggle and input your node's address - either the domain or the IP address. Remember to prefix with wss://, and if you're using the 443 port, append :443 like so: wss://example.com:443.

    A sync-in-progress chain connected to Polkadot-JS UI

    Now you have a secure remote connect setup for your Substrate node.

    - + \ No newline at end of file diff --git a/docs/maintain-sync.html b/docs/maintain-sync.html index f3be141a4dc1..5dd61877cd7b 100644 --- a/docs/maintain-sync.html +++ b/docs/maintain-sync.html @@ -22,7 +22,7 @@ - + @@ -55,7 +55,7 @@ that has it. Light nodes are useful for resource-restricted devices. An interesting use-case of light nodes is a browser extension, which is a node in its own right, running the runtime in WASM format, as well as a full or light node that is completely encapsulated in WASM and can be -integrated into web apps: https://github.com/paritytech/smoldot#wasm-light-node.

    Substrate Connect

    Substrate Connect provides a way to interact with +integrated into web apps: https://github.com/smol-dot/smoldot.

    Substrate Connect

    Substrate Connect provides a way to interact with substrate-based blockchains in the browser without using an RPC server. It is a light node that runs entirely in Javascript. Substrate Connect uses a smoldot WASM light client to securely connect to the @@ -92,8 +92,8 @@ instructions in this guide. Be aware that when you run polkadot in docker, the process only listens on localhost by default. If you would like to connect to your node's services (rpc, and prometheus) you need to ensure that you run you node with the --rpc-external, and --prometheus-external -commands.

    docker run -p 9944:9944 -p 9615:9615 parity/polkadot:v0.9.13 --name "calling_home_from_a_docker_container" --rpc-external --prometheus-external
    - +commands.

    docker run -p 9944:9944 -p 9615:9615 parity/polkadot:v0.9.13 --name "calling_home_from_a_docker_container" --rpc-external --prometheus-external
    + \ No newline at end of file diff --git a/docs/maintain-validator-index.html b/docs/maintain-validator-index.html index f46af19f95ca..4495f2cf3606 100644 --- a/docs/maintain-validator-index.html +++ b/docs/maintain-validator-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-wss.html b/docs/maintain-wss.html index bd71ce66a99c..2c2e82e01b2e 100644 --- a/docs/maintain-wss.html +++ b/docs/maintain-wss.html @@ -22,7 +22,7 @@ - + @@ -46,7 +46,7 @@ node. Activate the "Development" toggle and input your node's address - either the domain or the IP address. Remember to prefix with wss:// and if you're using the 443 port, append :443, like so: wss://example.com:443.

    A sync-in-progress chain connected to Polkadot-JS UI

    Now you have a secure remote connect setup for your Substrate node.

    - + \ No newline at end of file diff --git a/docs/maintain/maintain-guides-democracy.html b/docs/maintain/maintain-guides-democracy.html index 420ee6f3213c..91ac0bd3ee8e 100644 --- a/docs/maintain/maintain-guides-democracy.html +++ b/docs/maintain/maintain-guides-democracy.html @@ -22,7 +22,7 @@ - + @@ -160,7 +160,7 @@ pallet, and you will specify the index of the referendum that is being voted, the judgement (i.e. "Aye" for approval or "Nay" for rejection), and the conviction, just like a normal vote.

    For more material on adding and removing Governance proxies, as well as other types, please see the Proxy page.

    - + \ No newline at end of file diff --git a/docs/maintain/maintain-guides-how-to-join-council.html b/docs/maintain/maintain-guides-how-to-join-council.html index 0b5be67ac0f3..fada8129fba0 100644 --- a/docs/maintain/maintain-guides-how-to-join-council.html +++ b/docs/maintain/maintain-guides-how-to-join-council.html @@ -22,7 +22,7 @@ - + @@ -47,7 +47,7 @@ the row "Members".

    council members list

    Now you are able to participate on the council by making motions or voting proposals. To join in on the active discussions, join the Polkadot Direction channel.

    - + \ No newline at end of file diff --git a/docs/maintain/maintain-guides-how-to-vote-councillor.html b/docs/maintain/maintain-guides-how-to-vote-councillor.html index 7df45792f7b3..ed9cfa5c9f4e 100644 --- a/docs/maintain/maintain-guides-how-to-vote-councillor.html +++ b/docs/maintain/maintain-guides-how-to-vote-councillor.html @@ -22,7 +22,7 @@ - + @@ -50,7 +50,7 @@ Polkadot-JS Apps Dashboard.

    Under the "Council overview" tab, click on "Vote".

    polkadotjs_removeVoter

    Issue the "Unvote all" option.

    When the transaction is included in a block you should have your reserved tokens made liquid again and your vote will no longer be counting for any councillors in the elections starting in the next term.

    - + \ No newline at end of file diff --git a/docs/metadata.html b/docs/metadata.html index 6781a515ee40..250c382a83c6 100644 --- a/docs/metadata.html +++ b/docs/metadata.html @@ -22,7 +22,7 @@ - + @@ -32,7 +32,7 @@ The dropdown below allows you to update the chain selection to visualize. You can search all sub-categories using the provided search field. The information is categorized by the chains Pallets, RPC and Runtime information.

    - + \ No newline at end of file diff --git a/docs/multisig-apps.html b/docs/multisig-apps.html index fabacf4ac7ca..de3d5c3aa962 100644 --- a/docs/multisig-apps.html +++ b/docs/multisig-apps.html @@ -22,7 +22,7 @@ - + @@ -74,7 +74,7 @@ the Polkadot Blockchain.
  • Whether you're interacting with smart contracts, parachains, or other advanced features, PolkaSafe's MultiSig capabilities ensure every extrinsic is secure and efficient.
  • User-Centric Design: Every feature, from initiating a transaction to diving deep into extrinsics, is designed for clarity and ease.
  • - + \ No newline at end of file diff --git a/docs/parachains-apps.html b/docs/parachains-apps.html index 0bc74ab47dc2..2053dcfb9a93 100644 --- a/docs/parachains-apps.html +++ b/docs/parachains-apps.html @@ -22,7 +22,7 @@ - + @@ -101,7 +101,7 @@ tokens (LST) “vTokens”, as well as remote exchange, and swapping of vTokens from any chain. The DApp aims to simplify the cross-chain experience by providing a seamless interface for users to interact with vTokens across different chains natively.

    - + \ No newline at end of file diff --git a/docs/parity-data-dashboards.html b/docs/parity-data-dashboards.html index 093ef352abb2..f672039252fd 100644 --- a/docs/parity-data-dashboards.html +++ b/docs/parity-data-dashboards.html @@ -22,7 +22,7 @@ - + @@ -58,7 +58,7 @@ history and is continuously expanding.

    DotLake Batch Architecture

    DotLake Batch Architecture

    Real-Time Architecture

    Real-Time Architecture

    Support: Data Requests, Collaborations, Parachain Onboarding etc.

    The Parity Data Team is very eager to collaborate with the Ecosystem. If you have any questions, data requests that you need help with, interest in partnerships or you are a Parachain team and want your chain onboarded to the platform - please get in contact with data-team@parity.io.

    - + \ No newline at end of file diff --git a/docs/polkadot-direction.html b/docs/polkadot-direction.html index cad1a44b85a6..6fff033470e2 100644 --- a/docs/polkadot-direction.html +++ b/docs/polkadot-direction.html @@ -22,7 +22,7 @@ - + @@ -143,7 +143,7 @@ decentralizing the network is ensuring experts on which the maintenance of the system relies upon are incentivized and recruited over time by the Polkadot network and not by organizations within the Polkadot ecosystem. - + \ No newline at end of file diff --git a/docs/polkadot-v1.html b/docs/polkadot-v1.html index 4637fcb3fbb5..d985393dced3 100644 --- a/docs/polkadot-v1.html +++ b/docs/polkadot-v1.html @@ -22,7 +22,7 @@ - + @@ -112,7 +112,7 @@ could become.

    Polkadot is perfecting its implementation through RFCs to continue being a decentralized, secure, ubiquitous computing engine to power the next generation of Web3 applications.

    - + \ No newline at end of file diff --git a/docs/polkadot-vault.html b/docs/polkadot-vault.html index b75f33b01a09..53e42da84262 100644 --- a/docs/polkadot-vault.html +++ b/docs/polkadot-vault.html @@ -22,7 +22,7 @@ - + @@ -89,7 +89,7 @@ this article for detailed instructions. If you choose this approach, you should trust the provider you choose.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about Polkadot Vault.

    - + \ No newline at end of file diff --git a/docs/polkadot-vision-index.html b/docs/polkadot-vision-index.html index 7d2ee9bff19b..543f054afd9b 100644 --- a/docs/polkadot-vision-index.html +++ b/docs/polkadot-vision-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/polkadotjs-ui.html b/docs/polkadotjs-ui.html index 940de3f47eaf..ffdf88c7e53d 100644 --- a/docs/polkadotjs-ui.html +++ b/docs/polkadotjs-ui.html @@ -22,7 +22,7 @@ - + @@ -77,7 +77,7 @@ nomination pool settings (nomination and roles) and use non-transfer proxies, destroy assets, and much more.

    Beginner's Guide to Polkadot-JS

    - + \ No newline at end of file diff --git a/docs/polkadotjs.html b/docs/polkadotjs.html index a83bdd2ed5ab..b4b210fccad2 100644 --- a/docs/polkadotjs.html +++ b/docs/polkadotjs.html @@ -22,7 +22,7 @@ - + @@ -100,7 +100,7 @@ of spam prevention, whereas signed transactions are issued by the originator account of a transaction which contains a signature of that account, which will be subject to a fee to include it on the chain.

    - + \ No newline at end of file diff --git a/docs/programs-index.html b/docs/programs-index.html index 18fce7702ac8..00fed70c6052 100644 --- a/docs/programs-index.html +++ b/docs/programs-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/staking-apps.html b/docs/staking-apps.html index e7cf46cf2c21..d81e27ec2f64 100644 --- a/docs/staking-apps.html +++ b/docs/staking-apps.html @@ -22,7 +22,7 @@ - + @@ -54,7 +54,7 @@ and stake on multiple networks in the Polkadot, Kusama and Polkadot SDK (Substrate) ecosystems.

    The Web Dashboard features an Earning tab which allows users to stake DOT easily via native nomination pools, as well as in liquid staking and lending protocols, without having to manage multiple applications with different interfaces and experiences.

    - + \ No newline at end of file diff --git a/docs/staking-dashboard.html b/docs/staking-dashboard.html index 078391c79ccf..c5305ffef97e 100644 --- a/docs/staking-dashboard.html +++ b/docs/staking-dashboard.html @@ -22,7 +22,7 @@ - + @@ -158,7 +158,7 @@ the official Polkadot support website.

    Network

    Under Network, you can connect to either Polkadot, Kusama, or Westend through public RPC nodes or light clients for a true Web3 experience. For more information about light clients, see this page.

    - + \ No newline at end of file diff --git a/docs/start-building.html b/docs/start-building.html index 700a3b867ed1..4bf406d2dc68 100644 --- a/docs/start-building.html +++ b/docs/start-building.html @@ -22,7 +22,7 @@ - + @@ -55,7 +55,7 @@ this Medium article and the original Polkadot Forum post.

    - + \ No newline at end of file diff --git a/docs/stay-safe-index.html b/docs/stay-safe-index.html index e62cbfd81293..d80facddb708 100644 --- a/docs/stay-safe-index.html +++ b/docs/stay-safe-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/thousand-contributors.html b/docs/thousand-contributors.html index 9f8932256ff1..9787cbea00ab 100644 --- a/docs/thousand-contributors.html +++ b/docs/thousand-contributors.html @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ the account shared with us.

    Submission reviews

    The review process follows the present pipeline in the 1KC public GitHub project.

    Learn more about the program and its components on the official 1KC repository

    - + \ No newline at end of file diff --git a/docs/thousand-validators.html b/docs/thousand-validators.html index 2e899901ae32..dcdaa109381c 100644 --- a/docs/thousand-validators.html +++ b/docs/thousand-validators.html @@ -22,7 +22,7 @@ - + @@ -90,7 +90,7 @@ things time to resolve; if they don't, leave a message in the dedicated matrix room or open an issue on GitHub.
  • The 1000 validators website is not up to date? See these resources for more up-to-date information.
  • Resources

    To extract and display the 1KV Programme scores there are various tools listed below.

    ResourceGithub sourceInfo
    SubVT telegram bot for polkadot and kusamagithubTelegram bot with overviews and alerts for various polkadot and kusama related events, including 1KV events.
    SubVT ios and android appgithubSubVT app version for mobile phones.
    Validator earnings overviewgithubOverview of validators' earnings.
    Math Crypto's Insightsgithub1KV-oriented scoring overview of Kusama and Polkadot.
    One-T for polkadot and kusamagithubA performance report bot for the Polkadot and Kusama network with special focus on the 1KV programme.
    One-T parachains overviewgithubOne-T's parachain overview.
    Metaspan's 1KV overviewgithubOverview of 1KV programme, including the newly introduced endpoints, see here for available endpoints.
    Decentradot's 1KV overviewgithubOverview of the 1KV programme, including the newly introduced endpoints.
    Hirish 1KV overviewgithub?Overview of the 1KV Programme.
    - + \ No newline at end of file diff --git a/docs/transaction-attacks.html b/docs/transaction-attacks.html index 5509a450df48..97859d5f7c35 100644 --- a/docs/transaction-attacks.html +++ b/docs/transaction-attacks.html @@ -22,7 +22,7 @@ - + @@ -69,7 +69,7 @@ transfer will fail).

    Defense against Attacks

    danger

    If you can't verify the transaction or you suspect you are signing something different than what you intended, don't sign it!

    To avoid being victim of an attack:

    • Use only trusted extensions, sites and software in general.
    • Use cold storage options (Ledger, Signer) and verify them. Trust what these devices tell you over what is shown in the app or the browser extension.
    • Update Signer metadata only from trusted sources (or do it yourself).
    • Accept metadata updates for the extension only from trusted apps.
    - + \ No newline at end of file diff --git a/docs/wallets-and-extensions.html b/docs/wallets-and-extensions.html index cbc447479acf..73e3686c3c09 100644 --- a/docs/wallets-and-extensions.html +++ b/docs/wallets-and-extensions.html @@ -22,7 +22,7 @@ - + @@ -103,7 +103,7 @@ balance changes, view your total balance in multiple fiat currencies, secured by your personal Telegram cloud and manual backups.

    Use Telenova on any of your devices — be it mobile or desktop — within the same Telegram account, and start exploring the Polkadot ecosystem today!

    - + \ No newline at end of file diff --git a/docs/wallets-index.html b/docs/wallets-index.html index ee452107c308..6db9fc73aaf5 100644 --- a/docs/wallets-index.html +++ b/docs/wallets-index.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/docs/web3-and-polkadot.html b/docs/web3-and-polkadot.html index 2548f162c3b5..fa2c9191dcda 100644 --- a/docs/web3-and-polkadot.html +++ b/docs/web3-and-polkadot.html @@ -22,7 +22,7 @@ - + @@ -157,7 +157,7 @@ all blockchains attached to it. For more information, see the Polkadot 1.0 page and the section about XCM and Accords in Polkadot Direction page.

    - + \ No newline at end of file diff --git a/index.html b/index.html index e772549aaaac..9444d608f9ec 100644 --- a/index.html +++ b/index.html @@ -22,13 +22,13 @@ - +

    Learn about Polkadot’s canary network Kusama

    Kusama is Polkadot’s “canary network”, a scalable, multi-chain network for radical innovation and early stage Polkadot deployments. For developers, Kusama is a proving ground for all things Polkadot I.e runtime upgrades, on-chain governance, parachains, etc.

    language

    Help improve this wiki

    This wiki was started by and is maintained by Web3 Foundation. It is an open-source-ish project and aims to be the most extensive resource of knowledge on Polkadot and the Polkadot ecosystem.

    - + \ No newline at end of file diff --git a/search.html b/search.html index 065cfd5aecb3..6137beb22339 100644 --- a/search.html +++ b/search.html @@ -22,13 +22,13 @@ - + - + \ No newline at end of file