From b8b301047649896883843b0a1abadb2f475a293b Mon Sep 17 00:00:00 2001 From: Ruslan Hlaznov Date: Wed, 15 Nov 2023 16:05:17 +0200 Subject: [PATCH] Feat: i18n CN & UA (#3) * feat: zh-CN * feat: UA --------- Co-authored-by: EvgenyKhlivetsky --- .gitignore | 3 +- package.json | 1 + packages/docs/middleware.js | 4 + packages/docs/next.config.js | 4 + packages/docs/package.json | 5 +- .../pages/{_meta.json => _meta.en-US.json} | 0 packages/docs/pages/_meta.uk-UA.json | 8 + packages/docs/pages/_meta.zh-CN.json | 8 + .../docs/pages/{index.mdx => index.en-US.mdx} | 0 packages/docs/pages/index.uk-UA.mdx | 37 ++ packages/docs/pages/index.zh-CN.mdx | 31 ++ ....mdx => integrating-with-namada.en-US.mdx} | 0 .../pages/integrating-with-namada.uk-UA.mdx | 10 + .../integrating-with-namada/_meta.en-US.json | 4 + .../pages/integrating-with-namada/_meta.json | 3 +- .../integrating-with-namada/_meta.uk-UA.json | 4 + .../{indexer.mdx => indexer.en-US.mdx} | 0 .../integrating-with-namada/indexer.uk-UA.mdx | 102 ++++++ .../{sdk.mdx => sdk.en-US.mdx} | 0 .../integrating-with-namada/sdk.uk-UA.mdx | 63 ++++ .../sdk/_meta.en-US.json | 7 + .../sdk/_meta.uk-UA.json | 7 + ...s.mdx => constructing-transfers.en-US.mdx} | 0 .../sdk/constructing-transfers.uk-UA.mdx | 72 ++++ ...unts.mdx => generating-accounts.en-US.mdx} | 0 .../sdk/generating-accounts.uk-UA.mdx | 76 ++++ ...on.mdx => interface-integration.en-US.mdx} | 0 .../sdk/interface-integration.uk-UA.mdx | 32 ++ ...ient.mdx => setting-up-a-client.en-US.mdx} | 0 .../sdk/setting-up-a-client.uk-UA.mdx | 100 +++++ ...llet.mdx => setting-up-a-wallet.en-US.mdx} | 0 .../sdk/setting-up-a-wallet.uk-UA.mdx | 127 +++++++ ...ntroduction.mdx => introduction.en-US.mdx} | 0 packages/docs/pages/introduction.uk-UA.mdx | 33 ++ packages/docs/pages/introduction.zh-CN.mdx | 22 ++ .../docs/pages/introduction/_meta.en-US.json | 7 + .../docs/pages/introduction/_meta.uk-UA.json | 7 + .../{install.mdx => install.en-US.mdx} | 0 .../docs/pages/introduction/install.uk-UA.mdx | 16 + .../introduction/install/_meta.en-US.json | 5 + .../introduction/install/_meta.uk-UA.json | 5 + .../{binaries.mdx => binaries.en-US.mdx} | 0 .../introduction/install/binaries.uk-UA.mdx | 28 ++ .../install/binaries/_meta.en-US.json | 4 + .../install/binaries/_meta.uk-UA.json | 4 + ...ies.mdx => overview-of-binaries.en-US.mdx} | 0 .../binaries/overview-of-binaries.uk-UA.mdx | 25 ++ ...requisites.mdx => prerequisites.en-US.mdx} | 0 .../install/binaries/prerequisites.uk-UA.mdx | 12 + .../install/{docker.mdx => docker.en-US.mdx} | 0 .../introduction/install/docker.uk-UA.mdx | 79 ++++ .../install/{source.mdx => source.en-US.mdx} | 0 .../introduction/install/source.uk-UA.mdx | 40 ++ .../install/source/_meta.en-US.json | 4 + .../install/source/_meta.uk-UA.json | 4 + ...equisites.mdx => pre-requisites.en-US.mdx} | 0 .../install/source/pre-requisites.uk-UA.mdx | 52 +++ ...shooting.mdx => troubleshooting.en-US.mdx} | 0 .../install/source/troubleshooting.uk-UA.mdx | 93 +++++ ...tbft.mdx => installing-cometbft.en-US.mdx} | 0 .../installing-cometbft.uk-UA.mdx | 32 ++ .../{privacy.mdx => privacy.en-US.mdx} | 0 .../docs/pages/introduction/privacy.uk-UA.mdx | 24 ++ ...{quick-start.mdx => quick-start.en-US.mdx} | 0 .../pages/introduction/quick-start.uk-UA.mdx | 70 ++++ .../pages/introduction/quick-start.zh-CN.mdx | 62 ++++ .../{security.mdx => security.en-US.mdx} | 0 .../pages/introduction/security.uk-UA.mdx | 11 + .../{networks.mdx => networks.en-US.mdx} | 0 packages/docs/pages/networks.uk-UA.mdx | 10 + packages/docs/pages/networks/_meta.en-US.json | 4 + packages/docs/pages/networks/_meta.json | 4 + packages/docs/pages/networks/_meta.uk-UA.json | 4 + .../{mainnets.mdx => mainnets.en-US.mdx} | 0 .../docs/pages/networks/mainnets.uk-UA.mdx | 2 + .../{testnets.mdx => testnets.en-US.mdx} | 0 .../docs/pages/networks/testnets.uk-UA.mdx | 45 +++ .../pages/networks/testnets/_meta.en-US.json | 12 + .../pages/networks/testnets/_meta.uk-UA.json | 12 + .../{campfire.mdx => campfire.en-US.mdx} | 0 .../networks/testnets/campfire.uk-UA.mdx | 53 +++ ...-setup.mdx => environment-setup.en-US.mdx} | 0 .../testnets/environment-setup.uk-UA.mdx | 69 ++++ .../testnets/{faq.mdx => faq.en-US.mdx} | 0 .../pages/networks/testnets/faq.uk-UA.mdx | 36 ++ ....mdx => genesis-validator-apply.en-US.mdx} | 0 .../genesis-validator-apply.uk-UA.mdx | 38 ++ ...tnet.mdx => joining-the-testnet.en-US.mdx} | 0 .../testnets/joining-the-testnet.uk-UA.mdx | 13 + ...tnets.mdx => migrating-testnets.en-US.mdx} | 0 .../testnets/migrating-testnets.uk-UA.mdx | 74 ++++ ...r.mdx => post-genesis-validator.en-US.mdx} | 0 .../testnets/post-genesis-validator.uk-UA.mdx | 20 + .../testnets/{pow.mdx => pow.en-US.mdx} | 0 .../pages/networks/testnets/pow.uk-UA.mdx | 15 + ...{pre-genesis.mdx => pre-genesis.en-US.mdx} | 0 .../networks/testnets/pre-genesis.uk-UA.mdx | 9 + ...-history.mdx => testnet-history.en-US.mdx} | 0 .../testnets/testnet-history.uk-UA.mdx | 253 +++++++++++++ .../{operators.mdx => operators.en-US.mdx} | 0 packages/docs/pages/operators.uk-UA.mdx | 10 + .../docs/pages/operators/_meta.en-US.json | 9 + packages/docs/pages/operators/_meta.json | 4 +- .../docs/pages/operators/_meta.uk-UA.json | 9 + .../{eth-bridge.mdx => eth-bridge.en-US.mdx} | 0 .../docs/pages/operators/eth-bridge.uk-UA.mdx | 27 ++ .../operators/eth-bridge/_meta.en-US.json | 3 + .../pages/operators/eth-bridge/_meta.json | 3 + .../operators/eth-bridge/_meta.uk-UA.json | 3 + .../{relaying.mdx => relaying.en-US.mdx} | 0 .../operators/eth-bridge/relaying.uk-UA.mdx | 48 +++ .../{hardware.mdx => hardware.en-US.mdx} | 0 .../docs/pages/operators/hardware.uk-UA.mdx | 15 + .../operators/{ibc.mdx => ibc.en-US.mdx} | 0 packages/docs/pages/operators/ibc.uk-UA.mdx | 339 +++++++++++++++++ .../{ledger.mdx => ledger.en-US.mdx} | 0 .../docs/pages/operators/ledger.uk-UA.mdx | 40 ++ .../pages/operators/ledger/_meta.en-US.json | 6 + .../pages/operators/ledger/_meta.uk-UA.json | 6 + ...directory.mdx => base-directory.en-US.mdx} | 0 .../operators/ledger/base-directory.uk-UA.mdx | 44 +++ .../{env-vars.mdx => env-vars.en-US.mdx} | 0 .../pages/operators/ledger/env-vars.uk-UA.mdx | 144 ++++++++ ...ng-config.mdx => logging-config.en-US.mdx} | 0 .../operators/ledger/logging-config.uk-UA.mdx | 14 + ...node.mdx => running-a-full-node.en-US.mdx} | 0 .../ledger/running-a-full-node.uk-UA.mdx | 83 +++++ ...al-network.mdx => local-network.en-US.mdx} | 0 .../pages/operators/local-network.uk-UA.mdx | 342 ++++++++++++++++++ ...shooting.mdx => troubleshooting.en-US.mdx} | 0 .../pages/operators/troubleshooting.uk-UA.mdx | 11 + .../{validators.mdx => validators.en-US.mdx} | 0 .../docs/pages/operators/validators.uk-UA.mdx | 22 ++ .../operators/validators/_meta.en-US.json | 8 + .../pages/operators/validators/_meta.json | 3 +- .../operators/validators/_meta.uk-UA.json | 8 + ....mdx => genesis-validator-setup.en-US.mdx} | 0 .../genesis-validator-setup.uk-UA.mdx | 113 ++++++ ...=> post-genesis-validator-setup.en-US.mdx} | 0 .../post-genesis-validator-setup.uk-UA.mdx | 56 +++ ...-of-stake.mdx => proof-of-stake.en-US.mdx} | 0 .../validators/proof-of-stake.uk-UA.mdx | 27 ++ ...x => run-your-genesis-validator.en-US.mdx} | 0 .../run-your-genesis-validator.uk-UA.mdx | 32 ++ .../{staking.mdx => staking.en-US.mdx} | 0 .../operators/validators/staking.uk-UA.mdx | 104 ++++++ .../docs/pages/{users.mdx => users.en-US.mdx} | 0 packages/docs/pages/users.uk-UA.mdx | 13 + packages/docs/pages/users/_meta.en-US.json | 10 + packages/docs/pages/users/_meta.uk-UA.json | 10 + .../{delegators.mdx => delegators.en-US.mdx} | 0 .../docs/pages/users/delegators.uk-UA.mdx | 37 ++ .../pages/users/{fees.mdx => fees.en-US.mdx} | 0 packages/docs/pages/users/fees.uk-UA.mdx | 130 +++++++ .../{governance.mdx => governance.en-US.mdx} | 0 .../docs/pages/users/governance.uk-UA.mdx | 8 + .../pages/users/governance/_meta.en-US.json | 4 + .../pages/users/governance/_meta.uk-UA.json | 4 + ...nce.mdx => off-chain-governance.en-US.mdx} | 0 .../governance/off-chain-governance.uk-UA.mdx | 53 +++ ...ance.mdx => on-chain-governance.en-US.mdx} | 0 .../governance/on-chain-governance.uk-UA.mdx | 173 +++++++++ .../pages/users/{ibc.mdx => ibc.en-US.mdx} | 0 packages/docs/pages/users/ibc.uk-UA.mdx | 82 +++++ ...ds.mdx => public-goods-stewards.en-US.mdx} | 0 .../users/public-goods-stewards.uk-UA.mdx | 12 + .../public-goods-stewards/_meta.en-US.json | 5 + .../public-goods-stewards/_meta.uk-UA.json | 5 + .../{electing.mdx => electing.en-US.mdx} | 0 .../public-goods-stewards/electing.uk-UA.mdx | 93 +++++ .../{proposing.mdx => proposing.en-US.mdx} | 0 .../public-goods-stewards/proposing.uk-UA.mdx | 71 ++++ .../{voting.mdx => voting.en-US.mdx} | 0 .../public-goods-stewards/voting.uk-UA.mdx | 27 ++ ...counts.mdx => shielded-accounts.en-US.mdx} | 0 .../pages/users/shielded-accounts.uk-UA.mdx | 7 + .../users/shielded-accounts/_meta.en-US.json | 4 + .../pages/users/shielded-accounts/_meta.json | 4 + .../users/shielded-accounts/_meta.uk-UA.json | 4 + ...rewards.mdx => shielded-rewards.en-US.mdx} | 0 .../shielded-rewards.uk-UA.mdx | 5 + ...sfers.mdx => shielded-transfers.en-US.mdx} | 0 .../shielded-transfers.uk-UA.mdx | 193 ++++++++++ ...nts.mdx => transparent-accounts.en-US.mdx} | 0 .../users/transparent-accounts.uk-UA.mdx | 101 ++++++ .../transparent-accounts/_meta.en-US.json | 4 + .../users/transparent-accounts/_meta.json | 4 + .../transparent-accounts/_meta.uk-UA.json | 4 + ...signature.mdx => multisignature.en-US.mdx} | 0 .../multisignature.uk-UA.mdx | 160 ++++++++ ... => send-and-receive-nam-tokens.en-US.mdx} | 0 .../send-and-receive-nam-tokens.uk-UA.mdx | 60 +++ .../users/{wallet.mdx => wallet.en-US.mdx} | 0 packages/docs/pages/users/wallet.uk-UA.mdx | 19 + .../docs/pages/users/wallet/_meta.en-US.json | 5 + .../docs/pages/users/wallet/_meta.uk-UA.json | 5 + ...allet.mdx => file-system-wallet.en-US.mdx} | 0 .../users/wallet/file-system-wallet.uk-UA.mdx | 11 + ...e-wallet.mdx => hardware-wallet.en-US.mdx} | 0 .../users/wallet/hardware-wallet.uk-UA.mdx | 22 ++ .../{web-wallet.mdx => web-wallet.en-US.mdx} | 0 .../pages/users/wallet/web-wallet.uk-UA.mdx | 39 ++ packages/docs/theme.config.tsx | 7 +- 203 files changed, 4941 insertions(+), 7 deletions(-) create mode 100644 packages/docs/middleware.js rename packages/docs/pages/{_meta.json => _meta.en-US.json} (100%) create mode 100644 packages/docs/pages/_meta.uk-UA.json create mode 100644 packages/docs/pages/_meta.zh-CN.json rename packages/docs/pages/{index.mdx => index.en-US.mdx} (100%) create mode 100644 packages/docs/pages/index.uk-UA.mdx create mode 100644 packages/docs/pages/index.zh-CN.mdx rename packages/docs/pages/{integrating-with-namada.mdx => integrating-with-namada.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada.uk-UA.mdx create mode 100644 packages/docs/pages/integrating-with-namada/_meta.en-US.json create mode 100644 packages/docs/pages/integrating-with-namada/_meta.uk-UA.json rename packages/docs/pages/integrating-with-namada/{indexer.mdx => indexer.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada/indexer.uk-UA.mdx rename packages/docs/pages/integrating-with-namada/{sdk.mdx => sdk.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada/sdk.uk-UA.mdx create mode 100644 packages/docs/pages/integrating-with-namada/sdk/_meta.en-US.json create mode 100644 packages/docs/pages/integrating-with-namada/sdk/_meta.uk-UA.json rename packages/docs/pages/integrating-with-namada/sdk/{constructing-transfers.mdx => constructing-transfers.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.uk-UA.mdx rename packages/docs/pages/integrating-with-namada/sdk/{generating-accounts.mdx => generating-accounts.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada/sdk/generating-accounts.uk-UA.mdx rename packages/docs/pages/integrating-with-namada/sdk/{interface-integration.mdx => interface-integration.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada/sdk/interface-integration.uk-UA.mdx rename packages/docs/pages/integrating-with-namada/sdk/{setting-up-a-client.mdx => setting-up-a-client.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.uk-UA.mdx rename packages/docs/pages/integrating-with-namada/sdk/{setting-up-a-wallet.mdx => setting-up-a-wallet.en-US.mdx} (100%) create mode 100644 packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.uk-UA.mdx rename packages/docs/pages/{introduction.mdx => introduction.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction.uk-UA.mdx create mode 100644 packages/docs/pages/introduction.zh-CN.mdx create mode 100644 packages/docs/pages/introduction/_meta.en-US.json create mode 100644 packages/docs/pages/introduction/_meta.uk-UA.json rename packages/docs/pages/introduction/{install.mdx => install.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install.uk-UA.mdx create mode 100644 packages/docs/pages/introduction/install/_meta.en-US.json create mode 100644 packages/docs/pages/introduction/install/_meta.uk-UA.json rename packages/docs/pages/introduction/install/{binaries.mdx => binaries.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install/binaries.uk-UA.mdx create mode 100644 packages/docs/pages/introduction/install/binaries/_meta.en-US.json create mode 100644 packages/docs/pages/introduction/install/binaries/_meta.uk-UA.json rename packages/docs/pages/introduction/install/binaries/{overview-of-binaries.mdx => overview-of-binaries.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install/binaries/overview-of-binaries.uk-UA.mdx rename packages/docs/pages/introduction/install/binaries/{prerequisites.mdx => prerequisites.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install/binaries/prerequisites.uk-UA.mdx rename packages/docs/pages/introduction/install/{docker.mdx => docker.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install/docker.uk-UA.mdx rename packages/docs/pages/introduction/install/{source.mdx => source.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install/source.uk-UA.mdx create mode 100644 packages/docs/pages/introduction/install/source/_meta.en-US.json create mode 100644 packages/docs/pages/introduction/install/source/_meta.uk-UA.json rename packages/docs/pages/introduction/install/source/{pre-requisites.mdx => pre-requisites.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install/source/pre-requisites.uk-UA.mdx rename packages/docs/pages/introduction/install/source/{troubleshooting.mdx => troubleshooting.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/install/source/troubleshooting.uk-UA.mdx rename packages/docs/pages/introduction/{installing-cometbft.mdx => installing-cometbft.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/installing-cometbft.uk-UA.mdx rename packages/docs/pages/introduction/{privacy.mdx => privacy.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/privacy.uk-UA.mdx rename packages/docs/pages/introduction/{quick-start.mdx => quick-start.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/quick-start.uk-UA.mdx create mode 100644 packages/docs/pages/introduction/quick-start.zh-CN.mdx rename packages/docs/pages/introduction/{security.mdx => security.en-US.mdx} (100%) create mode 100644 packages/docs/pages/introduction/security.uk-UA.mdx rename packages/docs/pages/{networks.mdx => networks.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks.uk-UA.mdx create mode 100644 packages/docs/pages/networks/_meta.en-US.json create mode 100644 packages/docs/pages/networks/_meta.json create mode 100644 packages/docs/pages/networks/_meta.uk-UA.json rename packages/docs/pages/networks/{mainnets.mdx => mainnets.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/mainnets.uk-UA.mdx rename packages/docs/pages/networks/{testnets.mdx => testnets.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets.uk-UA.mdx create mode 100644 packages/docs/pages/networks/testnets/_meta.en-US.json create mode 100644 packages/docs/pages/networks/testnets/_meta.uk-UA.json rename packages/docs/pages/networks/testnets/{campfire.mdx => campfire.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/campfire.uk-UA.mdx rename packages/docs/pages/networks/testnets/{environment-setup.mdx => environment-setup.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/environment-setup.uk-UA.mdx rename packages/docs/pages/networks/testnets/{faq.mdx => faq.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/faq.uk-UA.mdx rename packages/docs/pages/networks/testnets/{genesis-validator-apply.mdx => genesis-validator-apply.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/genesis-validator-apply.uk-UA.mdx rename packages/docs/pages/networks/testnets/{joining-the-testnet.mdx => joining-the-testnet.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/joining-the-testnet.uk-UA.mdx rename packages/docs/pages/networks/testnets/{migrating-testnets.mdx => migrating-testnets.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/migrating-testnets.uk-UA.mdx rename packages/docs/pages/networks/testnets/{post-genesis-validator.mdx => post-genesis-validator.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/post-genesis-validator.uk-UA.mdx rename packages/docs/pages/networks/testnets/{pow.mdx => pow.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/pow.uk-UA.mdx rename packages/docs/pages/networks/testnets/{pre-genesis.mdx => pre-genesis.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/pre-genesis.uk-UA.mdx rename packages/docs/pages/networks/testnets/{testnet-history.mdx => testnet-history.en-US.mdx} (100%) create mode 100644 packages/docs/pages/networks/testnets/testnet-history.uk-UA.mdx rename packages/docs/pages/{operators.mdx => operators.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators.uk-UA.mdx create mode 100644 packages/docs/pages/operators/_meta.en-US.json create mode 100644 packages/docs/pages/operators/_meta.uk-UA.json rename packages/docs/pages/operators/{eth-bridge.mdx => eth-bridge.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/eth-bridge.uk-UA.mdx create mode 100644 packages/docs/pages/operators/eth-bridge/_meta.en-US.json create mode 100644 packages/docs/pages/operators/eth-bridge/_meta.json create mode 100644 packages/docs/pages/operators/eth-bridge/_meta.uk-UA.json rename packages/docs/pages/operators/eth-bridge/{relaying.mdx => relaying.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/eth-bridge/relaying.uk-UA.mdx rename packages/docs/pages/operators/{hardware.mdx => hardware.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/hardware.uk-UA.mdx rename packages/docs/pages/operators/{ibc.mdx => ibc.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/ibc.uk-UA.mdx rename packages/docs/pages/operators/{ledger.mdx => ledger.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/ledger.uk-UA.mdx create mode 100644 packages/docs/pages/operators/ledger/_meta.en-US.json create mode 100644 packages/docs/pages/operators/ledger/_meta.uk-UA.json rename packages/docs/pages/operators/ledger/{base-directory.mdx => base-directory.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/ledger/base-directory.uk-UA.mdx rename packages/docs/pages/operators/ledger/{env-vars.mdx => env-vars.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/ledger/env-vars.uk-UA.mdx rename packages/docs/pages/operators/ledger/{logging-config.mdx => logging-config.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/ledger/logging-config.uk-UA.mdx rename packages/docs/pages/operators/ledger/{running-a-full-node.mdx => running-a-full-node.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/ledger/running-a-full-node.uk-UA.mdx rename packages/docs/pages/operators/{local-network.mdx => local-network.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/local-network.uk-UA.mdx rename packages/docs/pages/operators/{troubleshooting.mdx => troubleshooting.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/troubleshooting.uk-UA.mdx rename packages/docs/pages/operators/{validators.mdx => validators.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/validators.uk-UA.mdx create mode 100644 packages/docs/pages/operators/validators/_meta.en-US.json create mode 100644 packages/docs/pages/operators/validators/_meta.uk-UA.json rename packages/docs/pages/operators/validators/{genesis-validator-setup.mdx => genesis-validator-setup.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/validators/genesis-validator-setup.uk-UA.mdx rename packages/docs/pages/operators/validators/{post-genesis-validator-setup.mdx => post-genesis-validator-setup.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/validators/post-genesis-validator-setup.uk-UA.mdx rename packages/docs/pages/operators/validators/{proof-of-stake.mdx => proof-of-stake.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/validators/proof-of-stake.uk-UA.mdx rename packages/docs/pages/operators/validators/{run-your-genesis-validator.mdx => run-your-genesis-validator.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/validators/run-your-genesis-validator.uk-UA.mdx rename packages/docs/pages/operators/validators/{staking.mdx => staking.en-US.mdx} (100%) create mode 100644 packages/docs/pages/operators/validators/staking.uk-UA.mdx rename packages/docs/pages/{users.mdx => users.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users.uk-UA.mdx create mode 100644 packages/docs/pages/users/_meta.en-US.json create mode 100644 packages/docs/pages/users/_meta.uk-UA.json rename packages/docs/pages/users/{delegators.mdx => delegators.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/delegators.uk-UA.mdx rename packages/docs/pages/users/{fees.mdx => fees.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/fees.uk-UA.mdx rename packages/docs/pages/users/{governance.mdx => governance.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/governance.uk-UA.mdx create mode 100644 packages/docs/pages/users/governance/_meta.en-US.json create mode 100644 packages/docs/pages/users/governance/_meta.uk-UA.json rename packages/docs/pages/users/governance/{off-chain-governance.mdx => off-chain-governance.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/governance/off-chain-governance.uk-UA.mdx rename packages/docs/pages/users/governance/{on-chain-governance.mdx => on-chain-governance.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/governance/on-chain-governance.uk-UA.mdx rename packages/docs/pages/users/{ibc.mdx => ibc.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/ibc.uk-UA.mdx rename packages/docs/pages/users/{public-goods-stewards.mdx => public-goods-stewards.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/public-goods-stewards.uk-UA.mdx create mode 100644 packages/docs/pages/users/public-goods-stewards/_meta.en-US.json create mode 100644 packages/docs/pages/users/public-goods-stewards/_meta.uk-UA.json rename packages/docs/pages/users/public-goods-stewards/{electing.mdx => electing.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/public-goods-stewards/electing.uk-UA.mdx rename packages/docs/pages/users/public-goods-stewards/{proposing.mdx => proposing.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/public-goods-stewards/proposing.uk-UA.mdx rename packages/docs/pages/users/public-goods-stewards/{voting.mdx => voting.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/public-goods-stewards/voting.uk-UA.mdx rename packages/docs/pages/users/{shielded-accounts.mdx => shielded-accounts.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/shielded-accounts.uk-UA.mdx create mode 100644 packages/docs/pages/users/shielded-accounts/_meta.en-US.json create mode 100644 packages/docs/pages/users/shielded-accounts/_meta.json create mode 100644 packages/docs/pages/users/shielded-accounts/_meta.uk-UA.json rename packages/docs/pages/users/shielded-accounts/{shielded-rewards.mdx => shielded-rewards.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/shielded-accounts/shielded-rewards.uk-UA.mdx rename packages/docs/pages/users/shielded-accounts/{shielded-transfers.mdx => shielded-transfers.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/shielded-accounts/shielded-transfers.uk-UA.mdx rename packages/docs/pages/users/{transparent-accounts.mdx => transparent-accounts.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/transparent-accounts.uk-UA.mdx create mode 100644 packages/docs/pages/users/transparent-accounts/_meta.en-US.json create mode 100644 packages/docs/pages/users/transparent-accounts/_meta.json create mode 100644 packages/docs/pages/users/transparent-accounts/_meta.uk-UA.json rename packages/docs/pages/users/transparent-accounts/{multisignature.mdx => multisignature.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/transparent-accounts/multisignature.uk-UA.mdx rename packages/docs/pages/users/transparent-accounts/{send-and-receive-nam-tokens.mdx => send-and-receive-nam-tokens.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.uk-UA.mdx rename packages/docs/pages/users/{wallet.mdx => wallet.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/wallet.uk-UA.mdx create mode 100644 packages/docs/pages/users/wallet/_meta.en-US.json create mode 100644 packages/docs/pages/users/wallet/_meta.uk-UA.json rename packages/docs/pages/users/wallet/{file-system-wallet.mdx => file-system-wallet.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/wallet/file-system-wallet.uk-UA.mdx rename packages/docs/pages/users/wallet/{hardware-wallet.mdx => hardware-wallet.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/wallet/hardware-wallet.uk-UA.mdx rename packages/docs/pages/users/wallet/{web-wallet.mdx => web-wallet.en-US.mdx} (100%) create mode 100644 packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx diff --git a/.gitignore b/.gitignore index 2a0a3c97..39806300 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .next node_modules out -.DS_Store \ No newline at end of file +.DS_Store +.vercel diff --git a/package.json b/package.json index 3ba0b1ab..00ca22a9 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "dev:specs": "npm run dev --workspace=packages/specs", "dev:community": "npm run dev --workspace=packages/community", "build:docs": "npm run build --workspace=packages/docs", + "build:page": "npm run cloud-page --workspace=packages/docs", "build:specs": "npm run build --workspace=packages/specs", "build:community": "npm run build --workspace=packages/community", "build": "npm run build --workspaces" diff --git a/packages/docs/middleware.js b/packages/docs/middleware.js new file mode 100644 index 00000000..4d107d5f --- /dev/null +++ b/packages/docs/middleware.js @@ -0,0 +1,4 @@ +import { withLocales } from 'nextra/locales' + +export const middleware = withLocales((request) => { +}) diff --git a/packages/docs/next.config.js b/packages/docs/next.config.js index 4d04e042..2f617df7 100644 --- a/packages/docs/next.config.js +++ b/packages/docs/next.config.js @@ -16,6 +16,10 @@ const withNextra = require("nextra")({ module.exports = { ...withNextra(), + i18n: { + locales: ['en-US', 'uk-UA', 'zh-CN'], + defaultLocale: 'en-US' + }, images: { unoptimized: true, }, diff --git a/packages/docs/package.json b/packages/docs/package.json index 7c0ed74a..7b8e9445 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -5,8 +5,9 @@ "license": "GPL-3.0", "scripts": { "dev": "next dev", - "build": "next build && next export", - "start": "next start" + "build": "next build", + "start": "next start", + "cloud-page": "npx @cloudflare/next-on-pages@1" }, "dependencies": { "next": "^13.4.8", diff --git a/packages/docs/pages/_meta.json b/packages/docs/pages/_meta.en-US.json similarity index 100% rename from packages/docs/pages/_meta.json rename to packages/docs/pages/_meta.en-US.json diff --git a/packages/docs/pages/_meta.uk-UA.json b/packages/docs/pages/_meta.uk-UA.json new file mode 100644 index 00000000..2d47d3ce --- /dev/null +++ b/packages/docs/pages/_meta.uk-UA.json @@ -0,0 +1,8 @@ +{ + "index": "Namada", + "introduction": "Початок роботи", + "users": "Посібник користувача", + "operators": "Посібник для операторів", + "integrating-with-namada" : "Інтеграція з Namada", + "networks": "Мережі" +} diff --git a/packages/docs/pages/_meta.zh-CN.json b/packages/docs/pages/_meta.zh-CN.json new file mode 100644 index 00000000..dfd35081 --- /dev/null +++ b/packages/docs/pages/_meta.zh-CN.json @@ -0,0 +1,8 @@ +{ + "index": "Namada", + "introduction": "Getting Started", + "users": "User Guide", + "operators": "Operator Guide", + "integrating-with-namada" : "Integration Guide", + "networks": "Networks" +} diff --git a/packages/docs/pages/index.mdx b/packages/docs/pages/index.en-US.mdx similarity index 100% rename from packages/docs/pages/index.mdx rename to packages/docs/pages/index.en-US.mdx diff --git a/packages/docs/pages/index.uk-UA.mdx b/packages/docs/pages/index.uk-UA.mdx new file mode 100644 index 00000000..f7fe3fdb --- /dev/null +++ b/packages/docs/pages/index.uk-UA.mdx @@ -0,0 +1,37 @@ +import { DocsAscii } from '../components/DocsAscii' + + + +## Про Namada + +[Namada](https://namada.net/)- це блокчейн, орієнтований на конфіденційність активів, + який використовує технологію доказу нульового знання. Криптографічні особливості Namada забезпечують +користувачам агностичність щодо активів, міжланцюгову конфіденційність, і розробляється Фондом Anoma. + +### Ключові нововведення: + +- Zcash-подібні перекази на будь-які активи (взаємозамінні та не взаємозамінні) +- Винагорода за використання приватності як суспільного блага +- Інтероперабельність з Ethereum через спеціальний міст з мінімізацією довіри + +## Огляд функціонала + +- [Proof-of-Stake](./operators/validators/proof-of-stake.mdx) з [управлінням](./users/governance.mdx) щоб захищати та розвивати Namada +- BFT швидкої фінальності з 4-секундними блоками +- Двосторонній міст Ethereum з мінімізацією довіри +- IBC-з'єднання з блокчейнами, які вже комунікують по IBC (всі блокчейни Cosmos) +- [Multi-Asset Shielded Pool](./users/shielded-accounts/shielded-transfers.mdx) (MASP) +- Перетворення схеми ([захищений набір винагород](./users/shielded-accounts/shielded-rewards.mdx)) +- Застосунок для [Ledger](./users/wallet/hardware-wallet.mdx) + +Для поверхневого рівня ознайомлення ми рекомендуємо: + +- Стаття: [Introducing Namada: Interchain Asset-agnostic Privacy](https://blog.namada.net/introducing-namada-interchain-asset-agnostic-privacy/) +- Стаття: [What is Namada?](https://blog.namada.net/what-is-namada/) +- [Бесіди та подкасти](https://namada.net/talks) + +Щоб дізнатися більше про протокол, ми рекомендуємо ці поглиблені ресурси: + +- Виступ на самміті ZK8 [Namada: asset-agnostic interchain privacy](https://youtu.be/5K6YxmZPFkE) +- [Специфікації Namada](https://specs.namada.net) +- [Сховище коду](https://github.com/anoma/namada) diff --git a/packages/docs/pages/index.zh-CN.mdx b/packages/docs/pages/index.zh-CN.mdx new file mode 100644 index 00000000..b3f2a7fb --- /dev/null +++ b/packages/docs/pages/index.zh-CN.mdx @@ -0,0 +1,31 @@ +import { DocsAscii } from '../components/DocsAscii' + + +# 关于 Namada (About Namada) + +Namada 是一个以隐私保护为核心,利用零知识证明技术的区块链平台。Namada 的加密特性为用户提供了与资产无关、跨链的隐私保护,由 Anoma 基金会负责开发建设。 + +### 主要创新 (Key innovations): +对任何资产(可替换和不可替换的)实现类似 Zcash 的转账 +将隐私作为公共利益的有奖使用 +通过定制的桥接技术,实现与以太坊的互操作性,同时最小化信任 + +### 功能概述 (Overview of features): +- 采用具有[治理](./users/governance.mdx)功能的[权益证明机制](./operators/validators/proof-of-stake.zh-CN.mdx),以保护和推动 Namada 的发展 +- 采用快速确定性的拜占庭容错机制,实现 4 秒的区块时间 +- 通过最小化信任的双向以太坊桥接 +- 通过 IBC 连接到已经支持 IBC 的链(所有 Cosmos 链) +- [多资产屏蔽池(MASP](./users/shielded-accounts.zh-CN.mdx),用于实现资产无关的隐私保护 +- 转换电路 [(屏蔽奖励)](./users/shielded-rewards.zh-CN.mdx),用于以屏蔽方式奖励隐私集贡献 +- 账本应用 + +### 高层次介绍推荐 (For high-level introductions, we recommend): + +- 文章:[介绍 Namada:跨链资产无关隐私](https://namada.net/blog/introducing-namada-interchain-asset-agnostic-privacy) +- 文章:[什么是 Namada?](https://namada.net/blog/what-is-namada) +- 交谈和播客 + +### 深入了解协议推荐资源 (To learn more about the protocol, we recommend the following in-depth resources): +- ZK8 Namada 讲座:[资产无关的跨链隐私](https://www.youtube.com/watch?v=5K6YxmZPFkE) +- [Namada 的规格说明](https://specs.namada.net/) +- [代码库](https://github.com/anoma/namada) diff --git a/packages/docs/pages/integrating-with-namada.mdx b/packages/docs/pages/integrating-with-namada.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada.mdx rename to packages/docs/pages/integrating-with-namada.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada.uk-UA.mdx b/packages/docs/pages/integrating-with-namada.uk-UA.mdx new file mode 100644 index 00000000..53de2708 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada.uk-UA.mdx @@ -0,0 +1,10 @@ +# Інтеграція + +Цей посібник присвячений інтеграції з Namada. Він призначений для розробників, які хочуть інтегрувати з Namada у свої додатки, а також для інженерів, які хочуть розширити Namada. + +## Ліцензія +Namada працює під [ліцензією GPLv3](https://www.gnu.org/licenses/gpl-3.0.html) і є вільною для використання та модифікації. Будь ласка, зверніться до [ЛІЦЕНЗІЯ](https://github.com/anoma/namada/blob/main/LICENSE) для отримання додаткової інформації. + +## Зміст +- [SDK](./integrating-with-namada/sdk.mdx) +- [Індексатор](./integrating-with-namada/indexer.mdx) diff --git a/packages/docs/pages/integrating-with-namada/_meta.en-US.json b/packages/docs/pages/integrating-with-namada/_meta.en-US.json new file mode 100644 index 00000000..159b9ab9 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/_meta.en-US.json @@ -0,0 +1,4 @@ +{ + "sdk" : "Using the SDK", + "indexer": "Indexer" +} diff --git a/packages/docs/pages/integrating-with-namada/_meta.json b/packages/docs/pages/integrating-with-namada/_meta.json index 8a4c7ef8..159b9ab9 100644 --- a/packages/docs/pages/integrating-with-namada/_meta.json +++ b/packages/docs/pages/integrating-with-namada/_meta.json @@ -1,3 +1,4 @@ { - "sdk" : "Using the SDK" + "sdk" : "Using the SDK", + "indexer": "Indexer" } diff --git a/packages/docs/pages/integrating-with-namada/_meta.uk-UA.json b/packages/docs/pages/integrating-with-namada/_meta.uk-UA.json new file mode 100644 index 00000000..6d245a0e --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/_meta.uk-UA.json @@ -0,0 +1,4 @@ +{ + "sdk" : "Використання SDK", + "indexer": "Індексатор" +} diff --git a/packages/docs/pages/integrating-with-namada/indexer.mdx b/packages/docs/pages/integrating-with-namada/indexer.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada/indexer.mdx rename to packages/docs/pages/integrating-with-namada/indexer.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada/indexer.uk-UA.mdx b/packages/docs/pages/integrating-with-namada/indexer.uk-UA.mdx new file mode 100644 index 00000000..056d0a96 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/indexer.uk-UA.mdx @@ -0,0 +1,102 @@ +import Expandable from '../../components/Expandable'; +import { Callout } from 'nextra-theme-docs' + +# Namada Indexer + +У співпраці з [Zondax](https://zondax.ch/) було створено індексатор для блокчейну Namada. + +Індексатор Namada (він же `namadexer`) постійно запитує блокчейн Namada і разом з [SDK](./sdk.mdx) може відображати блоки, транзакції та іншу цінну інформацію в реляційну базу даних (postgres). + +Це особливо корисно для виконання аналітики над блокчейном, в тому числі для зберігання історичних даних, які можна легко запитувати. + +## Налаштування + +Вихідний код індексатора namada можна знайти [тут](https://github.com/zondax/namadexer), і він простий у налаштуванні. + +Найкраще `namadexer` працює разом з [Docker](https://www.docker.com/products/docker-desktop) + +```bash +git clone https://github.com/Zondax/namadexer.git +cd namadexer +make compose +``` + +## Запуск сервера і бази даних +Після запуску DockerFile можна легко налаштувати базу даних postgres, а також сервер, який буде запитувати базу даних. + +Переконайтеся, що `postgres` [встановлено](https://www.postgresql.org/download/) на локальній машині. + +**Запуск postgres у докері** +```bash +make postgres +# or run (and change arguments, e.g port): +# docker run --name postgres -e POSTGRES_PASSWORD=wow -e POSTGRES_DB=blockchain -p 5432:5432 -d postgres +``` +Коли сервер Postgres запущений і працює, прийшов час налаштувати сервер, який буде виконувати запити до бази даних Postgres. + +Щоб налаштувати сервер, виконайте наступну команду +``` +make run_server +``` + +У разі успіху сервер повинен працювати як служба на локальному хості за портом `30303`. + +## Запуск індексатора + +Спочатку переконайтеся, що файл `Settings.toml` у каталозі `config/Settings.toml` налаштовано правильно. + + +```toml +log_level = "info" +network = "public-testnet-14" + +[database] +host = "0.0.0.0:5435" +user = "postgres" +password = "wow" +dbname = "blockchain" +# Optional field to configure a timeout if database connection +# fails. +connection_timeout = 20 + + +[server] +serve_at = "0.0.0.0" +port = 30303 + +[indexer] +tendermint_addr = "0.0.0.0" +port = 26657 + +[jaeger] +enable = false +host = "localhost" +port = 6831 + +[prometheus] +host = "0.0.0.0" +port = 9000 +``` + + + + +**Інтерпретація toml** + +Важливо змінити наступні параметри: + +1. `indexer.tendermint_addr` - Це має бути адреса та відповідний порт синхронізованого повного вузла Namada + +2. `database.host` - Це має бути tcp-адреса (з портом), на якій запущено базу даних postgres. + + +Після завершення налаштування можна запускати індексатор + +```bash +make run_indexer +``` + +## Запит до бази даних + +Попередньо визначені кінцеві точки для запитів до бази даних описано в документації [тут](https://github.com/Zondax/namadexer/blob/main/docs/04-server.md). + diff --git a/packages/docs/pages/integrating-with-namada/sdk.mdx b/packages/docs/pages/integrating-with-namada/sdk.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada/sdk.mdx rename to packages/docs/pages/integrating-with-namada/sdk.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada/sdk.uk-UA.mdx b/packages/docs/pages/integrating-with-namada/sdk.uk-UA.mdx new file mode 100644 index 00000000..cea38c73 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk.uk-UA.mdx @@ -0,0 +1,63 @@ +import Expandable from '../../components/Expandable'; + +# Namada SDK + +Комплект для розробки програмного забезпечення (SDK) Namada можна знайти в репозиторії `namada` за посиланням [`namada/shared`](https://github.com/anoma/namada/tree/main/shared). SDK написаний на Rust і може бути використаний для взаємодії з блокчейном Namada шляхом створення транзакцій, їх підписання та відправки в мережу. + +## Швидкий старт + +Гарною відправною точкою для ознайомлення з використанням SDK є репозиторій [namada interface](https://github.com/anoma/namada-interface/tree/main/packages/shared/lib/src/sdk). Цей репозиторій містить простий веб-додаток, який використовує SDK для взаємодії з блокчейном Namada. Однак, важливо відзначити додаткову складність, що виникає через інтеграцію додатку з javascript за допомогою [wasm-bindgen](https://rustwasm.github.io/docs/wasm-bindgen/), що не є обов'язковим. + +## Встановлення + +Namada SDK можна встановити, створивши новий проект Rust і додавши до файлу `Cargo.toml` наступне: + + + + +```toml +[package] +name = "namada-sdk-starter" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +async-std = "1.11.0" +async-trait = "0.1.51" +borsh = "0.9.0" +file-lock = "2.0.2" +futures = "0.3.28" +getrandom = { version = "0.2" } +masp_primitives = { git = "https://github.com/anoma/masp.git", rev = "50acc5028fbcd52a05970fe7991c7850ab04358e" } +masp_proofs = { git = "https://github.com/anoma/masp.git", rev = "50acc5028fbcd52a05970fe7991c7850ab04358e", features = ["download-params"]} +# Make sure the rev is to the latest version of namada in the below repo +namada_sdk = { git = "https://github.com/anoma/namada.git", rev = "v0.24.0", default-features = false, features = ["abciplus", "namada-sdk", "std"] } +rand = {version = "0.8", default-features = false} +rand_core = {version = "0.6", default-features = false} +tendermint-config = {git="https://github.com/heliaxdev/tendermint-rs.git", rev="b7d1e5afc6f2ccb3fd1545c2174bab1cc48d7fa7"} +tendermint-rpc = {git="https://github.com/heliaxdev/tendermint-rs.git", rev="b7d1e5afc6f2ccb3fd1545c2174bab1cc48d7fa7", features = ["http-client"]} +thiserror = "1.0.38" +tokio = {version = "1.8.2", default-features = false} +toml = "0.5.8" +zeroize = "1.5.5" + +[patch.crates-io] +borsh = {git = "https://github.com/heliaxdev/borsh-rs.git", rev = "cd5223e5103c4f139e0c54cf8259b7ec5ec4073a"} +borsh-derive = {git = "https://github.com/heliaxdev/borsh-rs.git", rev = "cd5223e5103c4f139e0c54cf8259b7ec5ec4073a"} +borsh-derive-internal = {git = "https://github.com/heliaxdev/borsh-rs.git", rev = "cd5223e5103c4f139e0c54cf8259b7ec5ec4073a"} +borsh-schema-derive-internal = {git = "https://github.com/heliaxdev/borsh-rs.git", rev = "cd5223e5103c4f139e0c54cf8259b7ec5ec4073a"} + +``` + + + + +Після встановлення sdk ви можете використовувати його для взаємодії з блокчейном Namada. + +## Зміст + +- [Налаштування клієнта](./sdk/setting-up-a-client.mdx) +- [Налаштування гаманця](./sdk/setting-up-a-wallet.mdx) +- [Створення переказів](./sdk/constructing-transfers.mdx) diff --git a/packages/docs/pages/integrating-with-namada/sdk/_meta.en-US.json b/packages/docs/pages/integrating-with-namada/sdk/_meta.en-US.json new file mode 100644 index 00000000..037fbbdc --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/_meta.en-US.json @@ -0,0 +1,7 @@ +{ + "setting-up-a-client" : "Setting up a client", + "setting-up-a-wallet" : "Setting up a wallet", + "generating-accounts": "Generating accounts", + "constructing-transfers" : "Constructing transfers", + "interface-integration" : "Integrating with the interface" +} \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/sdk/_meta.uk-UA.json b/packages/docs/pages/integrating-with-namada/sdk/_meta.uk-UA.json new file mode 100644 index 00000000..2fb5bb59 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/_meta.uk-UA.json @@ -0,0 +1,7 @@ +{ + "setting-up-a-client" : "Налаштування клієнта", + "setting-up-a-wallet" : "Налаштування гаманця", + "generating-accounts": "Генерація рахунків", + "constructing-transfers" : "Конструювання переказів", + "interface-integration" : "Інтеграція інтерфейсу" +} diff --git a/packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.mdx b/packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.mdx rename to packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.uk-UA.mdx b/packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.uk-UA.mdx new file mode 100644 index 00000000..3f4923a0 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.uk-UA.mdx @@ -0,0 +1,72 @@ +# Створення переказів + +Тепер, коли ми налаштували гаманець і клієнт, ми можемо створити середовище, необхідне для побудови переказів. +Це може бути трохи складно, але наведений нижче шаблонний код повинен зробити свою справу: +Для створення переказів буде потрібно виконати наступний імпорт: + +```rust +use namada_sdk::args::InputAmount; +``` + +Після того, як користувач [згенерував акаунт](./generating-accounts.mdx) і створив відповідну структуру, не так вже й складно створити і відправити транзакції переказу. + +```rust +let mut namada = NamadaImpl::new(&http_client, &mut wallet, &mut shielded_ctx, &NullIo) + .await + .expect("unable to construct Namada object") + .chain_id(ChainId::from_str("public-testnet-14.5d79b6958580").unwrap()); +// Transfer the given amount of native tokens from the source account to the +// destination account. +async fn gen_transfer<'a>( + namada: &impl Namada<'a>, + source: &Account, + destination: &Account, + amount: InputAmount, +) -> std::result::Result { + let mut transfer_tx_builder = namada + .new_transfer( + TransferSource::Address(Address::from(&source.public_key)), + TransferTarget::Address(Address::from(&destination.public_key)), + namada.native_token(), + amount, + ) + .signing_keys(vec![source.private_key.clone()]); + let (mut transfer_tx, signing_data, _epoch) = transfer_tx_builder + .build(namada) + .await + .expect("unable to build transfer"); + namada + .sign(&mut transfer_tx, &transfer_tx_builder.tx, signing_data) + .await + .expect("unable to sign reveal pk tx"); + namada.submit(transfer_tx, &transfer_tx_builder.tx).await +} +``` + +Інші транзакції можуть бути побудовані подібним чином. + +## Екрановані перекази + +Для того, щоб зробити переказ екранованим, нам потрібно лише використовувати екрановані адреси та ключі замість прозорих. + +Важливо використовувати екранований розширений `SpendingKey` як джерело. + +```rust + +use namada::types::masp::{ExtendedSpendingKey, PaymentAddress, TransferSource, TransferTarget}; + +// Make sure to replace 'secret-ex' with an actual Namada extended spending key +let source = ExtendedSpendingKey::from_str("secret-ex").unwrap(); +// Make sure to replace "payment-addr-ex" with an actual Namada payment address +let destination = PaymentAddress::from_str("payment-addr-ex").unwrap(); +let fee_payer = +let mut transfer_tx_builder = namada + .new_transfer( + TransferSource::ExtendedSpendingKey(source), + TransferTarget::Address(Address::from(&destination.public_key)), + namada.native_token(), + amount, + ) + // Make sure to replace "transparent-address-ex" with an actual Namada transparent address + .signing_keys(vec![Address::from_str("transparent-address-ex").ok()]); +``` diff --git a/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.mdx b/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada/sdk/generating-accounts.mdx rename to packages/docs/pages/integrating-with-namada/sdk/generating-accounts.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.uk-UA.mdx b/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.uk-UA.mdx new file mode 100644 index 00000000..f6f4135b --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.uk-UA.mdx @@ -0,0 +1,76 @@ +# Створення рахунків + +## Представлення облікових записів +Представляти облікові записи за допомогою Namada SDK дуже просто. Обліковий запис в Namada визначається його відкритим ключем (ключами) і закритим ключем (ключами) (у множині для мультипідписів). Відкритий(і) ключ(і) використовується(ються) для ідентифікації акаунта, а закритий(і) ключ(і) використовується(ються) для підписання транзакцій. У наведеному нижче фрагменті ми представляємо акаунт з використанням відкритого та закритого ключів. + + +```rust +use namada_sdk::core::types::key::common::{PublicKey, SecretKey}; +struct SimpleAccount { + public_key: PublicKey, + private_key: SecretKey +} +``` + +Для облікового запису з мультипідписом ми можемо представити це за допомогою вектора ключів. + +```rust +use namada_sdk::core::types::key::common::{PublicKey, SecretKey}; +struct MultisigAccount { + public_keys: Vec, + private_keys: Vec +} +``` + +Облікові записи з мультипідписом, оскільки вони ініціалізуються он-лайн транзакцією, завжди мають відкритий ключ, який буде доступний для реєстру. Однак, коли пари ключів генеруються в автономному режимі, користувач повинен надіслати транзакцію, щоб розкрити свій відкритий ключ. Через це корисно додати поле `revealed` до структури облікового запису. + +```rust +use namada_sdk::core::types::key::common::{PublicKey, SecretKey}; +struct Account { + public_key: PublicKey, + private_key: SecretKey, + revealed: bool +} +``` + +## Розкриття відкритого ключа неявного облікового запису + +Для того, щоб розкрити відкритий ключ неявного облікового запису, користувач повинен надіслати транзакцію на леджер. + +```rust +use namada_sdk::io::NullIo; +use namada_sdk::NamadaImpl; +use namada_sdk::core::types::chain::ChainId; + + +// Define the namada implementation (assuming we have a wallet, http_client, and shielded_ctx) +let mut namada = NamadaImpl::new(&http_client, &mut wallet, &mut shielded_ctx, &NullIo) + .await + .expect("unable to construct Namada object") + .chain_id(ChainId::from_str("public-testnet-14.5d79b6958580").unwrap()); + +// Generate an account (assuming sk is a SecretKey) +let account = Account { + public_key: sk.to_public(), + private_key: sk, + revealed: false, +}; + +// Build the reveal pk transaction using the NamadaImpl object +let reveal_tx_builder = namada + .new_reveal_pk(account.public_key.clone()) + .signing_keys(vec![account.private_key.clone()]); +let (mut reveal_tx, signing_data, _) = reveal_tx_builder + .build(namada) + .await + .expect("unable to build reveal pk tx"); +// Sign the transaction +namada + .sign(&mut reveal_tx, &reveal_tx_builder.tx, signing_data) + .await + .expect("unable to sign reveal pk tx"); +// Submit the signed tx to the ledger for execution +namada.submit(reveal_tx.clone(), reveal_tx_builder) +``` + +Після розкриття відкритого ключа акаунт можна використовувати для підписання транзакцій. diff --git a/packages/docs/pages/integrating-with-namada/sdk/interface-integration.mdx b/packages/docs/pages/integrating-with-namada/sdk/interface-integration.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada/sdk/interface-integration.mdx rename to packages/docs/pages/integrating-with-namada/sdk/interface-integration.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada/sdk/interface-integration.uk-UA.mdx b/packages/docs/pages/integrating-with-namada/sdk/interface-integration.uk-UA.mdx new file mode 100644 index 00000000..67aebb6d --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/interface-integration.uk-UA.mdx @@ -0,0 +1,32 @@ +# Використання SDK з інтерфейсом Namada + +[Інтерфейс Namada](https://github.com/anoma/namada-interface) - це веб-інтерфейс, розроблений фондом Anoma Foundation. + +Він дозволяє легко створювати та керувати власною децентралізованою ідентичністю, в тому числі інтегруватися з додатком для ведення книги. + +Реалізація інтерфейсу використовує комбінацію TypeScript і Rust для взаємодії з SDK. + +## Приклад + +```typescript +// Import Sdk & Query +import { Query, Sdk } from "@namada/shared"; +// Import wasm initialization function +import { init as initShared } from "@namada/shared/src/init"; + +async function init() { + await initShared(); + + const sdk = new Sdk(RPC_URL_OF_NAM_NODE); + const query = new Query(RPC_URL_OF_NAM_NODE); + + // ... +} + +init(); +``` + +## Документація + +{/* TODO: Make sure this is updated to the main repo, once ready and merged */} +Щоб дізнатися більше, будь ласка, прочитайте документацію, яка підтримується [тут](https://github.com/anoma/namada-interface/blob/e9b76f54966ec48befe4a12a47808684e0d40eaf/specs/packages/sdk.md#how-can-you-import-and-use-the-sdk). diff --git a/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.mdx b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.mdx rename to packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.uk-UA.mdx b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.uk-UA.mdx new file mode 100644 index 00000000..31e70156 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.uk-UA.mdx @@ -0,0 +1,100 @@ +# Налаштування клієнта SDK + +Після того, як sdk було імпортовано в проект, його можна використовувати для взаємодії з блокчейном Namada. +Припустимо, у нас є вузол, що працює на ip і порту `127.0.0.1:26657`, і ми хочемо відправити транзакцію в мережу. + +SDK може бути для різних цілей, але в цьому прикладі ми будемо використовувати його для відправки транзакції в мережу. + +По-перше, нам потрібно реалізувати `Client`, щоб ми могли спілкуватися з запущеним вузлом. + +```rust +use reqwest::{Client, Response as ClientResponse}; + + +pub struct SdkClient { + url: String, + client: Client, +} + +impl SdkClient { + pub fn new(url: String) -> Self { + Self { + client: Client::new(), + url, + } + } + + pub async fn post(&self, body: String) -> Result { + self.client + .post(format!("http://{}", &self.url)) + .body(body) + .send() + .await + } +} +``` + +Це дозволить нам використовувати `Client` з `reqwest` (зовнішньої бібліотеки) для відправки транзакції в мережу. + +Нам також потрібно визначити деякі функції, які клієнт буде використовувати для взаємодії з мережею. + +```rust +#[async_trait::async_trait] +impl ClientTrait for SdkClient { + type Error = Error; + + async fn request( + &self, + path: String, + data: Option>, + height: Option, + prove: bool, + ) -> Result { + let data = data.unwrap_or_default(); + let height = height + .map(|height| { + tendermint::block::Height::try_from(height.0) + .map_err(|_err| Error::InvalidHeight(height)) + }) + .transpose()?; + let response = self + .abci_query( + Some(std::str::FromStr::from_str(&path).unwrap()), + data, + height, + prove, + ) + .await?; + + match response.code { + Code::Ok => Ok(EncodedResponseQuery { + data: response.value, + info: response.info, + proof: response.proof, + }), + Code::Err(code) => Err(Error::Query(response.info, code)), + } + } + + async fn perform(&self, request: R) -> Result + where + R: tm_rpc::SimpleRequest, + { + let request_body = request.into_json(); + let response = self.post(request_body).await; + + match response { + Ok(response) => { + let response_json = response.text().await.unwrap(); + R::Response::from_string(response_json) + } + Err(e) => { + let error_msg = e.to_string(); + Err(tm_rpc::Error::server(error_msg)) + } + } + } +} +``` + +Тепер ми готові використовувати цей клієнт для відправки транзакцій. diff --git a/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.mdx b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.en-US.mdx similarity index 100% rename from packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.mdx rename to packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.en-US.mdx diff --git a/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.uk-UA.mdx b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.uk-UA.mdx new file mode 100644 index 00000000..635a6699 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.uk-UA.mdx @@ -0,0 +1,127 @@ +# Налаштування гаманця SDK + +## Відповідний імпорт + +### Головні імпорти +```rust +// namada_sdk::Namada is a high level interface in order to interact with the Namada SDK +use namada_sdk::Namada; +// The NamadaImpl provides convenient implementations to frequently used Namada SDK interactons +use namada_sdk::NamadaImpl; +``` + +### Імпорт для конкретних гаманців + +```rust +// SecretKey, common and SchemeType give access to Namada cryptographic keys and their relevant implementations. Namada supports ED25519 and SECP256K1 keys. +use namada_sdk::core::types::key::common::SecretKey; +use namada_sdk::core::types::key::{common, SchemeType}; +// Filesystem wallet utilities (stores the path of the wallet on the filesystem) +use namada_sdk::wallet::fs::FsWalletUtils; +``` + +## Створення гаманця з мнемоніки + +SDK може створити гаманець з мнемонічної фрази. Мнемонічна фраза - це фраза з 24 слів, яку можна використовувати для відновлення гаманця. + +```rust +let mnemonic = Mnemonic::from_phrase(MNEMONIC_CODE, namada_sdk::bip39::Language::English) +``` + +```rust +// Assuming a cometbft node is running on localhost:26657 +let http_client = HttpClient::new("http://localhost:26657").unwrap(); +// Assuming wallet.toml exists in the current directory +let mut wallet = FsWalletUtils::new(PathBuf::from("wallet.toml")); +// The key can be generated from the wallet by passing in the mnemonic phrase +let (_key_alias, sk) = NamadaImpl::new(&http_client, &mut wallet, &mut shielded_ctx, &NullIo) + .wallet_mut() + .await + .derive_key_from_user_mnemonic_code( + SchemeType::Ed25519, + Some(alias), + false, + Some(derivation_path), + Some((mnemonic.clone(), Zeroizing::new("".to_owned()))), + None, + ) + .expect("unable to derive key from mnemonic code") + .unwrap(); +``` + +У другій частині вищевказаної функції ключ отримується з мнемонічної фрази. Псевдонім - це ім'я ключа, який буде зберігатися в гаманці. Шлях_походження - це шлях до ключа у гаманці HD. Мнемонічна фраза - це мнемонічна фраза, яка була згенерована раніше. Shielded_ctx - контекст для екранованих транзакцій. NullIo - контекст вводу-виводу для гаманця. + +## Створення нового гаманця і збереження його у файловій системі + +Також можна створити гаманець sdk з нуля. Це більш складний процес, оскільки вимагає створення нового сховища для існування гаманця. + +```rust +use std::path::PathBuf; + +use namada::{ + sdk::wallet::{ + alias::Alias, ConfirmationResponse, GenRestoreKeyError, Store, StoredKeypair, Wallet, + WalletUtils, + }, + types::{ + address::Address, + key::{common::SecretKey, PublicKeyHash}, + }, +}; +use rand::rngs::OsRng; + +pub struct SdkWallet { + pub wallet: Wallet, +} + +impl SdkWallet { + pub fn new(sk: SecretKey, nam_address: Address) -> Self { + let store = Store::default(); + let mut wallet = Wallet::new(PathBuf::new(), store); + let stored_keypair = StoredKeypair::Raw(sk.clone()); + let pk_hash = PublicKeyHash::from(&sk.to_public()); + let alias = "alice".to_string(); + wallet.insert_keypair(alias, stored_keypair, pk_hash, true); + wallet.add_address("nam", nam_address, true); + Self { wallet } + } +} + +pub struct SdkWalletUtils {} + +impl WalletUtils for SdkWalletUtils { + type Storage = PathBuf; + + type Rng = OsRng; + + fn read_decryption_password() -> zeroize::Zeroizing { + panic!("attempted to prompt for password in non-interactive mode"); + } + + fn read_encryption_password() -> zeroize::Zeroizing { + panic!("attempted to prompt for password in non-interactive mode"); + } + + fn read_alias(_prompt_msg: &str) -> std::string::String { + panic!("attempted to prompt for alias in non-interactive mode"); + } + + fn read_mnemonic_code() -> std::result::Result { + panic!("attempted to prompt for mnemonic in non-interactive mode"); + } + + fn read_mnemonic_passphrase(_confirm: bool) -> zeroize::Zeroizing { + panic!("attempted to prompt for mnemonic in non-interactive mode"); + } + + fn show_overwrite_confirmation( + _alias: &Alias, + _alias_for: &str, + ) -> namada::sdk::wallet::store::ConfirmationResponse { + // Automatically replace aliases in non-interactive mode + ConfirmationResponse::Replace + } +} +``` + +Наведений вище код дозволяє нам створити будь-який екземпляр `SdkWallet`, просто передавши секретний ключ і адресу для токена `NAM`. Якщо ми захочемо здійснювати перекази за допомогою інших токенів, нам потрібно буде додати і ці адреси. diff --git a/packages/docs/pages/introduction.mdx b/packages/docs/pages/introduction.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction.mdx rename to packages/docs/pages/introduction.en-US.mdx diff --git a/packages/docs/pages/introduction.uk-UA.mdx b/packages/docs/pages/introduction.uk-UA.mdx new file mode 100644 index 00000000..822aea88 --- /dev/null +++ b/packages/docs/pages/introduction.uk-UA.mdx @@ -0,0 +1,33 @@ +# Про цю документацію + +Ласкаво просимо до документації Namada! Ця інформація призначена для тих, хто шукає: +- [Використання Namada](./users.mdx) +- [Запуск повного вузла або валідатора](./operators.mdx) +- [Разробка з Namada](./integrating-with-namada.mdx) + +## Повідомлення про помилки +Якщо ви знайдете будь-які помилки, повідомте про них у [Репозиторій Namada](https://github.com/anoma/namada/issues). +Не соромтеся також приєднуватися до дискусії і задавати питання на [Namada discord](https://discord.gg/namada). + +## Як читати цю документацію + +Ось кілька корисних порад щодо читання цієї документації: + +- Коментарі починаються з `#`: + +`# це коментарі, обов'язково прочитайте їх!` + +- Приклади результатів починаються зі стрілки: + +`➜ це приклад виведення командного рядка, корисний для порівняння` + +- Дані, що заповнюються користувачем, укладаються в кутові дужки:: + +`$ це команда, яку слід виконати <з власними даними>.` + +## Про цю документацію + +Цю документацію написано з використанням [Nextra](https://nextra.site/docs), вихідний код можна знайти в [Репозиторії документації Namada](https://github.com/anoma/namada-docs). + +[Внески](https://github.com/anoma/namada/blob/main/CONTRIBUTING.md) до змісту та структури цієї документації слід робити за допомогою `Pull Requests`. + diff --git a/packages/docs/pages/introduction.zh-CN.mdx b/packages/docs/pages/introduction.zh-CN.mdx new file mode 100644 index 00000000..ea89d9d7 --- /dev/null +++ b/packages/docs/pages/introduction.zh-CN.mdx @@ -0,0 +1,22 @@ +# 关于本文档 (About this documentation) + +欢迎来到 Namada 的文档!本书适用于任何希望进行以下操作的读者: +- [使用 Namada](./users.zh-CN.mdx) +- [操作完整节点或验证者](./operators.zh-CN.mdx) +- [在 Namada 上开发](./operators/local-network.zh-CN.mdx) + +## 报告错误(Reporting bugs) +如果在过程中发现任何错误,请在 Namada 仓库中报告它们。也欢迎加入 Discord,并在 Namada 频道中提问。 + +## 如何阅读本书 (How to read this book) +阅读本书时,以下是一些有用的提示: +注释以 # 开头: +# 这是一个注释,请确保阅读它们! +示例输出以箭头开头: +`➜ 这是一个示例命令行输出,用于比较` +用户定义的输入在尖括号中: +`$ 这是一个应运行的命令 <用您自己的输入>` + +## 关于本文档 (About this documentation) +本书是使用 [Nextra](https://nextra.site/docs) 编写的,源代码可以在 [Namada 文档仓库中找到](https://github.com/anoma/namada-docs)。 +对本书的内容和结构的[贡献](https://github.com/anoma/namada/blob/main/CONTRIBUTING.md)应通过拉取请求来完成。 diff --git a/packages/docs/pages/introduction/_meta.en-US.json b/packages/docs/pages/introduction/_meta.en-US.json new file mode 100644 index 00000000..56848f37 --- /dev/null +++ b/packages/docs/pages/introduction/_meta.en-US.json @@ -0,0 +1,7 @@ +{ + "quick-start": "Quick start", + "install": "Installing Namada", + "installing-cometbft": "Installing CometBFT", + "privacy": "Privacy and Opsec", + "security": "Security" +} \ No newline at end of file diff --git a/packages/docs/pages/introduction/_meta.uk-UA.json b/packages/docs/pages/introduction/_meta.uk-UA.json new file mode 100644 index 00000000..c32661a0 --- /dev/null +++ b/packages/docs/pages/introduction/_meta.uk-UA.json @@ -0,0 +1,7 @@ +{ + "quick-start": "Швидкий старт", + "install": "Встановлення Namada", + "installing-cometbft": "Встановлення CometBFT", + "privacy": "Конфіденційність", + "security": "Безпека" +} diff --git a/packages/docs/pages/introduction/install.mdx b/packages/docs/pages/introduction/install.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install.mdx rename to packages/docs/pages/introduction/install.en-US.mdx diff --git a/packages/docs/pages/introduction/install.uk-UA.mdx b/packages/docs/pages/introduction/install.uk-UA.mdx new file mode 100644 index 00000000..fa31cbc4 --- /dev/null +++ b/packages/docs/pages/introduction/install.uk-UA.mdx @@ -0,0 +1,16 @@ +import { Callout } from 'nextra-theme-docs' + +# Встановлюємо Namada + + +Наразі Namada підтримує лише Linux та MacOS. + + +## Встановлення Namada +Namada можна встановити наступними способами: + +1. [З джерела](./install/source.mdx) +2. [З бінарних файлів](./install/binaries.mdx) +3. [З образу докера](./install/docker.mdx) + +Вимоги до апаратного забезпечення для встановлення та запуску повного вузла Namada можна знайти [тут](../operators/hardware.mdx). diff --git a/packages/docs/pages/introduction/install/_meta.en-US.json b/packages/docs/pages/introduction/install/_meta.en-US.json new file mode 100644 index 00000000..163a2566 --- /dev/null +++ b/packages/docs/pages/introduction/install/_meta.en-US.json @@ -0,0 +1,5 @@ +{ + "source": "Source", + "binaries": "Binaries", + "docker": "Docker" +} diff --git a/packages/docs/pages/introduction/install/_meta.uk-UA.json b/packages/docs/pages/introduction/install/_meta.uk-UA.json new file mode 100644 index 00000000..5161ff36 --- /dev/null +++ b/packages/docs/pages/introduction/install/_meta.uk-UA.json @@ -0,0 +1,5 @@ +{ + "source": "Вихідний код", + "binaries": "Бінарні файли", + "docker": "Docker" +} diff --git a/packages/docs/pages/introduction/install/binaries.mdx b/packages/docs/pages/introduction/install/binaries.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install/binaries.mdx rename to packages/docs/pages/introduction/install/binaries.en-US.mdx diff --git a/packages/docs/pages/introduction/install/binaries.uk-UA.mdx b/packages/docs/pages/introduction/install/binaries.uk-UA.mdx new file mode 100644 index 00000000..d0a0d5f7 --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries.uk-UA.mdx @@ -0,0 +1,28 @@ +# Встановлення з бінарних файлів + +## Передумови +Існують певні передумови, які необхідно встановити перед тим, як встановлювати Namada через двійкові файли. + +Ось вони: +- [CometBFT](./binaries/prerequisites.mdx#installing-cometbft) +- [GLIBC](./binaries/prerequisites.mdx#installing-glibc) + +## Завантаження бінарних файлів + +Тепер, коли ви встановили всі залежності, ви можете завантажити останню версію бінарних файлів з нашої [сторінки випусків](https://github.com/anoma/namada/releases), вибравши відповідну архітектуру. + +Наведений нижче код завантажить усі бінарні файли останньої версії для всіх підтримуваних операційних систем. +```shell copy +OPERATING_SYSTEM="Linux" # or "Darwin" for MacOS +latest_release_url=$(curl -s "https://api.github.com/repos/anoma/namada/releases/latest" | grep "browser_download_url" | cut -d '"' -f 4 | grep "$OPERATING_SYSTEM") +wget "$latest_release_url" +``` + +## Розміщення двійкових файлів на `$PATH`. +Для машин ubuntu і mac наступна команда має працювати для додавання namada до шляху. + +Опинившись у каталозі, що містить бінарні файли: +```bash copy +sudo cp ./namada* /usr/local/bin/ +``` + diff --git a/packages/docs/pages/introduction/install/binaries/_meta.en-US.json b/packages/docs/pages/introduction/install/binaries/_meta.en-US.json new file mode 100644 index 00000000..2ac2a42b --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries/_meta.en-US.json @@ -0,0 +1,4 @@ +{ + "overview-of-binaries": "Using the binaries", + "prerequisites": "Prerequisites" +} diff --git a/packages/docs/pages/introduction/install/binaries/_meta.uk-UA.json b/packages/docs/pages/introduction/install/binaries/_meta.uk-UA.json new file mode 100644 index 00000000..4e9348af --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries/_meta.uk-UA.json @@ -0,0 +1,4 @@ +{ + "overview-of-binaries": "Використання бінарних файлів", + "prerequisites": "Вимоги" +} diff --git a/packages/docs/pages/introduction/install/binaries/overview-of-binaries.mdx b/packages/docs/pages/introduction/install/binaries/overview-of-binaries.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install/binaries/overview-of-binaries.mdx rename to packages/docs/pages/introduction/install/binaries/overview-of-binaries.en-US.mdx diff --git a/packages/docs/pages/introduction/install/binaries/overview-of-binaries.uk-UA.mdx b/packages/docs/pages/introduction/install/binaries/overview-of-binaries.uk-UA.mdx new file mode 100644 index 00000000..54961df5 --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries/overview-of-binaries.uk-UA.mdx @@ -0,0 +1,25 @@ +import { Callout } from 'nextra-theme-docs' + +# Встановлення бінарних файлів + +Після встановлення у вас повинні з'явитися наступні бінарні файли: + +| Binary | Description | +| --- | --- | +| `namada` | Основний бінарний файл, який можна використовувати для взаємодії з усіма компонентами Namada | +| `namadan` | Ledger нода | +| `namadac` | Клієнт | +| `namadaw` | Гаманець | +| `namadar` | Мостовий ретранслятор ethereum | + +Основна бінарна команда `namada` має підкоманди для всіх інших бінарних файлів. Тому наступні команди є еквівалентними: + +| `namada` Команда | `namada`x еквівалент | +| --- | --- | +| `namada клієнт` | `namadac` | +| `namada нода` | `namadan` | +| `namada гаманець` | `namadaw` | +| `namada ретранслятор` | `namadar` | + + +Для вивчення інтерфейсу командного рядка можна додати аргумент `--help` на будь-якому рівні підкоманди, щоб дізнатися про можливі підкоманди та/або аргументи. diff --git a/packages/docs/pages/introduction/install/binaries/prerequisites.mdx b/packages/docs/pages/introduction/install/binaries/prerequisites.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install/binaries/prerequisites.mdx rename to packages/docs/pages/introduction/install/binaries/prerequisites.en-US.mdx diff --git a/packages/docs/pages/introduction/install/binaries/prerequisites.uk-UA.mdx b/packages/docs/pages/introduction/install/binaries/prerequisites.uk-UA.mdx new file mode 100644 index 00000000..7deac92d --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries/prerequisites.uk-UA.mdx @@ -0,0 +1,12 @@ +## Встановлення CometBFT + +Дотримуйтесь [цих інструкцій](../../installing-cometbft.mdx), щоб встановити CometBFT. + +## Встановлення GLIBC +Нарешті, ви повинні мати GLIBC `v2.33` або новішої версії. + +**MacOS**: система повинна мати достатньо свіжу версію glibc. + +**Ubuntu 22.04**: glibc встановлено за замовчуванням, і вам більше нічого не потрібно робити. + +**Ubuntu 18.04 та Ubuntu 22.04**: за замовчуванням glibc має версії `v2.27` та `v2.29` відповідно, що є нижчими за версію, необхідну для запуску Namada. Ми рекомендуємо безпосередньо [встановити з джерела](../source.mdx) або оновитися до Ubuntu 22.04, а не оновлювати glibc до необхідної версії, оскільки останній спосіб може бути брудним і нудним завданням. Якщо вас цікавить оновлення glibc, на цьому [веб-сайті](http://www.linuxfromscratch.org/lfs/view/9.0-systemd/chapter05/glibc.html) описано кроки зі збирання пакунка з коду. diff --git a/packages/docs/pages/introduction/install/docker.mdx b/packages/docs/pages/introduction/install/docker.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install/docker.mdx rename to packages/docs/pages/introduction/install/docker.en-US.mdx diff --git a/packages/docs/pages/introduction/install/docker.uk-UA.mdx b/packages/docs/pages/introduction/install/docker.uk-UA.mdx new file mode 100644 index 00000000..8793bf56 --- /dev/null +++ b/packages/docs/pages/introduction/install/docker.uk-UA.mdx @@ -0,0 +1,79 @@ +# За допомогою Docker + +## Передумови + +Для того, щоб запустити будь-які образи докерів, вам потрібно встановити докер. Настанови щодо встановлення докера для вашого комп'ютера можна знайти [тут](https://docs.docker.com/get-docker/). + +## Завантаження образу докера +Образ докера Namada можна знайти [тут](https://github.com/anoma/namada/pkgs/container/namada). + +На вкладці `Tags` ви можете знайти останню версію образу докера. Клацніть на посилання для правильної версії Namada, яку ви намагаєтеся встановити. Наприклад, якщо ви намагаєтеся встановити Namada v0.16.0, вам слід натиснути на посилання `v0.16.0`. + +Ви можете знайти тег завантаженого образу докера, виконавши `docker images`. Тег буде першим стовпчиком виводу. + + +## Запуск образу докера + +Після завантаження образу докера буде корисно експортувати деякі змінні оточення: + +```bash copy +export CHAIN_ID= +``` + +Наступна команда запуску докера запустить вузол журналу: + +```bash copy +docker run -P -i -t $DOCKER_IMAGE +``` + +Де `` - це будь-яка команда, яку ви запустите після `namada` у терміналі. Наприклад, якщо ви хочете виконати `namada client utils join-network --chain-id $CHAIN_ID`, вам слід виконати `namada client utils join-network`: + +```bash copy +docker run -P -i -t $DOCKER_IMAGE client utils join-network --chain-id $CHAIN_ID +``` + +Після цього можна запускати будь-які інші команди: + +```bash copy +docker /bin/bash -c "/bin/bash","-c", "<команда namada>" +``` + +## Альтернативний метод (створення образу докера самостійно) + +Крім того, ви можете створити образ докера самостійно! + +Почніть з додавання деяких змінних середовища: + +```bash copy +export CHAIN_ID= +export BRANCH= +``` + +Наприклад, якщо ви хочете зібрати образ докера для Namada v0.16.0 і ланцюговим ідентифікатором `public-testnet-69.0.b20a1337aa1`, вам слід запустити: + +```bash copy +export CHAIN_ID=public-testnet-69.0.b20a1337aa1 +export BRANCH=v0.16.0 +``` + +Після цього ви можете зібрати образ докера за допомогою запуску: + +```bash copy +git clone https://github.com/anoma/namada-sdk-starter.git +cd namada-sdk-starter/docker/namada-with-chain/ +docker build --build-arg BRANCH=$BRANCH --build-arg CHAIN_ID=$CHAIN_ID -t namada_testnet_image . +``` + +Це збереже зображення у вашій локальній теці образів докерів. Ви можете знайти тег завантаженого образу докера, виконавши `docker images`. Тег буде першим стовпчиком виведеного результату. + +Збережіть цей образ докера як змінну оточення + +```bash copy +export DOCKER_IMAGE= +``` + +Після цього ви можете запустити докер-образ на виконання: + +```bash copy +docker run -P -i -t $DOCKER_IMAGE +``` diff --git a/packages/docs/pages/introduction/install/source.mdx b/packages/docs/pages/introduction/install/source.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install/source.mdx rename to packages/docs/pages/introduction/install/source.en-US.mdx diff --git a/packages/docs/pages/introduction/install/source.uk-UA.mdx b/packages/docs/pages/introduction/install/source.uk-UA.mdx new file mode 100644 index 00000000..2f857509 --- /dev/null +++ b/packages/docs/pages/introduction/install/source.uk-UA.mdx @@ -0,0 +1,40 @@ +import { Callout } from 'nextra-theme-docs' + +# Встановлення з вихідного коду + + +Зверніть увагу, що хоча встановлення з вихідного коду є рекомендованим способом встановлення Namada, він може виявитися складним і не рекомендується для новачків. При першому встановленні процес інсталяції може зайняти до години. Збірка двійкових файлів з коду також може зайняти багато часу, залежно від вашого комп'ютера. + + +## Передумови + +Переконайтеся, що ви завантажили та встановили правильні [передумови](./source/pre-requisites.mdx). + +## Встановлення Namada +Тепер, коли ви встановили всі необхідні залежності, ви можете клонувати вихідний код з [Namada](https://github.com/anoma/namada) сховища і встановити з нього: + +```shell copy +git clone https://github.com/anoma/namada.git +cd namada +make install +``` + + +Під час внутрішніх та приватних тестнетів перегляньте останню гілку testnet за допомогою `git checkout $NAMADA_TESTNET_BRANCH`. +Де `$NAMADA_TESTNET_BRANCH` - це назва гілки testnet, яка буде вказана у [testnet documentation](../testnets/environment-setup.mdx). + + +## Додавання бінарних файлів до `$PATH` +бінарнихі файли слід додати до `$PATH` за допомогою команди `make install`. +Однак, якщо це з якихось причин не спрацювало, рішенням може бути копіювання бінарних файлів +з теки `namada/target/release` до теки `$HOME/.local/bin/`, наприклад: + +```shell copy +cp namada/target/release/namada* $HOME/.local/bin/ +``` + +## Використання бінарних файлів +Додаткову інформацію див. на сторінці [використання двійкових файлів namada](./binaries/overview-of-binaries.mdx). + +## Усунення несправностей +Будь ласка, зверніться до сторінки усунення несправностей для [збірки з джерела](./source/troubleshooting.mdx) для отримання додаткової інформації. diff --git a/packages/docs/pages/introduction/install/source/_meta.en-US.json b/packages/docs/pages/introduction/install/source/_meta.en-US.json new file mode 100644 index 00000000..428e67d0 --- /dev/null +++ b/packages/docs/pages/introduction/install/source/_meta.en-US.json @@ -0,0 +1,4 @@ +{ + "pre-requisites" : "Pre-requisites", + "troubleshooting": "Troubleshooting" +} \ No newline at end of file diff --git a/packages/docs/pages/introduction/install/source/_meta.uk-UA.json b/packages/docs/pages/introduction/install/source/_meta.uk-UA.json new file mode 100644 index 00000000..1a9c19f4 --- /dev/null +++ b/packages/docs/pages/introduction/install/source/_meta.uk-UA.json @@ -0,0 +1,4 @@ +{ + "pre-requisites" : "Вимоги", + "troubleshooting": "Усунення проблем" +} diff --git a/packages/docs/pages/introduction/install/source/pre-requisites.mdx b/packages/docs/pages/introduction/install/source/pre-requisites.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install/source/pre-requisites.mdx rename to packages/docs/pages/introduction/install/source/pre-requisites.en-US.mdx diff --git a/packages/docs/pages/introduction/install/source/pre-requisites.uk-UA.mdx b/packages/docs/pages/introduction/install/source/pre-requisites.uk-UA.mdx new file mode 100644 index 00000000..0d43b398 --- /dev/null +++ b/packages/docs/pages/introduction/install/source/pre-requisites.uk-UA.mdx @@ -0,0 +1,52 @@ +# Передумови +Якщо ви хочете встановити Namada з вихідного коду, вам потрібно спочатку встановити деякі залежності: + +1. [Rust](https://www.rust-lang.org/tools/install) +2. [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +3. [Clang](https://clang.llvm.org/get_started.html) +4. [OpenSSL](https://www.openssl.org/source/) +5. [LLVM](https://releases.llvm.org/download.html) + +## Rust +Наприкінці встановлення переконайтеся, що каталог bin Cargo `$HOME/.cargo/bin` доступний у вашій змінній оточення PATH. Ви можете перезапустити оболонку або запустити `source $HOME/.cargo/env` для продовження. + +Якщо у вас вже встановлено Rust, переконайтеся, що ви використовуєте останню версію, запустивши її: + +```shell copy +rustup update +``` + +## Решта залежностей +Потім встановіть решту залежностей. + +{/* TODO: Turn these into code boxes with toggles for OS */} + +**Ubuntu:** запуск наступної команди має встановити все необхідне: + +```shell copy +sudo apt-get install -y make git-core libssl-dev pkg-config libclang-12-dev build-essential protobuf-compiler +``` + +**Mac:** встановлення інструментів командного рядка Xcode повинно забезпечити вас майже всім необхідним: + +```shell copy +xcode-select --install +``` + +Також потрібен `protoc`. На Mac ви можете встановити його за допомогою `Homebrew`: + +```shell copy +brew install protobuf +``` + +Під час запуску +```shell copy +protoc --version +``` +Повинена бути версія як мінімум: + +```shell copy +libprotoc 3.12.0 +``` + +Будь ласка, зверніться до [документація по встановленню protoc](https://grpc.io/docs/protoc-installation/) для інших варіантів встановлення. diff --git a/packages/docs/pages/introduction/install/source/troubleshooting.mdx b/packages/docs/pages/introduction/install/source/troubleshooting.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/install/source/troubleshooting.mdx rename to packages/docs/pages/introduction/install/source/troubleshooting.en-US.mdx diff --git a/packages/docs/pages/introduction/install/source/troubleshooting.uk-UA.mdx b/packages/docs/pages/introduction/install/source/troubleshooting.uk-UA.mdx new file mode 100644 index 00000000..ed119212 --- /dev/null +++ b/packages/docs/pages/introduction/install/source/troubleshooting.uk-UA.mdx @@ -0,0 +1,93 @@ +# Усунення несправностей під час встановлення з вихідного коду + +### Недостатньо оперативної пам'яті +[Локальна збірка двійкових файлів](../source.mdx) є важким обчислювальним завданням і може стати випробуванням для вашого комп'ютера. Зазвичай для компіляції потрібно щонайменше 16 ГБ оперативної пам'яті, а залежно від оптимізації вашого комп'ютера може знадобитися трохи більше (для деяких комп'ютерів трохи менше). З цієї причини компіляція іноді може завершитися невдало. + +Помилка +``` +src/apps/namada lib could not compile due to previous errors. Exited with exit code: +``` +це поширена помилка, яка іноді може означати, що на вашому комп'ютері закінчилася пам'ять під час компіляції. Щоб вирішити цю проблему, я виявив, що закриття всіх інших програм і перекомпіляція один або два рази зробить свою справу. В іншому випадку знадобиться більше оперативної пам'яті. + +### Компіляція вперше +Помилки компіляції через відсутність встановлених бібліотек під час першого збирання двійкових файлів можуть бути поширеною проблемою. + +#### Linker "CC" not found +Якщо ви зіткнулися з помилкою + +``` +Entering directory '/root/namada/wasm/wasm_source' +RUSTFLAGS='-C link-arg=-s' cargo build --release --target wasm32-unknown-unknown --target-dir 'target' --features tx_bond && \ +cp "./target/wasm32-unknown-unknown/release/namada_wasm.wasm" ../tx_bond.wasm + Compiling proc-macro2 v1.0.46 + Compiling quote v1.0.21 +error: linker `cc` not found + | + = note: No such file or directory (os error 2) + +error: could not compile `quote` due to previous error +warning: build failed, waiting for other jobs to finish... +error: could not compile `proc-macro2` due to previous error +``` + +Це можна вирішити, запустивши + +```bash copy +sudo apt install build-essential +``` + +Іншим рішенням іноді може бути встановлення `libcland-dev`. Цього можна досягти за допомогою: + +```bash copy +sudo apt-get update -y +sudo apt-get install -y libclang-dev +``` + + +#### WASM32-unknown-unknown +Інша проблема, з якою може зіткнутися компілятор, полягає у тому, що він не може знайти ціль `wasm32-unknown-unknown`. + +``` +error[E0463]: can't find crate for `core` + | + = note: the `wasm32-unknown-unknown` target may not be installed + = help: consider downloading the target with `rustup target add wasm32-unknown-unknown` + +error[E0463]: can't find crate for `compiler_builtins` + +For more information about this error, try `rustc --explain E0463`. +error: could not compile `cfg-if` due to 2 previous errors +``` + +Цю проблему можна вирішити, запустивши + +```bash copy +rustup target add wasm32-unknown-unknown +``` +(Так, ім'я цілі - `wasm32-unknown-unknown`. Це не означає, що компілятор не може визначити, яка це версія/випуск). + +#### OpenSSL + +Якщо ви зіткнулися з помилкою + +``` +Could not find directory of OpenSSL installation, and this `-sys` crate cannot + proceed without this knowledge. If OpenSSL is installed and this crate had + trouble finding it, you can set the `OPENSSL_DIR` environment variable for the + compilation process. + + Make sure you also have the development packages of openssl installed. + For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora. + + If you're in a situation where you think the directory *should* be found + automatically, please open a bug at https://github.com/sfackler/rust-openssl + and include information about your system as well as this message. +``` + +Далі рішення прописано для вас. Вам потрібно встановити пакети розробки OpenSSL. Для Ubuntu це `libssl-dev`. Для Fedora це `openssl-devel`. Для інших дистрибутивів, будь ласка, зверніться до [веб-сайту OpenSSL](https://www.openssl.org/). + +Для Ubuntu цього можна досягти за допомогою + +```bash copy +sudo apt-get install libssl-dev +``` diff --git a/packages/docs/pages/introduction/installing-cometbft.mdx b/packages/docs/pages/introduction/installing-cometbft.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/installing-cometbft.mdx rename to packages/docs/pages/introduction/installing-cometbft.en-US.mdx diff --git a/packages/docs/pages/introduction/installing-cometbft.uk-UA.mdx b/packages/docs/pages/introduction/installing-cometbft.uk-UA.mdx new file mode 100644 index 00000000..ff989e57 --- /dev/null +++ b/packages/docs/pages/introduction/installing-cometbft.uk-UA.mdx @@ -0,0 +1,32 @@ +# Встановлення CometBFT + +## Завантаження останньої версії +Namada сумісна з тегом CometBFT `v0.37.2`. + +Ви можете завантажити останню версію з [цього репозиторію](https://github.com/cometbft/cometbft/releases/). +- Останнім випуском є `v0.37.2`, який можна встановити [тут](https://github.com/cometbft/cometbft/releases/tag/v0.37.2). + +## Додавання бінарних файлів до $PATH +Якщо ви встановили і завантажили `go`, ви можете додати його до каталогу `$GOPATH/bin`. Це можна зробити, виконавши наступну команду у кореневому каталозі сховища + +```bash copy +cp $GOPATH/bin/ +``` + +В іншому випадку ми рекомендуємо просто скопіювати його до вашого `/usr/local/bin`, що може вимагати прав доступу `sudo`. + +`sudo cp /usr/local/bin/` + +І введіть ваш пароль, коли з'явиться відповідний запит. + +Для того, щоб перевірити, що установка пройшла успішно, ви можете виконати наступну команду + +```bash copy +cometbft version +``` + +В результаті чого повинно вийти щось на кшталт: + +```bash copy +0.37.2 +``` diff --git a/packages/docs/pages/introduction/privacy.mdx b/packages/docs/pages/introduction/privacy.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/privacy.mdx rename to packages/docs/pages/introduction/privacy.en-US.mdx diff --git a/packages/docs/pages/introduction/privacy.uk-UA.mdx b/packages/docs/pages/introduction/privacy.uk-UA.mdx new file mode 100644 index 00000000..e3db96db --- /dev/null +++ b/packages/docs/pages/introduction/privacy.uk-UA.mdx @@ -0,0 +1,24 @@ +# Конфіденційність + + +Namada надає ландшафту приватності іншої форми, забезпечуючи максимально можливий уніфікований набір приватності в мультиланцюжку і доповнюючи інші ланцюжки шляхом запуску/модернізації дій, захищених від несанкціонованого доступу. + + +* Namada створює єдиний захищений пул з діагностикою активів для будь-яких взаємозамінних і не взаємозамінних токенів. +* Namada також може поширювати конфіденційність для користувачів, які хочуть використовувати актив, що походить з одного базового ланцюжка, в іншому ланцюжку, не втрачаючи при цьому конфіденційність +* Namada модернізує конфіденційність для активів, які були створені і вже використовуються в прозорих ланцюжках + + +Користувачі повинні знати, що вони все ще можуть розкривати особисту інформацію при переказі коштів в Namada і з Namada через міст Ethereum або IBC. Наприклад, користувач, який переказує WETH з Ethereum, може приховати свою ідентичність в ланцюжку для *деяких* спостерігачів в ланцюжку, взаємодіючи з протоколами конфіденційності на основі смарт-контрактів або централізованими біржами. Однак, користувач, який передає не взаємозамінний токен або токен з низькою ліквідністю, що покладається на визначення ціни в ланцюжку, буде виточувати більше інформації через природу своїх активів. Це також стосується токенів, які передаються в Namada і з Namada через IBC. Опинившись всередині екранованого набору, користувач може виконувати *екрановані дії*, такі як запуск перехресного обміну ланцюжків. + + +Екрановані дії не обмежуються ланцюжками додатків, сумісними з IBC, вони працюють з будь-яким ланцюжком, підключеним до Namada, наприклад, Ethereum, і можуть бути узагальнені для взаємодії з будь-яким dApp, наприклад, торгівля NFT або стейкінг ETH. На даний момент єдиною доступною захищеною дією є переказ між ланцюжками, але в майбутньому їх буде додано більше. + + +## Найкращі практики щодо витоку конфіденційних даних включають + + +* Передача високоліквідного загального токена в MASP, а потім, після того, як він опиниться в MASP, виконання захищеної дії для придбання відповідних токенів +* Використання іншої публічної адреси для переказу коштів в Namada, ніж та, що використовується для інших вразливих транзакцій +* Використовуйте TOR-браузер - Tor захищає особисту конфіденційність, приховуючи місцезнаходження та використання користувача від будь-кого, хто здійснює спостереження за мережею або аналіз трафіку +* Використовуйте VPN - VPN може маскувати вашу IP-адресу, шифрувати ваше інтернет-з'єднання і робити вашу діяльність в Інтернеті більш анонімною. diff --git a/packages/docs/pages/introduction/quick-start.mdx b/packages/docs/pages/introduction/quick-start.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/quick-start.mdx rename to packages/docs/pages/introduction/quick-start.en-US.mdx diff --git a/packages/docs/pages/introduction/quick-start.uk-UA.mdx b/packages/docs/pages/introduction/quick-start.uk-UA.mdx new file mode 100644 index 00000000..11321846 --- /dev/null +++ b/packages/docs/pages/introduction/quick-start.uk-UA.mdx @@ -0,0 +1,70 @@ +# Швидкий старт + +## Про цей посібник + +Цей посібник призначений для тих, хто зацікавлений в тому, щоб запустити Namada якомога швидше. Він допоможе вам встановити Namada, приєднатися до тестової мережі, запустити вузол і отримати деякі токени. + +## Встановлення Namada + +Докладні відомості про встановлення двійкових файлів Namada наведено у [посібнику зі встановлення](./install.mdx). Команди у цьому посібнику припускають, що ви маєте двійкові файли Namada (`namada`, `namadan`, `namadaw`, `namadac`) у вашому `$PATH`. + +Якщо двійкові файли десь зберігаються, але їх немає у вашому шляху (можливо, ви завантажили двійкові файли), ви можете додати двійкові файли до вашого $PATH за допомогою: + +```shell copy +export PATH=$PATH: +``` + +Якщо ви збираєте з вихідних кодів і запускаєте `make install`, двійкові файли буде встановлено до вашого `$PATH` за замовчуванням. + +## Приєднання до мережі + +Докладні відомості про приєднання до мережі наведено на [сторінці мереж](../networks.mdx). Далі у цьому посібнику буде припущено, що ви приєдналися до мережі за допомогою команди `namadac utils join-network --chain-id <деякий-ланцюг-id>`. + +## Запуск Ledger вузла + +Ми рекомендуємо виконувати цей крок з [tmux](https://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/), який дозволяє вузлу продовжувати працювати без необхідності тримати термінал відкритим на невизначений час. Якщо це не так, перейдіть до наступного кроку. + +```shell copy +tmux + +# inside the tmux/or not + +namadan ledger run + +# can detach the tmux (Ctrl-B then D) +``` + +Для більш детального виводу можна виконати + +```shell copy +NAMADA_LOG=info CMT_LOG_LEVEL=p2p:none,pex:error NAMADA_CMT_STDOUT=true namada ledger +``` + +Це має синхронізувати ваш вузол з реєстром і займе деякий час (залежно від апаратного забезпечення вашого комп'ютера, а також часу між генерацією і початком синхронізації). Подальші команди (створення облікового запису тощо) навряд чи будуть працювати, поки ваш вузол не буде повністю синхронізовано. Запитайте поточну висоту блоку в інших учасників, щоб переконатися, що ви синхронізовані, і продовжити роботу. + +## Створіть обліковий запис і отримайте кілька токенів + +Спочатку вам знадобиться неявний обліковий запис, щоб отримувати токени. Ви можете згенерувати його за допомогою: + +```shell copy +namadaw address gen --alias +``` + +Надалі в цьому вступі будемо вважати, що ваш псевдонім - "Stanley". + +Буде створено новий обліковий запис і збережено його у зв'язці ключів за замовчуванням. Ви можете переглянути обліковий запис за допомогою: + +```shell copy +namadaw address list +``` + +{/* #TODO: ADD some output */} + +## Знімання токенів (тільки для тестової мережі) + +Токени Testnet можна отримати з [крану](https://faucet.heliax.click). + + +## Звідси + +Звідси ви можете робити безліч цікавих речей. Можливо, спробувати [захисти свій NAM](../users/shielded-accounts/shielded-transfers.mdx), прив'язати свої токени до валідатора для [делегування](../users/delegators.mdx) або [стати валідатором](./operators/validators.mdx). diff --git a/packages/docs/pages/introduction/quick-start.zh-CN.mdx b/packages/docs/pages/introduction/quick-start.zh-CN.mdx new file mode 100644 index 00000000..f5fba11c --- /dev/null +++ b/packages/docs/pages/introduction/quick-start.zh-CN.mdx @@ -0,0 +1,62 @@ +# 快速入门 (Quickstart) + +## 关于本指南 (About this guide) + +本指南适用于那些希望尽快启动并运行 Namada 的人员。它将指导您安装 Namada、加入测试网、运行节点并获取一些代币。 + +## 安装 Namada (Installing Namada) + +请参阅[安装指南](./install.zh-CN.mdx)以获取有关安装 Namada 二进制文件的详细信息。本指南中的命令将假设您已将 Namada 二进制文件 (namada, namadan, namadaw, namadac) 放在您的$PATH中 + +如果二进制文件存储在某处,但不在您的路径中(可能您已下载了二进制文件),您可以使用以下命令将二进制文件添加到您的 $PATH 中: + +```shell copy +export PATH=$PATH: +``` + +如果您从源代码构建,并运行 make install,二进制文件将默认安装到您的 $PATH 中。 + +## 加入网络 (Joining a network) + +请参阅网[络页面](../networks.zh-CN.mdx)以获取有关如何加入网络的详细信息。本指南的其余部分将假设您使用 `namadac utils join-network --chain-id ` 命令加入了网络。 + +## 运行账本节点 (Run a ledger node) +我们推荐使用 [tmux](https://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/) 进行此步骤,它允许节点保持运行,而无需无限期地保持终端打开。如果没有,请跳到后续步骤。 + +```shell copy +tmux + +# inside the tmux/or not + +namadan ledger run + +# can detach the tmux (Ctrl-B then D) +``` + +对于更详细的输出,可以运行 + +```shell copy +NAMADA_LOG=info CMT_LOG_LEVEL=p2p:none,pex:error NAMADA_CMT_STDOUT=true namada ledger +``` + +这应该会同步您的节点到账本,这可能需要一些时间(取决于您的机器硬件以及创世和同步开始之间的时间)。在您的节点完全同步之前,后续命令(生成账户等)可能不会起作用。查询其他参与者的当前区块高度,以确保您已同步,以便继续进行。 + +## 生成账户并获取一些代币 (Generate an account and grab some tokens) + +首先,您需要一个隐式账户以接收代币。您可以使用以下命令生成一个: + +```shell copy +namadaw address gen --alias +``` +这将生成一个新账户,并将其存储在默认的密钥链中。您可以使用以下命令查看账户: + + +```shell copy +namadaw address list +``` + +## 获取代币(仅限测试网)(Grabbing the tokens (testnet only)) +测试网代币可以从[水龙头](https://faucet.heliax.click/)处获得。 + +## 接下来 (From here) +从这里开始,您可以尝试各种炫酷的事情。也许尝试[屏蔽您的 NAM](../users/shielded-accounts/shielded-transfer.zh-CN.mdx)、将您的代币绑定到[验证者以进行委托](../users/delegators.zh-CN.mdx),或成为[验证者](../operators/validators.mdx)。 diff --git a/packages/docs/pages/introduction/security.mdx b/packages/docs/pages/introduction/security.en-US.mdx similarity index 100% rename from packages/docs/pages/introduction/security.mdx rename to packages/docs/pages/introduction/security.en-US.mdx diff --git a/packages/docs/pages/introduction/security.uk-UA.mdx b/packages/docs/pages/introduction/security.uk-UA.mdx new file mode 100644 index 00000000..463d3eec --- /dev/null +++ b/packages/docs/pages/introduction/security.uk-UA.mdx @@ -0,0 +1,11 @@ +# Безпека та повідомлення про помилки + +Якщо ви виявили уразливість безпеки або потенційну уразливість в цьому проекті, будь ласка, повідомте нам про це якомога швидше, надіславши листа на [security@heliax.dev](mailto:security@heliax.dev). + +## Баг баунті + +Нижче показані поточні винагороди за виправлення помилок для Namada. Винагороди виплачуються в NAM. + +| Вразливість | Баунті | +| ----------- | ------ | +| Скоро | буде! | diff --git a/packages/docs/pages/networks.mdx b/packages/docs/pages/networks.en-US.mdx similarity index 100% rename from packages/docs/pages/networks.mdx rename to packages/docs/pages/networks.en-US.mdx diff --git a/packages/docs/pages/networks.uk-UA.mdx b/packages/docs/pages/networks.uk-UA.mdx new file mode 100644 index 00000000..453547e4 --- /dev/null +++ b/packages/docs/pages/networks.uk-UA.mdx @@ -0,0 +1,10 @@ +# Мережі Namada + +Ця сторінка присвячена мережам Namada. + +Існує два типи мереж: + +* [Mainnets](./networks/mainnets.mdx) - основні мережі +* [Testnets](./networks/testnets.mdx) - тестові мережі + +Ідентифікатори мереж mainnet мають префікс `main`, а ідентифікатори мереж testnet мають префікс `test`. diff --git a/packages/docs/pages/networks/_meta.en-US.json b/packages/docs/pages/networks/_meta.en-US.json new file mode 100644 index 00000000..a0983e5a --- /dev/null +++ b/packages/docs/pages/networks/_meta.en-US.json @@ -0,0 +1,4 @@ +{ + "mainnets" : "Mainnets", + "testnets": "Testnets" +} diff --git a/packages/docs/pages/networks/_meta.json b/packages/docs/pages/networks/_meta.json new file mode 100644 index 00000000..d29c3ec4 --- /dev/null +++ b/packages/docs/pages/networks/_meta.json @@ -0,0 +1,4 @@ +{ + "mainnets" : "Основні мережі", + "testnets": "Тестові мережі" +} diff --git a/packages/docs/pages/networks/_meta.uk-UA.json b/packages/docs/pages/networks/_meta.uk-UA.json new file mode 100644 index 00000000..d29c3ec4 --- /dev/null +++ b/packages/docs/pages/networks/_meta.uk-UA.json @@ -0,0 +1,4 @@ +{ + "mainnets" : "Основні мережі", + "testnets": "Тестові мережі" +} diff --git a/packages/docs/pages/networks/mainnets.mdx b/packages/docs/pages/networks/mainnets.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/mainnets.mdx rename to packages/docs/pages/networks/mainnets.en-US.mdx diff --git a/packages/docs/pages/networks/mainnets.uk-UA.mdx b/packages/docs/pages/networks/mainnets.uk-UA.mdx new file mode 100644 index 00000000..5e5716b3 --- /dev/null +++ b/packages/docs/pages/networks/mainnets.uk-UA.mdx @@ -0,0 +1,2 @@ +# Головні мережі +Ця сторінка буде оновлюватися і наповнюватися, коли буде запущена основна мережа. diff --git a/packages/docs/pages/networks/testnets.mdx b/packages/docs/pages/networks/testnets.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets.mdx rename to packages/docs/pages/networks/testnets.en-US.mdx diff --git a/packages/docs/pages/networks/testnets.uk-UA.mdx b/packages/docs/pages/networks/testnets.uk-UA.mdx new file mode 100644 index 00000000..5a2ad8db --- /dev/null +++ b/packages/docs/pages/networks/testnets.uk-UA.mdx @@ -0,0 +1,45 @@ +# Namada Testnets + +Для отримання додаткової інформації читайте: + +[Анонс публічних тестових мереж Namada](https://blog.namada.net/announcing-namada-public-testnets/) + +## Останній тестнет +- Публічний тестнет Namada 14: + - Від дати: 5 жовтня 2023 17:00 UTC + - Версія протоколу Namada: `v0.23.0`. + - Версія Cometbft: `0.37.2`. + - CHAIN_ID: `public-testnet-14.5d79b6958580`. + +Історію всіх тестнетів можна знайти [тут](./testnets/testnet-history.mdx). + +## Версії протоколу Namada + +Тестова мережа може використовувати різні версії протоколу Namada. Для детального ознайомлення з тим, що включає кожна версія протоколу, зверніться до [GitHub changelog](https://github.com/anoma/namada/tree/main/.changelog), де вказано, які зміни було зроблено між версіями. + +## Повідомити про ваду + +Якщо ви знайшли помилку, будь ласка, надішліть повідомлення про неї за допомогою [шаблону повідомлення про помилку](https://github.com/anoma/namada/issues/new/choose). + +## Як приєднатися до тестової мережі Namada + +1. [Налаштування середовища](./testnets/environment-setup.mdx) +2. [Інструкції з попередньої генерації](./testnets/pre-genesis.mdx) +3. [Налаштування валідатора попередньої генерації](../operators/validators/genesis-validator-setup.mdx) +4. [Застосування валідатора попередньої генерації](./testnets/genesis-validator-apply.mdx) +5. [Запуск валідатора генезису](../operators/validators/run-your-genesis-validator.mdx) +6. [Запуск повного вузла](../operators/ledger/running-a-full-node.mdx) +7. [Стаємо валідатором після генерації](./testnets/post-genesis-validator.mdx) + +## Блок-схема тестової мережі +![testnet_flowchart](/images/testnet_flowchart.png) + +Публічна тестова мережа Namada є бездозвільною, будь-хто може приєднатися до неї без дозволу централізованої сторони. Очікуються часті оновлення (кожні два тижні). + +## Блок оглядач + +The block explorer is currently in development. The latest version can be found at [namada.world](https://namada.world/) + +## Спільнота + +Для запитань та відгуків, будь ласка, використовуйте [GitHub](https://github.com/anoma/namada/issues) або [Discord](https://discord.gg/namada). Не забудьте [підписатися Namada](https://twitter.com/namada) у Twitter, щоб отримувати кумедні меми та оновлення тестової мережі. diff --git a/packages/docs/pages/networks/testnets/_meta.en-US.json b/packages/docs/pages/networks/testnets/_meta.en-US.json new file mode 100644 index 00000000..1c02070b --- /dev/null +++ b/packages/docs/pages/networks/testnets/_meta.en-US.json @@ -0,0 +1,12 @@ +{ + "environment-setup": "Environment setup", + "migrating-testnets": "Migrating testnets", + "pre-genesis": "Pre-genesis validator setup", + "genesis-validator-apply": "Applying as a genesis validator", + "joining-the-testnet": "Joining the latest Testnet", + "post-genesis-validator": "Becoming a validator after genesis", + "testnet-history": "History of testnets", + "pow": "Using the testnet faucet", + "faq": "FAQ", + "campfire": "Campfire Testnet" +} diff --git a/packages/docs/pages/networks/testnets/_meta.uk-UA.json b/packages/docs/pages/networks/testnets/_meta.uk-UA.json new file mode 100644 index 00000000..1c02070b --- /dev/null +++ b/packages/docs/pages/networks/testnets/_meta.uk-UA.json @@ -0,0 +1,12 @@ +{ + "environment-setup": "Environment setup", + "migrating-testnets": "Migrating testnets", + "pre-genesis": "Pre-genesis validator setup", + "genesis-validator-apply": "Applying as a genesis validator", + "joining-the-testnet": "Joining the latest Testnet", + "post-genesis-validator": "Becoming a validator after genesis", + "testnet-history": "History of testnets", + "pow": "Using the testnet faucet", + "faq": "FAQ", + "campfire": "Campfire Testnet" +} diff --git a/packages/docs/pages/networks/testnets/campfire.mdx b/packages/docs/pages/networks/testnets/campfire.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/campfire.mdx rename to packages/docs/pages/networks/testnets/campfire.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/campfire.uk-UA.mdx b/packages/docs/pages/networks/testnets/campfire.uk-UA.mdx new file mode 100644 index 00000000..95cf2ff1 --- /dev/null +++ b/packages/docs/pages/networks/testnets/campfire.uk-UA.mdx @@ -0,0 +1,53 @@ +import { Callout } from 'nextra-theme-docs' + +# The Namada Campfire Testnet ⛺🔥 + + +Паралельно з тестовою мережею "валідатора" працює тестова мережа Namada Campfire ⛺🔥. Це тестова мережа, якою керує спільнота, наразі підтримується та організовується [Luminara collective] (https://luminara.icu), невеликою групою прихильників Namada. На Campfire зазвичай використовується остання версія (або попередня версія), яка може відрізнятися від тестової мережі валідатора. Ви можете переглянути версію і дізнатися більше на https://testnet.luminara.icu + + +## Приєднання + + +Найактуальніші документи про приєднання до Табірної ватри ⛺🔥 можна знайти [тут] (https://knowabl.notion.site/Campfire-testnet-5e4c1df53ab64b818a55bfcf36ccc550). + + +### Передумови + + +Наразі у документації Campfire ⛺🔥 детально описано підтримку лише машин з Ubuntu. + + +Користувачеві потрібно мати встановлений [Stack-Orchestrator](https://github.com/vknowable/stack-orchestrator), який є загальним інструментом для швидкого та гнучкого запуску та керування стеком програмного забезпечення в контейнерному середовищі. Документація знаходиться у [README](https://github.com/vknowable/stack-orchestrator/README.md) репозиторію, а сам інструмент можна встановити, виконавши наступну команду: + +```bash copy +git clone https://github.com/vknowable/stack-orchestrator.git +cd stack-orchestrator +scripts/namada-quick-install.sh +exit +``` + +Після цього рекомендується встановити Namada за допомогою наступного образу Docker (при цьому версію в цій команді може знадобитися [відповідно оновити](https://testnet.luminara.icu): +```bash copy +export NAMADA_TAG=v0.23.1 +docker pull spork666/namada:$NAMADA_TAG +docker image tag spork666/namada:$NAMADA_TAG cerc/namada:local +mkdir -p ~/.local/share/namada +``` + +### Запуск вузла + +Після цього користувач може виконати наступну команду для запуску вузла: + +```bash copy +curl -o ~/luminara.env https://testnet.luminara.icu/luminara.env +laconic-so --stack public-namada deploy --env-file ~/luminara.env up +echo "export CONTAINER=$(docker ps -q)" | sudo tee -a /etc/profile +CONTAINER=$(docker ps -q) +``` + +Відповідні та детальніші документи можна знайти [тут](https://knowabl.notion.site/From-scratch-to-syncing-in-10-minutes-c0a56b34cdec447fbe2a5cd8f559f0bb). + +## Взаємодія з тестовою мережею + +Колектив [Luminara team](https://luminara.icu) також створив [Namada CLI cheat sheet](https://www.notion.so/Namada-CLI-cheat-sheet-b54b220610bd4e7e91548e32d7ac3c8a), який є доступним і корисним для будь-якого користувача Namada. diff --git a/packages/docs/pages/networks/testnets/environment-setup.mdx b/packages/docs/pages/networks/testnets/environment-setup.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/environment-setup.mdx rename to packages/docs/pages/networks/testnets/environment-setup.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/environment-setup.uk-UA.mdx b/packages/docs/pages/networks/testnets/environment-setup.uk-UA.mdx new file mode 100644 index 00000000..09a2f704 --- /dev/null +++ b/packages/docs/pages/networks/testnets/environment-setup.uk-UA.mdx @@ -0,0 +1,69 @@ +import {Steps} from 'nextra-theme-docs' +import { Callout } from 'nextra-theme-docs' + +# Налаштування середовища + + +Якщо ви не хочете збирати Namada з коду, ви можете [встановити Namada з бінарних файлів](../../introduction/install/binaries.mdx).Зауважте, що збірка з коду може бути складним процесом і не рекомендується для початківців. + + +Експортуйте наступні змінні: + +```bash copy +export NAMADA_TAG=v0.23.1 +``` + + +## Встановлення Namada + +### Встановіть усі необхідні компоненти + - [Rust](https://www.rust-lang.org/tools/install) + - [CometBFT](../../introduction/installing-cometbft.mdx) + - [Protobuf](../../introduction/install/source/pre-requisites.mdx) + +### Клонуйте репозиторій namada та перевірте правильність версій + +```shell copy +git clone https://github.com/anoma/namada && cd namada && git checkout $NAMADA_TAG +``` +### Збираємо двійкові файли +```bash copy +make install +``` +- Можливо, вам доведеться встановити деякі додаткові вимоги (linux): +```bash copy +sudo apt-get update -y +sudo apt-get install build-essential make pkg-config libssl-dev libclang-dev -y +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` + +## Встановлення CometBFT + +### Див. розділ про встановлення CometBFT [тут](../../introduction/installing-cometbft.mdx) для отримання інструкцій щодо встановлення CometBFT. +### Скопіюйте двійкові файли namada і CometBFT кудись у $PATH (або скористайтеся відносними шляхами). Цей крок може бути необхідним, а може і не бути. + +- двійкові файли namada можна знайти в `/target/release`.- CometBFT, ймовірно, знаходиться у `$HOME/Downloads/cometbft`. + +## Перевірте порти + +### Відкрийте порти на вашому комп'ютері: + - 26656 + - 26657 +### Щоб перевірити, чи відкриті порти, ви можете налаштувати простий сервер і закрутити порт з іншого хоста + +- У папці namada виконайте +``` bash +{ printf 'HTTP/1.0 200 OK\r\nContent-Length: %d\r\n\r\n' "$(wc -c < namada)"; cat namada; } | nc -l $PORT +``` + +- З іншого хоста запустіть одну з двох команд: + - `nmap $IP -p$PORT` + - `curl $IP:$PORT >/dev/null`. + +### Перевірка встановлення +- Переконайтеся, що ви використовуєте правильну версію CometBFT + - `cometbft version` має вивести `0.37.2`. +- Переконайтеся, що ви використовуєте правильну версію Namada + - `namada --version` має вивести `Namada v0.23.1`. + + diff --git a/packages/docs/pages/networks/testnets/faq.mdx b/packages/docs/pages/networks/testnets/faq.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/faq.mdx rename to packages/docs/pages/networks/testnets/faq.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/faq.uk-UA.mdx b/packages/docs/pages/networks/testnets/faq.uk-UA.mdx new file mode 100644 index 00000000..6036c932 --- /dev/null +++ b/packages/docs/pages/networks/testnets/faq.uk-UA.mdx @@ -0,0 +1,36 @@ +# Часті запитання про Namada + +**Питання**: Як приєднатися як валідатор після генезису?** *Питання: Як приєднатися як валідатор після генезису? + +**A:** Приєднатися як валідатор після генезису можна, дотримуючись [цих інструкцій](../../operators/validators/post-genesis-validator-setup.mdx). + +### З: Як користуватися змішувачем? + +**В:** Доступ до змішувача можна отримати [тут](https://faucet.heliax.click) + +### **Питання**: Де я можу побачити доступні токени на Faucet? + +**В:** Наведений нижче список токенів доступний для виведення зі крану: + +`NAM, DOT, ETH, BTC`. + +Є ще декілька, але ми залишаємо вам завдання з'ясувати, які саме 🤔. +ПІДКАЗКА: `namadac balance` + +### З: Як використовувати Ethereum Bridge? + +**В:** Міст Ethereum ще не реалізовано станом на 0.23.0. Слідкуйте за [Змінами](https://github.com/anoma/namada/tree/main/.changelog) 👀, щоб дізнатися, коли він буде офіційно випущений. + +### **Питання: Як я можу здійснити переказ IBC? + +**A:** Починаючи з `v0.23.1` ви можете слідувати документації [тут!](../../users/ibc.mdx) + +### **Питання: Які вимоги потрібні для того, щоб бути Користувачем/Валідатором?** + +**В:** Дивіться [вимоги до обладнання](../../operators/hardware.mdx). + +Для того, щоб збирати двійкові файли з коду, потрібно щонайменше 16 ГБ оперативної пам'яті. + +### Питання: Де знайти двійкові файли для запуску Namada, якщо я не хочу збирати з коду? + +**В:** Дивіться [Встановлення Namada з двійкових файлів](../../introduction/install/binaries.mdx) diff --git a/packages/docs/pages/networks/testnets/genesis-validator-apply.mdx b/packages/docs/pages/networks/testnets/genesis-validator-apply.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/genesis-validator-apply.mdx rename to packages/docs/pages/networks/testnets/genesis-validator-apply.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/genesis-validator-apply.uk-UA.mdx b/packages/docs/pages/networks/testnets/genesis-validator-apply.uk-UA.mdx new file mode 100644 index 00000000..2bd306c9 --- /dev/null +++ b/packages/docs/pages/networks/testnets/genesis-validator-apply.uk-UA.mdx @@ -0,0 +1,38 @@ +import { Callout } from 'nextra-theme-docs' + +# Подання заявки на валідацію генезису + +Перед запуском тестової мережі ви можете подати заявку на валідацію генезису. + +### Налаштування + +Дотримуйтесь [цього посібника](../../operators/validators/genesis-validator-setup.mdx#pre-genesis), щоб згенерувати ваші файли валідатора "pre-genesis". + +Після цього ви отримаєте файл `validator.toml`, вміст якого буде виглядати приблизно так: + +```toml +[validator.1337-validator] +consensus_public_key = "00056fff5232da385d88428ca2bb2012a4d83cdf5c697864dde34b393333a72268" +eth_cold_key = "0103d985a8345ef505cf139c3dfbd5f5a1da73d2864c62ce9d0a98da73898a59f6f9" +eth_hot_key = "010241bb691e44dd3c4263522474e45751e97307e92326250f96c1bcd0a06880875d" +account_public_key = "00f1bd321be2e23b9503653dd50fcd5177ca43a0ade6da60108eaecde0d68abdc8" +protocol_public_key = "0054c213d2f8fe2dd3fc5a41a52fd2839cb49643d960d7f75e993202692c5d8783" +dkg_public_key = "6000000054eafa7320ddebf00c9487e5f7ea5107a8444f042b74caf9ed5679163f854577bf4d0992a8fd301ec4f3438c9934c617a2c71649178e536f7e2a8cdc1f8331139b7fd9b4d36861f0a9915d83f61d7f969219f0eba95bb6fa45595425923d4c0e" +commission_rate = "0.01" +max_commission_rate_change = "0.05" +net_address = "1.2.3.4:26656" +tendermint_node_key = "00e1a8fe1abceb700063ab4558baec680b64247e2fd9891962af552b9e49318d8d" +``` + +Цей файл містить лише публічну інформацію і є безпечним для публічного використання. + + +Поле `tendermint_node_key` названо так зі старих причин. Насправді це консенсусний відкритий ключ CometBFT. + + +### Надсилання конфігурації +Якщо ви хочете бути валідатором генезису для тестової мережі, будь ласка, надішліть запит на https://github.com/anoma/namada-testnets, додавши ваш файл validator.toml до відповідного каталогу (наприклад, `namada-public-testnet-2` для другої публічної тестової мережі), перейменувавши його на `$alias.toml`. +Наприклад, якщо ви вибрали псевдонім "bertha", надішліть файл з назвою `bertha.toml`. Ви можете подивитися, як виглядає приклад PR [тут](https://github.com/anoma/namada-testnets/pull/29). + +### Дочекатися `CHAIN_ID` +Зачекайте, поки відповідний `CHAIN_ID` буде розповсюджено. diff --git a/packages/docs/pages/networks/testnets/joining-the-testnet.mdx b/packages/docs/pages/networks/testnets/joining-the-testnet.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/joining-the-testnet.mdx rename to packages/docs/pages/networks/testnets/joining-the-testnet.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/joining-the-testnet.uk-UA.mdx b/packages/docs/pages/networks/testnets/joining-the-testnet.uk-UA.mdx new file mode 100644 index 00000000..a7b572df --- /dev/null +++ b/packages/docs/pages/networks/testnets/joining-the-testnet.uk-UA.mdx @@ -0,0 +1,13 @@ +# Приєднання до останньої версії тестової мережі + +Залежно від того, чи є ви валідатором генезису, ви можете приєднатися до останньої версії testnet або як валідатор генезису, або як повноправний вузол. + +## Приєднання як валідатор генезису +Приєднання до валідатора тестової мережі ідентичне приєднанню до валідатора основної мережі. + +Тому, будь ласка, зверніться до [цих документів](../../operators/validators/run-your-genesis-validator.mdx). + +## Приєднання як повного вузла +Якщо ви не є валідатором генезису, будь ласка, виконайте кроки для [приєднання як повноправний вузол](../../operators/ledger/running-a-full-node.mdx). + +Після цього можна перевірити, чи є ви валідатором, [ставши постгенезисним валідатором](./post-genesis-validator.mdx). diff --git a/packages/docs/pages/networks/testnets/migrating-testnets.mdx b/packages/docs/pages/networks/testnets/migrating-testnets.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/migrating-testnets.mdx rename to packages/docs/pages/networks/testnets/migrating-testnets.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/migrating-testnets.uk-UA.mdx b/packages/docs/pages/networks/testnets/migrating-testnets.uk-UA.mdx new file mode 100644 index 00000000..e78ffddf --- /dev/null +++ b/packages/docs/pages/networks/testnets/migrating-testnets.uk-UA.mdx @@ -0,0 +1,74 @@ +import { Callout, Steps } from 'nextra-theme-docs' + +# Кроки для міграції тестових мереж + +Цей посібник допоможе вам перенести вузол валідатора з однієї тестової мережі до іншої. Ці кроки є необов'язковими, і для більшості тестових мереж вони не знадобляться. + +## Скидання вузла валідатора (необов'язково) + + +З випуском `v0.19.0` ми ввели обов'язкові ключі для валідаторів. Це ключі `eth_hot_key` і `eth_cold_key`, які використовуються для моста Ethereum. + + +### Знаходження базового каталогу namada + +Залежно від тестової мережі, з якої ви мігруєте, базовий каталог може знаходитися у різних місцях. +З цієї причини ми збережемо шлях до базового каталогу у змінну. + +#### До `v0.15.3 +Якщо ви мігруєте з тестової мережі ДО `v0.15.3`, то ваш домашній каталог і відповідні файли будуть розташовані у каталозі `.namada`. Розташування цього каталогу залежить від того, де ви спочатку виконали команду `namadac utils join-network --chain-id --genesis-validator `. Він буде розміщений у каталозі, у якому було виконано цю команду. + +Після знаходження ви можете зберегти шлях до базового каталогу у змінну. Наприклад, якщо команду join-network було виконано з вашого домашнього каталогу, ви можете запустити її: +```bash copy +export BASE_DIR=$HOME/.namada +``` + +#### Після `v0.15.3` +Якщо ви мігруєте з тестової мережі ПІСЛЯ `v0.15.3`, то ваш базовий каталог і відповідні файли будуть розташовані у `.local/share/namada` у Linux і `Library/Application Support/Namada` у MacOS. Ви можете перевірити каталог за замовчуванням на вашому комп'ютері шляхом запуску: +```bash copy +export BASE_DIR=$(namadac utils default-base-dir) +``` + + + +Технічно, правильним каталогом буде той, який призначено змінній `$XDG_DATA_HOME`, +але якщо ви не встановили цю змінну, то за замовчуванням вона буде відповідати наведеному вище. + + + +### ВАЖЛИВО! Збережіть папку `pre-genesis` в директорії бази даних книги + +Перш ніж видаляти будь-які папки, ми хочемо переконатися, що зберегли нашу папку `pre-genesis`. Ця тека містить ваші ключі валідатора, і ми хочемо переконатися, що не втратимо їх. + +```bash copy +mkdir $HOME/backup-pregenesis && cp -r $BASE_DIR/pre-genesis $HOME/backup-pregenesis/ +``` + +### **Переконайтеся, що ключі збережено**. + +`ls backup-pregenesis` має вивести збережений `wallet.toml`. + +### Видаліть базовий каталог + +```bash copy +rm -rf $BASE_DIR/* +``` + +### Перевірте правильність двійкових файлів namada та cometbft. + +`namada --version` should yield `v0.22.0` and `cometbft version` should output `0.37.2` + + + +### Створіть каталог pre-genesis + +```bash copy +mkdir $BASE_DIR/pre-genesis +``` + +### Скопіюйте файл резервної копії назад до теки `$BASE_DIR/pre-genesis`. +```bash copy +cp -r backup-pregenesis/* $BASE_DIR/pre-genesis/ +``` + + diff --git a/packages/docs/pages/networks/testnets/post-genesis-validator.mdx b/packages/docs/pages/networks/testnets/post-genesis-validator.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/post-genesis-validator.mdx rename to packages/docs/pages/networks/testnets/post-genesis-validator.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/post-genesis-validator.uk-UA.mdx b/packages/docs/pages/networks/testnets/post-genesis-validator.uk-UA.mdx new file mode 100644 index 00000000..4d4b1539 --- /dev/null +++ b/packages/docs/pages/networks/testnets/post-genesis-validator.uk-UA.mdx @@ -0,0 +1,20 @@ +# Станьте валідатором після генезису + +Після генезису ви все ще можете приєднатися до мережі як користувач і стати валідатором через самозв'язування. + +Після [приєднання до мережі як повного вузла](../../operators/ledger/running-a-full-node.mdx), ви повинні [створити обліковий запис валідатора](../../operators/validators/post-genesis-validator-setup.mdx). + +Після цього вам потрібно буде збільшити `bonded-stake` вашого валідатора, що можна зробити за допомогою самозв'язаних токенів, отриманих зі змішувача. + + +## Зв'язування + +Дотримуйтесь [цього керівництва](../../operators/validators/staking.mdx#self-bonding) про те, як самостійно зв'язати токени валідатора. + +## Перевірити зв'язаний стейк +Для того, щоб голосувати за блоки, валідатор повинен мати достатньо `bonded-stake`, щоб бути включеним в "consensus-set" валідаторів. Валідатор знаходиться в консенсус-сеті тоді і тільки тоді, коли він має достатньо `bonded-stake`, щоб бути в топ 128 валідаторів за показником `bonded-stake`. + +Для того, щоб запитати bonded-stake для всіх валідаторів в поточній епосі, виконайте наступну команду: +```bash copy +namada client bonded-stake +``` diff --git a/packages/docs/pages/networks/testnets/pow.mdx b/packages/docs/pages/networks/testnets/pow.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/pow.mdx rename to packages/docs/pages/networks/testnets/pow.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/pow.uk-UA.mdx b/packages/docs/pages/networks/testnets/pow.uk-UA.mdx new file mode 100644 index 00000000..3c6ec369 --- /dev/null +++ b/packages/docs/pages/networks/testnets/pow.uk-UA.mdx @@ -0,0 +1,15 @@ +import { Callout } from 'nextra-theme-docs' + +# Рішення PoW на Namada + + +Посилання на [кран][https://faucet.heliax.click](https://faucet.heliax.click) + + +Починаючи з `v0.23.1`, кран Namada було змінено на виклик API до сервера. Для того, щоб запросити токени, необхідно пройти перевірку на підтвердження роботи, щоб запобігти спаму крана. + + +Зауважте, що цей пункт не включено до Mainnet, оскільки він має відношення до testnet. + + +Оскільки [комісії сплачуються неявними рахунками](../../users/fees.mdx), рекомендується на першому кроці згенерувати NAM на один з цих рахунків. Після цього, використовуючи прапорець `--gas-payer`, ви можете вказати адресу неявного облікового запису для оплати транзакції. diff --git a/packages/docs/pages/networks/testnets/pre-genesis.mdx b/packages/docs/pages/networks/testnets/pre-genesis.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/pre-genesis.mdx rename to packages/docs/pages/networks/testnets/pre-genesis.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/pre-genesis.uk-UA.mdx b/packages/docs/pages/networks/testnets/pre-genesis.uk-UA.mdx new file mode 100644 index 00000000..0647975a --- /dev/null +++ b/packages/docs/pages/networks/testnets/pre-genesis.uk-UA.mdx @@ -0,0 +1,9 @@ +# Інструкції валідатора попереднього генезису + +Пре-генеза визначається як "перед" першим (так званим генезисом) блоком. +На генезисі буде набір валідаторів з попередньо визначеною кількістю токенів (описано в файлі генезису). + +Для тестових мереж є можливість подати заявку на участь у генерації валідаторів. +Для цього, будь ласка, виконайте [ці кроки](./genesis-validator-apply.mdx). + +Якщо тестова мережа вже працює і вас не було обрано валідатором попередньої генерації, будь ласка, виконайте кроки для [приєднання як повного вузла](../../operators/ledger/running-a-full-node.mdx). Якщо ви все ще бажаєте пройти валідацію, ви можете виконати кроки для [стати пост-генезис-валідатором](./post-genesis-validator.mdx). diff --git a/packages/docs/pages/networks/testnets/testnet-history.mdx b/packages/docs/pages/networks/testnets/testnet-history.en-US.mdx similarity index 100% rename from packages/docs/pages/networks/testnets/testnet-history.mdx rename to packages/docs/pages/networks/testnets/testnet-history.en-US.mdx diff --git a/packages/docs/pages/networks/testnets/testnet-history.uk-UA.mdx b/packages/docs/pages/networks/testnets/testnet-history.uk-UA.mdx new file mode 100644 index 00000000..855e403d --- /dev/null +++ b/packages/docs/pages/networks/testnets/testnet-history.uk-UA.mdx @@ -0,0 +1,253 @@ +import { Callout } from 'nextra-theme-docs' + +# Оновлення +На цій сторінці описано всі кроки встановлення, необхідні для різних оновлень тестових мереж. + + +## Останнє оновлення +- Namada public testnet 14 (soft-upgrade hot-fix): + - From date: 19th of October 2023 9:00 UTC + - Namada protocol version: `v0.23.1` + - Cometbft version: `0.37.2` + - CHAIN_ID: `public-testnet-14.5d79b6958580` + +Як оновити до останньої версії testnet: +Оновлення є м'яким оновленням, що означає, що нові двійкові файли не порушують консенсус і є сумісними зі старими версіями. Валідаторам рекомендується оновитися до останньої версії двійкових файлів, яку можна знайти [тут](https://github.com/anoma/namada/releases/tag/v0.23.1) + +Потім просто зупиніть поточну книгу і перезапустіть її з новими двійковими файлами. Це можна зробити за допомогою наступних команд: + +```bash copy +OS="Linux" # Or OS="Darwin" for Mac +wget https://github.com/anoma/namada/releases/download/v0.23.1/namada-v0.23.1-${OS}-x86_64.tar.gz +tar -xvf namada-v0.23.1-${OS}-x86_64.tar.gz --strip-components 1 -C /usr/local/bin/ #sudo may be required +killall namadan +namada --version #should output v0.23.1 +NAMADA_CMT_STDOUT=true namada node ledger run +``` + + +Зверніть увагу, що двійкові файли Linux `v0.23.1` вимагають Ubuntu LTS, а це означає, що деякі старіші версії Ubuntu будуть несумісними (лише Ubuntu `22.04` або новіші). У цьому випадку для оновлення рекомендується збирати з вихідних кодів. + + +## Остання версія Testnet + +- Namada public testnet 14: + - From date: 5th of October 2023 17:00 UTC + - Namada protocol version: `v0.23.0` + - Cometbft version: `0.37.2` + - CHAIN_ID: `public-testnet-14.5d79b6958580` + + +## Хронологія історії Testnet + +- Namada public testnet 13 (offline): + - From date: 12th of September 2023 17:00 UTC + - Namada protocol version: `v0.22.0` + - Cometbft version: `0.37.2` + - CHAIN_ID: `public-testnet-13.facd514666d5` + +- Namada public testnet 12: + - From date: 17th of August 2023 17.00 UTC + - Namada protocol version: `v0.21.1` + - Cometbft version: `0.37.2` + - CHAIN_ID: `public-testnet-12.fedec12f3428` + +- Namada public testnet 11: + - From date: 2nd of August 2023 17.00 UTC + - Namada protocol version: `v0.20.1` + - Cometbft version: `0.37.2` + - CHAIN_ID: `public-testnet-11.cc649ddd49b0` + +- Namada public testnet 10: + - From date: 29th of June 2023 17.00 UTC + - Namada protocol version: `v0.17.5` + - Cometbft version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-10.3718993c3648` + +- Namada public testnet 9: + - From date: 20th of June 2023 17.00 UTC + - Namada protocol version: `v0.17.3` + - Cometbft version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-9.3718993c3648` + +- Namada public testnet 8: + - From date: 17th of May 2023 17.00 UTC + - Namada protocol version: `v0.15.3` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-8.0.b92ef72b820` + +- Namada public testnet 7: + + - From date: 24th of April 2023 17.00 UTC + - Namada protocol version: `v0.15.1` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-7.0.3c5a38dc983` + +- Namada public testnet 6: + + - From date: 29th of March 2023 17.00 UTC + - Namada protocol version: `v0.14.3` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-6.0.a0266444b06` + +- Namada public testnet 5: + + - From date: 15th of March 2023 + - Namada protocol version: `v0.14.2` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-5.0.d25aa64ace6` + +- Namada public testnet 4: + + - From date: 22nd of February 2023 + - Namada protocol version: `v0.14.1` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-4.0.16a35d789f4` + +- Namada public testnet 3 hotfix (did not suffice): + + - From date: 13th of February 2023 + - Namada protocol version: `v0.13.4` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-3.0.81edd4d6eb6` + +- Namada public testnet 3: + + - From date: 9th of February 2023 + - Namada protocol version: `v0.13.3` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-3.0.81edd4d6eb6` + +- Namada public testnet 2.1.2 hotfix: + + - From date: 25th of January 2023 + - Namada protocol version: `v0.13.3` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-2.1.4014f207f6d` + + Due to a bug, a [hotfix](https://github.com/anoma/namada/releases/tag/v0.13.3) was released. + This needed to be installed and applied before `18:00:00 UTC` on `2023-01-25`. + +- Namada public testnet 2.1.2: + + - From date: 24th of January 2023 + - Namada protocol version: `v0.13.2` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-2.1.4014f207f6d` + +- Namada public testnet 2.1: + - From date: 17th of January 2023 + - Namada protocol version: `v0.13.1-hardfork` (hardfork) + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-2.0.2feaf2d718c` + +The above hardfork was meant to take effect on Block Height `37370`, but some issues arose. You can read more [here](https://blog.namada.net/namada-testnet-v0-13-0-upgrade-postmortem). + +- Namada public testnet 2.0: + + - From date: 12th of January 2023 + - Namada protocol version: `v0.13.0` + - Tendermint version: `v0.1.4-abciplus` + - CHAIN_ID: `public-testnet-2.0.2feaf2d718c` + +- Namada public testnet 1: + - Namada protocol version: `v0.12.0` + - Tendermint version: `v0.1.4-abciplus` + - Genesis time: 20th of December 2022 at 17:00 UTC + - CHAIN_ID: `public-testnet-1.0.05ab4adb9db` + + +## Upgrade History: + + +***19/05/2023*** `public-testnet-8` hot-fix + +Due to some issues with our mempool validation, the testnet halted starting at block height `8073`. We fixed this issue and released a hot-fix version to a subset of the validators. This was sufficient to keep the testnet going. It did require some validators to resync the testnet. +The chain was launched with chain-id `public-testnet-8.0.b92ef72b820` + +***24/04/2023*** `public-testnet-7` (offline) + +The testnet launched on 24/04/2023 at 17:00 UTC with the genesis validators from `public-testnet-7`. It launches with [version v0.15.1](https://github.com/anoma/namada/releases/tag/v0.15.1) +The chain was launched with chain-id `public-testnet-7.0.3c5a38dc983`. + +The intended fix to solve the storage issue was only partially solved. This led to `v0.15.3` which intended to fix these issues. + + +***13/02/2023*** `public-testnet-3` + +On *09/02/2023* the Namada chain `public-testnet-3` halted due to a bug in the Proof of Stake implementation when handling an edge case. Over the weekend, the team were able to fix and test a new patch that resolves the issue at hand. On *13/02/2023 11:30 UTC*, we were able to recover the network by having internal validators upgrade to the new patch. We are now calling on validators to upgrade to the new testnet as well, which will allow you to interact with the recovered chain. + +**Upgrading** +1. Begin by stopping all instances of the namada node +```bash copy +killall namadan +``` +2. Build the new tag (or download the binaries [here](https://github.com/anoma/namada/releases/tag/v0.13.4)) +```bash copy +cd namada +export NAMADA_TAG=v0.13.4 +make build-release +``` +3. Copy the new binaries to path. More in depth instructions can be found at [here](./environment-setup.mdx) +4. Once this has been completed, **the node must tesync from genesis** (see below) + +**How to resync from genesis:** +1. As a precautionary measure, make a backup of your pregenesis keys +```bash copy +mkdir backup-pregenesis && cp -r .namada/pre-genesis backup-pregenesis/ +``` +2. Delete the relevant folder in .namada +```bash copy +rm -r .namada/public-testnet-3.0.81edd4d6eb6 +rm .namada/public-testnet-3.0.81edd4d6eb6.toml +``` +WARNING: Do not delete the entire `.namada` folder, as it contains your pre-genesis keys. If this is accidentally done, you will have to copy over the backup-pregenesis file. See [these instructions](../../operators/validators/run-your-genesis-validator.mdx) for more details +3. Rejoin the network +```bash copy +export CHAIN_ID="public-testnet-3.0.81edd4d6eb6" +namada client utils join-network \ +--chain-id $CHAIN_ID --genesis-validator $ALIAS +``` +4. Run the node. One can simply run the ledger again using the familiar command +```bash copy + NAMADA_CMT_STDOUT=true namada node ledger run + ``` + +Please reach out with any questions if you have any. This upgrade can be done asynchronously, but if you wish to continue validating the chain and testing our features, you must execute the above steps. + +### Hotfix for Testnet `public-testnet-2.1.4014f207f6d` + +***27/01/2023*** + +The hotfixed testnet ran during the week, when a strange bug caused the network to stall. The core team spent 1 week investigating the cause of the bug, and the result they found was quite interesting. If you are curious about the specific details of the bug, please have a read through Ray's blog post [here](https://blog.namada.net/explaining-the-namada-0-13-3-consensus-fork/). + +***25/01/2023*** + +At around 06:15 UTC 25/01/2023, a validator with very little stake was scheduled to become part of the active validator set. From this tx, we discovered a conversion bug between the Namada state machine and Cometbft, which lead to a crash in the node. +A patch was released [v0.13.3](https://github.com/anoma/namada/releases/tag/v0.13.3) in order to deal with this issue. + + +***23/01/2023*** + +A new testnet was released before the fortnightly testnet release schedule due to the below hardfork not working as intended. Follow the steps in [setting up a new testnet](./environment-setup.mdx) + +### Hardfork v0.13.1 + +This hardfork is set to be instantiated at block height `37370`, which is predicted to occur at around 17.00 UTC on 18/01/2023. + +**Requirements to do before 17.00 UTC 18/01/2023** + +In order to install this upgrade, a user or validator must + +1. [Download the binaries](https://github.com/anoma/namada/releases/tag/v0.13.1-hardfork) or install them [from source](https://github.com/anoma/namada/releases/tag/v0.13.1-hardfork) + +2. Ensure the versions are correct, such that `/namada --version` is `v0.13.1-hardfork` + +3. Interrupt the `namada ledger` by the interrupt command `^C` + +4. Install the binaries onto `$PATH` (this depends on your machine). This must be done after interrupting the ledger, as otherwise an error is likely to be thrown. + +5. As soon as possible, restart the ledger by running `NAMADA_CMT_STDOUT=true namada node ledger run` + +The ledger will then update correctly at the correct height. In order to ensure a smooth fork, please do this as soon as possible. + diff --git a/packages/docs/pages/operators.mdx b/packages/docs/pages/operators.en-US.mdx similarity index 100% rename from packages/docs/pages/operators.mdx rename to packages/docs/pages/operators.en-US.mdx diff --git a/packages/docs/pages/operators.uk-UA.mdx b/packages/docs/pages/operators.uk-UA.mdx new file mode 100644 index 00000000..096915d9 --- /dev/null +++ b/packages/docs/pages/operators.uk-UA.mdx @@ -0,0 +1,10 @@ +# Посібник для операторів + +Цей посібник призначений для операторів повних вузлів Namada. Це стосується як повних вузлів, так і вузлів валідаторів. +Посібник передбачає, що ви вже встановили вузол і знайомі з основами роботи з ним. + +## Зміст + +- [Запуск повноцінного вузла](./operators/ledger.mdx) +- [Запуск вузла валідатора](./operators/validators.mdx) +- [Налаштування локальної мережі](./operators/local-network.mdx) diff --git a/packages/docs/pages/operators/_meta.en-US.json b/packages/docs/pages/operators/_meta.en-US.json new file mode 100644 index 00000000..48cf75e9 --- /dev/null +++ b/packages/docs/pages/operators/_meta.en-US.json @@ -0,0 +1,9 @@ +{ + "ledger": "Running a full node", + "validators": "Validators", + "local-network": "Setting up a local network", + "ibc": "IBC Relayers", + "troubleshooting": "Troubleshooting", + "eth-bridge": "Eth bridge", + "hardware": "Hardware" +} \ No newline at end of file diff --git a/packages/docs/pages/operators/_meta.json b/packages/docs/pages/operators/_meta.json index 3b5ba068..48cf75e9 100644 --- a/packages/docs/pages/operators/_meta.json +++ b/packages/docs/pages/operators/_meta.json @@ -3,5 +3,7 @@ "validators": "Validators", "local-network": "Setting up a local network", "ibc": "IBC Relayers", - "troubleshooting": "Troubleshooting" + "troubleshooting": "Troubleshooting", + "eth-bridge": "Eth bridge", + "hardware": "Hardware" } \ No newline at end of file diff --git a/packages/docs/pages/operators/_meta.uk-UA.json b/packages/docs/pages/operators/_meta.uk-UA.json new file mode 100644 index 00000000..0735d8d1 --- /dev/null +++ b/packages/docs/pages/operators/_meta.uk-UA.json @@ -0,0 +1,9 @@ +{ + "ledger": "Запуск повноцінного вузла", + "validators": "Валідатори", + "local-network": "Запуск локальної мережі", + "ibc": "IBC Ретранслятор", + "troubleshooting": "Усунення несправностей", + "eth-bridge": "Міст Etherum", + "hardware": "Апаратне забезпечення" +} diff --git a/packages/docs/pages/operators/eth-bridge.mdx b/packages/docs/pages/operators/eth-bridge.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/eth-bridge.mdx rename to packages/docs/pages/operators/eth-bridge.en-US.mdx diff --git a/packages/docs/pages/operators/eth-bridge.uk-UA.mdx b/packages/docs/pages/operators/eth-bridge.uk-UA.mdx new file mode 100644 index 00000000..4541c716 --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge.uk-UA.mdx @@ -0,0 +1,27 @@ +# Міст Ethereum на Namada + +Міст Ethereum на Namada - це не вимагає довіри (в тому сенсі, що єдиним припущенням довіри є те, що валідатори на Namada є колективно чесними) міст між Namada і Ethereum. + +Міст є поєднанням смарт-контрактів на Ethereum, а також коду протоколу реєстру, який забезпечує його функціональність. Міст розроблений як універсальний і може бути використаний для з'єднання будь-якого ланцюжка, який має механізм консенсусу BFT. + + +## Дизайн + +Повну специфікацію проекту можна знайти [тут](https://specs.namada.net/interoperability/ethereum-bridge). + +Нижче наведено короткий опис проекту. + +## Сторона ethereum + +Цінність, передана в Namada, депонується в абстракції сховища, що +дозволяє оновлювати інші контракти без переміщення вартості. Коли ERC20 +токени ERC20 переводяться назад в Ethereum, вартість звільняється з ескроу на +рахунки призначення. + +## Сторона Namada + +Коли ініціюється переказ з Ethereum на Namada, переказ перевіряється валідаторами. Після завершення перевірки переказані кошти карбуються на стороні Namada і надсилаються на рахунок одержувача. Коли токени відправляються назад в Ethereum, вони спалюються на стороні Namada. + +Ця документація призначена для релеєрів і валідаторів на Namada і структурована наступним чином: + +- [Ретрансляція транзакцій](./eth-bridge/relaying.mdx) diff --git a/packages/docs/pages/operators/eth-bridge/_meta.en-US.json b/packages/docs/pages/operators/eth-bridge/_meta.en-US.json new file mode 100644 index 00000000..2fe4d53d --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge/_meta.en-US.json @@ -0,0 +1,3 @@ +{ + "relaying": "Relaying" +} \ No newline at end of file diff --git a/packages/docs/pages/operators/eth-bridge/_meta.json b/packages/docs/pages/operators/eth-bridge/_meta.json new file mode 100644 index 00000000..2fe4d53d --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge/_meta.json @@ -0,0 +1,3 @@ +{ + "relaying": "Relaying" +} \ No newline at end of file diff --git a/packages/docs/pages/operators/eth-bridge/_meta.uk-UA.json b/packages/docs/pages/operators/eth-bridge/_meta.uk-UA.json new file mode 100644 index 00000000..43a7b377 --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge/_meta.uk-UA.json @@ -0,0 +1,3 @@ +{ + "relaying": "Ретрансляція" +} \ No newline at end of file diff --git a/packages/docs/pages/operators/eth-bridge/relaying.mdx b/packages/docs/pages/operators/eth-bridge/relaying.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/eth-bridge/relaying.mdx rename to packages/docs/pages/operators/eth-bridge/relaying.en-US.mdx diff --git a/packages/docs/pages/operators/eth-bridge/relaying.uk-UA.mdx b/packages/docs/pages/operators/eth-bridge/relaying.uk-UA.mdx new file mode 100644 index 00000000..b606ee39 --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge/relaying.uk-UA.mdx @@ -0,0 +1,48 @@ +import { Callout } from 'nextra-theme-docs' + +# Ретрансляція транзакцій Ethereum + +Команди ретранслятора знаходяться у бінарному файлі `namadar`, який наразі можна встановити лише з вихідних текстів. + +## Передача оновлень наборів валідаторів + +Для того, щоб будь-які транзакції могли бути передані смарт-контракту Ethereum, на стороні Ethereum повинні бути оновлені набори валідаторів. Вони оновлюються за допомогою релеєра, який можна налаштувати наступним чином: + +```bash copy +namadar validator-set relay --daemon --confirmations 1 --retry-sleep 0 --success-sleep 0 --safe-mode +``` + +Прапорець `--safe-mode` є необов'язковим, але рекомендованим. Він не дасть релеєру вимкнутись за допомогою `^C` і замість цього чекатиме на передачу поточного пакету транзакцій, перш ніж вимкнутись. + +Доступно більше необов'язкових прапорів, які можна знайти, виконавши `namadar validator-set relay --help`. Зокрема, `--eth-gas` і `--eth-gas-price` дозволять вам встановити максимальний ліміт газу і ціну газу відповідно, які релеєр буде використовувати при передачі транзакцій смарт-контракту Ethereum. + +## Передача транзакцій + +Транзакції передаються пакетами. Перш ніж відправляти транзакції смарт-контракту Ethereum, релеєр буде чекати, поки не отримає партію транзакцій, які потрібно передати. Це робиться для того, щоб зменшити кількість транзакцій, які потрібно відправити смарт-контракту Ethereum, і таким чином знизити витрати на газ. + +Релеєр може отримати "рекомендовану партію" підписаних транзакцій для ретрансляції шляхом запуску: + +```bash +namadar ethereum-bridge-pool recommend-batch +``` + +Якщо це сприятливо для релеєра, він може побудувати доказ і передати його смарт-контракту Ethereum шляхом запуску: + +```bash +namadar ethereum-bridge-pool relay-proof --hash-list $HASH_LIST +``` + + +Оскільки це стосується транзакції Ethereum, тут також доступні прапорці `--eth-gas` і `--eth-gas-price`. + + +Крім того, ретранслятор може запустити команду: + +```bash +namadar ethereum-bridge-pool construct-proof --hash-list $HASH_LIST +``` + +Лише побудувати доказ, не передаючи його. Потім доказ може бути переданий вручну ретранслятором. + + + diff --git a/packages/docs/pages/operators/hardware.mdx b/packages/docs/pages/operators/hardware.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/hardware.mdx rename to packages/docs/pages/operators/hardware.en-US.mdx diff --git a/packages/docs/pages/operators/hardware.uk-UA.mdx b/packages/docs/pages/operators/hardware.uk-UA.mdx new file mode 100644 index 00000000..e31c4eba --- /dev/null +++ b/packages/docs/pages/operators/hardware.uk-UA.mdx @@ -0,0 +1,15 @@ +# Вимоги до апаратного забезпечення + +Цей розділ описує рекомендовані вимоги до апаратного забезпечення для роботи з Namada для валідаторів, повних вузлів та легких вузлів. + +## Вимоги до ресурсів + +| Тип Вузла | RAM | SSD | Number of Cores | +| ---------- | -------- | ---------- | --------------- | +| Валідатор | 8GB | 1TB* | 4 | +| Повний вузол | 8GB | 1TB | 2 | +| Легкий вузол | TBD | TBD | TBD | + +**Зауважте, що розмір сховища буде залежати від рівня обрізки.** + + diff --git a/packages/docs/pages/operators/ibc.mdx b/packages/docs/pages/operators/ibc.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/ibc.mdx rename to packages/docs/pages/operators/ibc.en-US.mdx diff --git a/packages/docs/pages/operators/ibc.uk-UA.mdx b/packages/docs/pages/operators/ibc.uk-UA.mdx new file mode 100644 index 00000000..0b80063f --- /dev/null +++ b/packages/docs/pages/operators/ibc.uk-UA.mdx @@ -0,0 +1,339 @@ +import { Callout } from 'nextra-theme-docs' +import Expandable from '../../components/Expandable' + +# Ретрансляція в Namada + +У цьому документі описано, як працювати з ретранслятором для протоколу міжблочного зв'язку (IBC) з Namada. Ця документація охоплює можливість створення з'єднань через IBC, а також налаштування локальних екземплярів Namada для тестування. + +Цей документ описує основні кроки для використання IBC з Namada: + +1. [Налаштування Hermes](#setup-hermes) +2. [Встановити Hermes](#install-hermes) +3. [Налаштування ретранслятора](#setting-up-the-relayer) +4. [Запустити ретранслятор](#start-the-relayer) +5. [Налаштування локальних екземплярів Namada](#set-up-local-namada-instances-using-the-hermes-script) + +Нижче наведено інструкції для тих, хто бажає ретранслювати передачу IBC-повідомлень між двома ланцюжками Namada. Звичайно, існує можливість зробити це між будь-якими двома IBC-сумісними ланцюжками (наприклад, ланцюжком Cosmos). +У цьому випадку необхідно мати вузол, який працює як на ланцюгу призначення, так і на ланцюгу-джерелі, щоб здійснювати передачу пакунків. +Нижче ми обговоримо, по-перше, як увімкнути цей зв'язок між двома вже існуючими ланцюгами за допомогою Hermes, а по-друге, як створити два локальні екземпляри Namada або об'єднати два вже існуючі екземпляри Namada для цієї мети. + + +## Налаштування Hermes +Hermes - це IBC-ретранслятор для передачі IBC-пакетів між ланцюжками (екземплярами). +Namada використовує [форк Hermes, що підтримує екземпляри Namada](https://github.com/heliaxdev/hermes/tree/1.6.0-namada). +Перед ретрансляцією пакетів користувачеві необхідно виконати наступні кроки для конфігурації та запуску Hermes. + +1. Створіть конфігураційний файл Hermes +2. Створити IBC-клієнт/з'єднання/канал між екземплярами +3. Запустіть Hermes + +### Створення конфігураційного файлу Hermes +Важливою частиною головоломки є створення файлу `config.toml`, який описує, які з'єднання будуть встановлені, за які відповідатиме ретранслятор. + +```bash copy +export HERMES_CONFIG="/config.toml" +touch $HERMES_CONFIG +``` + +Якщо ви не вкажете шлях до файлу, за замовчуванням буде прочитано `~/.hermes/config.toml`. + +Приклад конфігураційного файлу наведено нижче. По суті, у файлі конфігурації для Namada ви змінюєте лише ідентифікатори ланцюжка, RPC-адреси та імена ключів. Якщо у вас немає вузлів, будь ласка, налаштуйте їх вручну або за допомогою наших [скриптів](#set-up-local-namada-instances-using-the-hermes-script). + +
+Приклад: config.toml +```toml copy +[global] +log_level = 'info' + +[mode] + +[mode.clients] +enabled = true +refresh = true +misbehaviour = true + +[mode.connections] +enabled = false + +[mode.channels] +enabled = false + +[mode.packets] +enabled = true +clear_interval = 10 +clear_on_start = false +tx_confirmation = true + +[telemetry] +enabled = false +host = '127.0.0.1' +port = 3001 + +[[chains]] +id = 'namada-test.0a4c6786dbda39f786' # set your chain ID +type = 'namada' +rpc_addr = 'http://127.0.0.1:27657' # set the IP and the port of the chain +grpc_addr = 'http://127.0.0.1:9090' # not used for now +event_source = { mode = 'push', url = 'ws://127.0.0.1:27657/websocket', batch_delay = '500ms' } # set the IP and the port of the chain +account_prefix = '' # not used +key_name = 'relayer' # The key is an account name you made +store_prefix = 'ibc' +gas_price = { price = 0.001, denom = 'nam' } # not used for now + +[[chains]] +id = 'namada-test.647287156defa8728c' +type = 'namada' +rpc_addr = 'http://127.0.0.1:28657' +grpc_addr = 'http://127.0.0.1:9090' +event_source = { mode = 'push', url = 'ws://127.0.0.1:28657/websocket', batch_delay = '500ms' } +account_prefix = '' +key_name = 'relayer' +store_prefix = 'ibc' +gas_price = { price = 0.001, denom = 'nam' } +``` +
+ +Шлях до конфігураційного файлу, який зберігається у змінній `$HERMES_CONFIG`, стане в нагоді пізніше. + + + +**Інтерпретація toml** *Тлумачення toml + +Кожна конфігурація ланцюжка вказана під об'єктом `[[chains]]`. +Це ті шматочки головоломки, на яких ви хочете тримати свій 👀: + - `chains.id` - назва ланцюжка + - `chains.rpc_address` вказує порт, через який канал зв'язується, і буде аргументом для `ledger_address` Namada при взаємодії з книгою (стане зрозуміліше пізніше) + - Обов'язково змініть IP-адресу на IP-адресу вашої локальної машини, на якій запущено цей вузол! + - `chains.key_name` вказує ключ підписувача, який підписує транзакцію від релеєра. Ключ повинен бути згенерований перед запуском релеєра. + - `event_source` вказує URL веб-сокета ланцюжка. Вона має збігатися з `rpc_адресою` для коректної роботи Hermes. + + +### Створення IBC-клієнта/з'єднання/каналу між екземплярами +Для їх створення в Hermes CLI є команди. Перед створенням вузла кожного екземпляра повинна бути запущена за вказаними rpc-адресами. Якщо у вас немає вузлів, будь ласка, налаштуйте їх вручну або за допомогою наших [скриптів](#set-up-local-namada-instances-using-the-hermes-script). + +### Експорт змінних середовища +Користувачеві, який здійснює ретрансляцію, потрібно зберегти певні змінні оточення. Ось ці змінні: +```bash copy +export CHAIN_A_ID="" +export CHAIN_B_ID="" +export HERMES_CONFIG="" +``` + +## Встановлення Hermes +Перед виконанням будь-яких операцій з IBC необхідно завантажити бінарник Hermes форка Heliax або зібрати його з вихідного коду. + +### З бінарних файлів +Ви можете завантажити найновіший бінарний випуск з нашої [сторінки випусків](https://github.com/heliaxdev/hermes/releases), вибравши відповідну архітектуру. + +Приклад: +```bash copy +export TAG="v1.6.0-namada-beta3" +export ARCH="x86_64-unknown-linux-gnu" # or "aarch64-apple-darwin" +curl -Lo /tmp/hermes.tar.gz https://github.com/heliaxdev/hermes/releases/download/${TAG}/hermes-${TAG}-${ARCH}.tar.gz +tar -xvzf /tmp/hermes.tar.gz -C /usr/local/bin +``` + + +У деяких системах `/usr/local/bin` є захищеним каталогом. У цьому випадку вам може знадобитися виконати наведену вище команду з `sudo`. +Тобто +```bash copy +sudo tar -xvzf /tmp/hermes.tar.gz -C /usr/local/bin +``` +Це також стосується команди `cp ./target/release/hermes /usr/local/bin/` нижче (див. коментар). + + +### З вихідних кодів +```bash copy +export TAG="v1.6.0-namada-beta3" + +git clone https://github.com/heliaxdev/hermes.git +git checkout $TAG +cd hermes +cargo build --release --bin hermes +export HERMES=$(pwd) # if needed +``` +Перевір бінарний файл:: +```bash copy +./target/release/hermes --version #or sudo cp ./target/release/hermes /usr/local/bin/ +``` + + +Рекомендується додати hermes до `$PATH` таким чином, щоб його можна було викликати без будь-яких префіксів. +Для користувачів ubuntu цього можна досягти за допомогою +```bash copy +cp ./target/release/hermes /usr/local/bin/ +``` + + +## Налаштування ретранслятора + +### Створіть каталог `namada_wallet` та ланцюжок каталогів для кожного релеєра wallet.toml + +Для роботи ретранслятор йому необхідно мати каталог гаманця для зберігання ключів релеєра. Це можна зробити, виконавши +```bash copy +# in the Hermes folder +mkdir namada_wallet +mkdir -p ~/.hermes/namada_wallet/$CHAIN_A_ID +mkdir -p ~/.hermes/namada_wallet/$CHAIN_B_ID +``` + + +Цей крок потрібен лише для ланцюжків Namada. Для ланцюжків на основі cosmos рекомендується додати ключ безпосередньо до hermes. +```bash copy +./hermes --config $HERMES_CONFIG keys add --chain "" --key-file "" --overwrite +``` + + +### Створіть обліковий запис релеєра +У кожному ланцюжку має бути обліковий запис `relayer`. У ланцюжку Namada це можна зробити, виконавши +```bash copy +namadaw key gen --alias relayer +``` + +В результаті буде згенеровано ключ для облікового запису релеєра. Ключ буде збережено у файлі `wallet.toml`, який знаходиться у [базовому каталозі](./ledger/base-directory.mdx) вузла, всередині теки `chain-id`. Наприклад, якщо `chain-id` буде `namada-test.0a4c6786dbda39f786`, то `wallet.toml` буде знайдено у `$HOME/.local/share/namada/namada-test.0a4c6786dbda39f786/wallet.toml` (на машині ubuntu, де `base-dir` налаштовано неправильно). + +Тепер важливо скопіювати цей файл гаманця в каталог `namada_wallet`, який було створено вище, для кожного ланцюжка. Продовжуючи цей приклад, перший гаманець можна скопіювати за допомогою запуску: + +```bash copy +cp $HOME/.local/share/namada/$CHAIN_A_ID/wallet.toml ~/.hermes/namada_wallet/$CHAIN_A_ID/wallet.toml +# Make sure this is done for both wallets on each chain! +``` + +Тепер можна налаштовувати клієнта. + +### Створення IBC-каналу +Команда "створити канал" (нижче) створює не тільки IBC-канал, але й необхідне IBC-клієнтське з'єднання. + +```bash copy +hermes --config $HERMES_CONFIG \ + create channel \ + --a-chain $CHAIN_A_ID \ + --b-chain $CHAIN_B_ID \ + --a-port transfer \ + --b-port transfer \ + --new-client-connection --yes +``` + + +Зверніть увагу, що наведені вище `CHAIN_ID` будуть залежати від ваших власних налаштувань, тому перевірте це самостійно! + + +Після завершення створення ви побачите ідентифікатори каналів. Наприклад, наступний текст показує, що канал з ID `7` було створено на ланцюгу A `namada-test.0a4c6786dbda39f786`, а канал з ID `12` було створено на ланцюгу B `namada-test.647287156defa8728c`. Ідентифікатори каналів знадобляться вам для передачі через IBC. Це означає, що ви повинні вказати `channel-7` як ідентифікатор каналу (префікс `channel-` завжди є обов'язковим) для передачі з Ланцюга A на Ланцюг B. Також, ви повинні вказати `channel-12` як ідентифікатор каналу для передачі з Ланцюга B на Ланцюг A. + + +``` +SUCCESS Channel { + ordering: Unordered, + a_side: ChannelSide { + chain: BaseChainHandle { + chain_id: ChainId { + id: "namada-test.0a4c6786dbda39f786", + version: 0, + }, + runtime_sender: Sender { .. }, + }, + client_id: ClientId( + "07-tendermint-0", + ), + connection_id: ConnectionId( + "connection-3", + ), + port_id: PortId( + "transfer", + ), + channel_id: Some( + ChannelId( + "channel-7", + ), + ), + version: None, + }, + b_side: ChannelSide { + chain: BaseChainHandle { + chain_id: ChainId { + id: "namada-test.647287156defa8728c", + version: 0, + }, + runtime_sender: Sender { .. }, + }, + client_id: ClientId( + "07-tendermint-1", + ), + connection_id: ConnectionId( + "connection-2", + ), + port_id: PortId( + "transfer", + ), + channel_id: Some( + ChannelId( + "channel-12", + ), + ), + version: None, + }, + connection_delay: 0ns, +} +``` + + +## Запуск ретранслятора +Як тільки ви запускаєте Hermes, він відстежує екземпляри через вузли і ретранслює пакети відповідно до відстежуваних подій. +```bash copy +hermes --config $HERMES_CONFIG start +``` + +Ви можете ознайомитися з більш детальною інформацією про Hermes в [офіційному документі](https://hermes.informal.systems/). + +Після синхронізації ви можете створити канал і запустити Hermes, як описано [вище](#create-ibc-channel). +```bash copy +# create a channel +hermes --config $HERMES_CONFIG \ + create channel \ + --a-chain $CHAIN_A_ID \ + --b-chain $CHAIN_B_ID \ + --a-port transfer \ + --b-port transfer \ + --new-client-connection --yes +``` + +### Передача активів через IBC +Тепер можна [переносити активи між двома ланцюжками.](../users/ibc.mdx) + +## Налаштування локальних екземплярів Namada за допомогою скрипта hermes +Скрипт `setup-namada` створить два екземпляри з одним вузлом валідатора, скопіює необхідні файли для Hermes і створить обліковий запис для Hermes на кожному реєстрі. Крім того, він створить конфігураційний файл Hermes `config_for_namada.txt` у каталозі `hermes`. + +Спочатку вам потрібно буде експортувати деякі змінні середовища: +```bash copy +export NAMADA_DIR="" +export TAG="v1.6.0-namada-beta3" +``` + +```bash copy +git clone https://github.com/heliaxdev/hermes.git +git checkout $TAG # The branch is the same as our Hermes +cd hermes +./scripts/setup-namada $NAMADA_DIR $CHAIN_ID_A $CHAIN_ID_B +``` + +У цьому випадку користувачеві не потрібно чекати на синхронізацію. Якщо на рахунку релеєра на кожному екземплярі достатньо коштів, користувач може створити канал і негайно запустити Hermes, як описано [вище](#create-ibc-channel). Користувач може знайти ідентифікатори ланцюжків екземплярів у конфігураційному файлі `config_for_namada.toml`. Можна виконати `grep "id" ${HERMES_CONFIG}`. +```bash copy +# create a channel +hermes --config $HERMES_CONFIG \ + create channel \ + --a-chain $CHAIN_A_ID \ + --b-chain $CHAIN_B_ID \ + --a-port transfer \ + --b-port transfer \ + --new-client-connection --yes + +# Run Hermes +hermes --config $HERMES_CONFIG start +``` + +Дані та конфігураційні файли кожного вузла знаходяться у `hermes/data/namada-*/.namada`. + +Для того, щоб закрити будь-які регістри, налаштовані скриптом, можна виконати +```bash copy +killall namadan +``` diff --git a/packages/docs/pages/operators/ledger.mdx b/packages/docs/pages/operators/ledger.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/ledger.mdx rename to packages/docs/pages/operators/ledger.en-US.mdx diff --git a/packages/docs/pages/operators/ledger.uk-UA.mdx b/packages/docs/pages/operators/ledger.uk-UA.mdx new file mode 100644 index 00000000..c0d9a93d --- /dev/null +++ b/packages/docs/pages/operators/ledger.uk-UA.mdx @@ -0,0 +1,40 @@ +import { Callout } from 'nextra-theme-docs' + +# Namada Леджер + +Для здійснення взаємодії з блокчейном Namada через *client* `namadac` , необхідно, щоб леджер був запущений. + +Щоб запустити локальний вузол леджер Namada, можна запустити: + +```shell copy +namada ledger +``` + + +**Примітка**: Вам слід [приєднатися до мережі](../networks.mdx) перш ніж запускати Леджер. Він викине помилку, якщо мережа не була налаштована. + +Вузол спробує з'єднатися з вузлами постійного валідатора та іншими одноранговими вузлами в мережі і синхронізуватися з останнім блоком. + +За замовчуванням, журнал зберігатиме свою конфігурацію і стан у вашому [базовому каталозі](./ledger/base-directory.mdx). +Ви можете змінити його за допомогою CLI global argument (аргументи командного рядка) `--base-dir` або змінної оточення `BASE_DIR`. + +Якщо у вас немає власного каталогу base_dir, ви можете експортувати змінну оточення BASE_DIR наступним чином: + +```shell copy +export BASE_DIR=$(namadac utils default-base-dir) +``` + + +Під час першого запуску реєстру будуть завантажені MASP-параметри. Це важливо для створення доказів нульових знань, необхідних для проведення екранованих транзакцій. + +### Файли wasm для леджера. +Леджер також завантажить блок генезису, який містить початковий стан блокчейну. +Леджеру також потрібен доступ до створених WASM-файлів, які використовуються в генезисному блоці. +Ці файли включені в реліз і не повинні бути змінені, інакше ваш вузол вийде з ладу через помилку консенсусу в блоці генезису. +За замовчуванням, очікується, що вони будуть знаходитися у каталозі `wasm` всередині каталогу ланцюжка, який знаходиться у базовому каталозі, тобто `$BASE_DIR/$CHAIN_ID/wasm`. +Каталог wasm також можна задати за допомогою аргументу командного рядка `--wasm-dir`, `NAMADA_WASM_DIR` [змінної оточення](./ledger/env-vars.mdx) або конфігураційного файлу. + +### Конфігурація Леджера +Конфігурація Леджера зберігається в `$BASE_DIR/$CHAIN_ID/config.toml` (за замовчуванням `--base-dir`). Він створюється, коли ви приєднуєтеся до мережі. Ви можете змінити цей файл, щоб змінити конфігурацію вашого вузла. Всі значення також можна встановити за допомогою [змінних оточення](./ledger/env-vars.mdx). + + diff --git a/packages/docs/pages/operators/ledger/_meta.en-US.json b/packages/docs/pages/operators/ledger/_meta.en-US.json new file mode 100644 index 00000000..85388e4a --- /dev/null +++ b/packages/docs/pages/operators/ledger/_meta.en-US.json @@ -0,0 +1,6 @@ +{ + "env-vars": "Environment variables", + "running-a-full-node": "Setting up the full node", + "logging-config": "Logging configurations", + "base-directory": "Base directory" +} \ No newline at end of file diff --git a/packages/docs/pages/operators/ledger/_meta.uk-UA.json b/packages/docs/pages/operators/ledger/_meta.uk-UA.json new file mode 100644 index 00000000..17d49036 --- /dev/null +++ b/packages/docs/pages/operators/ledger/_meta.uk-UA.json @@ -0,0 +1,6 @@ +{ + "env-vars": "Змінні середовища", + "running-a-full-node": "Запуск повної ноди", + "logging-config": "Конфігурація логування", + "base-directory": "Базовий каталог" +} diff --git a/packages/docs/pages/operators/ledger/base-directory.mdx b/packages/docs/pages/operators/ledger/base-directory.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/ledger/base-directory.mdx rename to packages/docs/pages/operators/ledger/base-directory.en-US.mdx diff --git a/packages/docs/pages/operators/ledger/base-directory.uk-UA.mdx b/packages/docs/pages/operators/ledger/base-directory.uk-UA.mdx new file mode 100644 index 00000000..7890e8c1 --- /dev/null +++ b/packages/docs/pages/operators/ledger/base-directory.uk-UA.mdx @@ -0,0 +1,44 @@ +import { Callout } from 'nextra-theme-docs' + +# Базовий каталог + +Базовий каталог на Namada - це каталог, в якому зберігаються всі специфічні для мережі дані. Це каталог, який створюється одразу після приєднання до мережі (наприклад з `namadac utils join-network`). + +Станом на останню версію Namada, базовий каталог знаходиться в наступних місцях: + + +Технічно, правильним каталогом буде той, який призначено для `$XDG_DATA_HOME`, +але якщо ви не встановили цю змінну, то за замовчуванням вона буде дорівнювати одному з наведених нижче значень. + + +## Швидкий спосіб + +Ви можете знайти базовий каталог, виконавши наступну команду: + +```bash copy +namadac utils default-base-dir +``` + +Яка повинна відповідати одному з наступних каталогів: + +#### Linux + +```bash copy +$HOME/.local/share/namada +``` + +#### MacOS + +```bash copy +$HOME/Library/Application\ Support/Namada +``` + +## На що очікувати +У цих теках ви повинні побачити наступні файли та папки: + +```bash copy +global-config.toml +/ +.toml +pre-genesis # If you are a pre-genesis validator +``` diff --git a/packages/docs/pages/operators/ledger/env-vars.mdx b/packages/docs/pages/operators/ledger/env-vars.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/ledger/env-vars.mdx rename to packages/docs/pages/operators/ledger/env-vars.en-US.mdx diff --git a/packages/docs/pages/operators/ledger/env-vars.uk-UA.mdx b/packages/docs/pages/operators/ledger/env-vars.uk-UA.mdx new file mode 100644 index 00000000..0075ac48 --- /dev/null +++ b/packages/docs/pages/operators/ledger/env-vars.uk-UA.mdx @@ -0,0 +1,144 @@ +import { Callout } from 'nextra-theme-docs' +import Expandable from "../../../components/Expandable"; + +# Змінні середовища + +За замовчуванням, кожного разу, коли леджер Namada запускається, він застосовує підтвердження, яке міститься у файлі конфігурації леджера. + +Приклад файлу конфігурації леджера наведено нижче. + + +```toml +wasm_dir = "wasm" + +[ledger] +genesis_time = "2023-06-29T17:00:00+00:00" +chain_id = "" + +[ledger.shell] +base_dir = "/Users/fraccaman/Library/Application Support/Namada" +storage_read_past_height_limit = 3600 +db_dir = "db" +cometbft_dir = "cometbft" +tendermint_mode = "Full" + +[ledger.cometbft] +proxy_app = "tcp://127.0.0.1:26658" +moniker = "1337-leet-1337" +db_backend = "goleveldb" +db_dir = "data" +log_level = "info" +log_format = "plain" +genesis_file = "config/genesis.json" +node_key_file = "config/node_key.json" +abci = "socket" +filter_peers = false +priv_validator_key_file = "config/priv_validator_key.json" +priv_validator_state_file = "data/priv_validator_state.json" +priv_validator_laddr = "" + +[ledger.cometbft.rpc] +laddr = "tcp://127.0.0.1:26657" +cors_allowed_origins = [] +cors_allowed_methods = ["HEAD", "GET", "POST"] +cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time"] +unsafe = false +max_open_connections = 900 +max_subscription_clients = 100 +max_subscriptions_per_client = 5 +timeout_broadcast_tx_commit = "10000ms" +max_body_bytes = 1000000 +max_header_bytes = 1048576 +tls_cert_file = "" +tls_key_file = "" +pprof_laddr = "" + +[ledger.cometbft.p2p] +laddr = "tcp://0.0.0.0:26656" +external_address = "" +seeds = "" +persistent_peers = "@:, ..." +upnp = false +addr_book_file = "config/addrbook.json" +addr_book_strict = true +max_num_inbound_peers = 40 +max_num_outbound_peers = 10 +unconditional_peer_ids = "" +persistent_peers_max_dial_period = "0ms" +flush_throttle_timeout = "100ms" +max_packet_msg_payload_size = 1024 +send_rate = 5120000 +recv_rate = 5120000 +pex = true +seed_mode = false +private_peer_ids = "" +allow_duplicate_ip = false +handshake_timeout = "20000ms" +dial_timeout = "3000ms" + +[ledger.cometbft.mempool] +recheck = true +broadcast = true +wal_dir = "" +size = 5000 +max_txs_bytes = 1073741824 +cache_size = 10000 +keep-invalid-txs-in-cache = false +max_tx_bytes = 1048576 +max_batch_bytes = 0 + +[ledger.cometbft.consensus] +wal_file = "data/cs.wal/wal" +double_sign_check_height = 0 +create_empty_blocks = true +create_empty_blocks_interval = "0ms" +peer_gossip_sleep_duration = "100ms" +peer_query_maj23_sleep_duration = "2000ms" +timeout_propose = "3000ms" +timeout_propose_delta = "500ms" +timeout_prevote = "1000ms" +timeout_prevote_delta = "500ms" +timeout_precommit = "1000ms" +timeout_precommit_delta = "500ms" +timeout_commit = "10000ms" + +[ledger.cometbft.tx_index] +indexer = "null" + +[ledger.cometbft.instrumentation] +prometheus = false +prometheus_listen_addr = ":26660" +max_open_connections = 3 +namespace = "namada_tm" + +[ledger.cometbft.statesync] +enable = false +rpc_servers = "" +trust_height = 0 +trust_hash = "" +trust_period = "168h0m0s" +discovery_time = "15000ms" +temp_dir = "" +``` + + +Однак, можна замінити конфігурацію, встановивши змінні оточення. +Доступ до будь-якої змінної, знайденої у конфігурації, можна отримати через змінні оточення, які сконструйовано у наведений нижче спосіб. + +### Конструювання змінних оточення +Назви розпізнаних змінних оточення отримуються з конфігураційних ключів за допомогою: + +1. Додайте `NAMADA_` до ключа. +2. Кожну літеру ключа слід вводити у верхньому регістрі. Наприклад `p2p_pex` стане `P2P_PEX` +3. Вставте `__` для кожного вкладеного значення. Наприклад, `ledger.cometbft` стане `LEDGER__COMETBFT` + +Отже, опція `p2p_pex` в `[ledger.cometbft]` може бути задана за допомогою +```shell copy +NAMADA_LEDGER__COMETBFT__P2P_PEX=true # or false, depending on your heart's desires +``` +в навколишньому середовищі + + +**Нотатки**: +В принципі, для назв змінних оточення можна використовувати навіть символ `.`. Однак у Bash можна використовувати лише форму подвійного підкреслення, оскільки Bash не допускає крапки у назвах змінних оточення. Тому ми уникаємо крапкову форму. + \ No newline at end of file diff --git a/packages/docs/pages/operators/ledger/logging-config.mdx b/packages/docs/pages/operators/ledger/logging-config.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/ledger/logging-config.mdx rename to packages/docs/pages/operators/ledger/logging-config.en-US.mdx diff --git a/packages/docs/pages/operators/ledger/logging-config.uk-UA.mdx b/packages/docs/pages/operators/ledger/logging-config.uk-UA.mdx new file mode 100644 index 00000000..21e9e8fe --- /dev/null +++ b/packages/docs/pages/operators/ledger/logging-config.uk-UA.mdx @@ -0,0 +1,14 @@ +# Налаштування Логування на Namada + +Логування леджеру можна налаштувати, встановивши наступні змінні оточення. +Значення за замовчуванням виділено **жирним шрифтом**. + +| Змінні | Значення | Опис | +| :------------------: | :----------------------------------------: | :---------------------: | +| `NAMADA_LOG` | **`info`**, `debug`, `warn`, `error` | Багатослівність логування| +| `NAMADA_LOG_COLOR` | **`true`**, `false` | Увімкнення / вимкнення кольорів | +| `NAMADA_LOG_DIR` | | Якщо встановлено, журнали будуть записуватися до файлів у вказаному каталозі. Файли журналу будуть називатися `namada.log` та `namada.err.log` і стиснуті за допомогою `gzip`. | +| `NAMADA_LOG_FMT` | **`full`**, `json`, `pretty` | Формат логування | +| `NAMADA_LOG_ROLLING` | **`never`**, `minutely`, `hourly`, `daily` | Періодичність прокатки логів | +| `NAMADA_CMT_STDOUT` | `true`, **`false`** | Виведіть усі логи CometBFT до stdout. (Ця інформація може бути корисною для валідаторів). | +| `CMT_LOG_LEVEL` | **`info`**, `debug`, `warn`, `error` | Багатослівність логів CometBFT | diff --git a/packages/docs/pages/operators/ledger/running-a-full-node.mdx b/packages/docs/pages/operators/ledger/running-a-full-node.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/ledger/running-a-full-node.mdx rename to packages/docs/pages/operators/ledger/running-a-full-node.en-US.mdx diff --git a/packages/docs/pages/operators/ledger/running-a-full-node.uk-UA.mdx b/packages/docs/pages/operators/ledger/running-a-full-node.uk-UA.mdx new file mode 100644 index 00000000..a51f2b44 --- /dev/null +++ b/packages/docs/pages/operators/ledger/running-a-full-node.uk-UA.mdx @@ -0,0 +1,83 @@ +import { Callout } from 'nextra-theme-docs' + +# Налаштування повного вузла +Перед запуском повного вузла знадобиться унікальний ідентифікатор `chain-id`, який буде випущено, як тільки файл генезису буде готовий. + +### Приєднатися до мережі +Після того, як `chain-id` буде розподілено, можна приєднатися до мережі за допомогою `CHAIN_ID`: +```bash copy + export CHAIN_ID="namada-mainnet" ## (replace with the actual chain-id) + namada client utils join-network --chain-id $CHAIN_ID + ``` + +### Запустіть вузол і синхронізуйте +```bash copy + CMT_LOG_LEVEL=p2p:none,pex:error namada node ledger run +``` +Опціонально: Якщо ви хочете отримати більше логів, ви можете замість цього запустити +```bash copy +NAMADA_LOG=info CMT_LOG_LEVEL=p2p:none,pex:error NAMADA_CMT_STDOUT=true namada node ledger run +``` +А якщо ви хочете зберегти свої логи у файл, ви можете замість цього запустити: +```bash copy +TIMESTAMP=$(date +%s) +NAMADA_LOG=info CMT_LOG_LEVEL=p2p:none,pex:error NAMADA_CMT_STDOUT=true namada node ledger run &> logs-${TIMESTAMP}.txt +tail -f -n 20 logs-${TIMESTAMP}.txt ## (in another shell) +``` + +### Запуск namada як сервісу systemd + +Наведений нижче скрипт є внеском спільноти Encipher88 і наразі працює лише на машинах Ubuntu. Він став у нагоді багатьом валідаторам. + +Нижче наведено припущення, що ви встановили namada з вихідного коду за допомогою команди `make install`. Принаймні припускається, що відповідні двійкові файли знаходяться у `/usr/local/bin/`. + +```bash copy +which namada ## (should return /usr/local/bin/namada) +``` + +Нижче наведено створення службового файлу для systemd, який запускатиме namada як службу. Це корисно для запуску вузла у фоновому режимі, а також для автоматичного перезапуску вузла у разі його аварійного завершення. +```bash copy +sudo tee /etc/systemd/system/namadad.service > /dev/null < +```diff +# Редагування кроків конфігурації генезису +# Мережа розробників +genesis_time = "2021-12-20T15:00:00.00Z" +native_token = "NAM" + +- # 3 валідатори генезису. +- [validator.validator-1] +- # Баланс токенів валідатора на етапі генезису. +- tokens = 100000 +- # Сума залишку токенів генерації валідатора, яка не стейкується. +- non_staked_balance = 100000 +- # VP(Сила голосу) для облікового запису валідатора +- validator_vp = "vp_validator" +- # Ставка комісії за винагороду +- commission_rate = 0.05 +- # Максимальна зміна ставки комісійних за епоху +- max_commission_rate_change = 0.01 +- # Публічна IP:адреса порту +- net_address = "52.210.23.30:26656" +- +- [validator.validator-2] +- # Баланс токенів валідатора на етапі генезису. +- tokens = 100000 +- # Сума залишку токенів генерації валідатора, яка не стейкується. +- non_staked_balance = 100000 +- # VP(Сила голосу) для облікового запису валідатора +- validator_vp = "vp_validator" +- # Ставка комісії за винагороду +- commission_rate = 0.05 +- # Максимальна зміна ставки комісійних за епоху +- max_commission_rate_change = 0.01 +- # VP для рахунку винагороди за стейкінг +- staking_reward_vp = "vp_user" +- # Публічна IP:адреса порту +- net_address = "63.32.203.239:26656" +- +- [validator.validator-3] +- # Баланс токенів валідатора на етапі генезису. +- tokens = 100000 +- # Сума залишку токенів генерації валідатора, яка не стейкується. +- non_staked_balance = 100000 +- # VP(Сила голосу) для облікового запису валідатора +- validator_vp = "vp_validator" +- # Ставка комісії за винагороду +- commission_rate = 0.05 +- # Максимальна зміна ставки комісійних за епоху +- max_commission_rate_change = 0.01 +- # VP для рахунку винагороди за стейкінг +- staking_reward_vp = "vp_user" +- # Публічна IP:адреса порту +- net_address = "54.195.72.213:26656" + +# Деякі токени присутні в генезисі. + +[token.NAM] +address = "atest1v4ehgw36x3prswzxggunzv6pxqmnvdj9xvcyzvpsggeyvs3cg9qnywf589qnwvfsg5erg3fkl09rg5" +vp = "vp_token" +[token.NAM.balances] +atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3 = 9223372036854 + +[token.BTC] +address = "atest1v4ehgw36xdzryve5gsc52veeg5cnsv2yx5eygvp38qcrvd29xy6rys6p8yc5xvp4xfpy2v694wgwcp" +vp = "vp_token" +[token.BTC.balances] +atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3 = 9223372036854 + +[token.ETH] +address = "atest1v4ehgw36xqmr2d3nx3ryvd2xxgmrq33j8qcns33sxezrgv6zxdzrydjrxveygd2yxumrsdpsf9jc2p" +vp = "vp_token" +[token.ETH.balances] +atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3 = 9223372036854 + +[token.DOT] +address = "atest1v4ehgw36gg6nvs2zgfpyxsfjgc65yv6pxy6nwwfsxgungdzrggeyzv35gveyxsjyxymyz335hur2jn" +vp = "vp_token" +[token.DOT.balances] +atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3 = 9223372036854 + +[token.Schnitzel] +address = "atest1v4ehgw36xue5xvf5xvuyzvpjx5un2v3k8qeyvd3cxdqns32p89rrxd6xx9zngvpegccnzs699rdnnt" +vp = "vp_token" +[token.Schnitzel.balances] +atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3 = 9223372036854 + +[token.Apfel] +address = "atest1v4ehgw36gfryydj9g3p5zv3kg9znyd358ycnzsfcggc5gvecgc6ygs2rxv6ry3zpg4zrwdfeumqcz9" +vp = "vp_token" +[token.Apfel.balances] +atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3 = 9223372036854 + +[token.Kartoffel] +address = "atest1v4ehgw36gep5ysecxq6nyv3jg3zygv3e89qn2vp48pryxsf4xpznvve5gvmy23fs89pryvf5a6ht90" +public_key = "" +vp = "vp_token" +[token.Kartoffel.balances] +atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3 = 9223372036854 + +# Деякі відомі свідчення присутні в генезисі. + +[implicit.faucet] +address = "atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3" +vp = "vp_user" + +[established.masp] +address = "atest1v4ehgw36xaryysfsx5unvve4g5my2vjz89p52sjxxgenzd348yuyyv3hg3pnjs35g5unvde4ca36y5" +vp = "vp_masp" + +# Визначення Wasm VP + +# Неявний VP + +[wasm.vp_implicit] +filename = "vp_implicit.wasm" + +# Користувач VP за замовчуванням в установлених облікових записах + +[wasm.vp_user] + +# ім'я файлу (відносно шляху wasm, що використовується вузлом) + + +filename = "vp_user.wasm" + +# Валідатор VP(Сила голосу) + +[wasm.vp_validator] +filename = "vp_validator.wasm" + +# Текен VP(Сила голосу) + +[wasm.vp_token] +filename = "vp_token.wasm" + +# MASP VP(Сила голосу) + +[wasm.vp_masp] +filename = "vp_masp.wasm" + +# General protocol parameters. + +[parameters] + +# Мінімальна кількість блоків в епосі. + +min_num_of_blocks = 5 + +# Максимальний очікуваний час на блок (у секундах). + +max_expected_time_per_block = 11 + +# Неявна назва VP WASM + +implicit_vp = "vp_implicit" + +# Очікувана кількість епох на рік (також задає мінімальну тривалість епохи в секундах) + +epochs_per_year = 262800 # ~120 sec epoch duration (60*60*24\*365 / 120) + +# Коефіцієнт посилення P в контролері винагород Proof of Stake + +pos_gain_p = 0.1 + +# Коефіцієнт посилення D у контролері винагород Proof of Stake + +pos_gain_d = 0.1 + +# Фіксована плата за обгортку tx + +wrapper_tx_fees = "5" + +# Максимальний розмір блоків у байтах + +max_proposal_bytes = 5242880 +vp_whitelist = [] +tx_whitelist = [] +max_public_key_per_account = 15 +#Максимальна кількість підписів, необхідних для однієї транзакції +max_signature_per_tx = 15 + +# Proof of stake(Доказ частки) Параметри. + +[pos_params] + +# Максимальна кількість активних валідаторів. + +max_validator_slots = 128 + +# Довжина конвеєра (в епохах). Будь-яка зміна у наборі валідаторів, зроблена у + +# epoch 'n', стане активною в epoch 'n + pipeline_len'. + +pipeline_len = 2 + +# Тривалість розблокування (в епохах). Валідаторам може бути урізано частку + +# за помилку в епосі 'n' до епохи 'n' + unbonding_len. + +unbonding_len = 4 + +# Кількість голосів за один базовий токен (namnam) + +tm_votes_per_token = 1.0 + +# Винагорода за пропозицію блоку. + +block_proposer_reward = 0.125 + +# Винагорода за голосування на дільниці. + +block_vote_reward = 0.1 + +# Максимальний рівень інфляції на рік (10%) + +max_inflation_rate = 0.1 + +# Цільове співвідношення стейкнутих токенів до загальної кількості токенів у пропозиції + +target_staked_ratio = 0.6667 + +# Portion of a validator's stake that should be slashed on a duplicate + +# голосування. + +duplicate_vote_min_slash_rate = 0.001 + +# Частина колоди валідатора, яку потрібно перерізати на світлі + +# client attack. + +light_client_attack_min_slash_rate = 0.001 +cubic_slashing_window_length = 1 + +# Параметри управління. + +[gov_params] + +# мінімальна кількість токенів xan для блокування + +min_proposal_fund = 100 + +# розмір коду пропозиції в кібібайтах (KiB) + +max_proposal_code_size = 300000 + +# min довжина періоду пропозиції в епохах + +min_proposal_period = 3 + +# максимальна тривалість періоду пропозиції в епохах + +max_proposal_period = 6 + +# максимальна кількість символів у змісті пропозиції + +max_proposal_content_size = 10000 + +# мінімальні епохи між кінцем та `grace` епохою + +min_proposal_grace_epochs = 0 + +```` + + +### Збірка wasm + +Скрипт також вимагатиме збірки всіх файлів `wasm` для транзакцій. Це можна зробити, виконавши наступну команду (перебуваючи у каталозі namada): + +```shell +make build-wasm-scripts +```` + +## Запуск скрипта + +Скрипт називається `build_network.sh` і може бути запущений за допомогою наступної команди: + +```shell +# Ensure you are in the root of the namada repository directory +./scripts/build_network.sh +``` + +Детальніше, скрипт приймає три аргументи: + +1. `config_toml`: шлях до файлу конфігурації генезису ([без валідатора](#модифікація-файлу-конфігурації-генезису)). +2. `namada_dir`: шлях до каталогу двійкових файлів Namada (../introduction/install/binaries/overview-of-binaries.mdx). + Якщо двійкові файли було зібрано за допомогою `make build-release`, це означатиме каталог `namada/target/release`. + Інакше, якщо їх було зібрано за допомогою `make build`, це буде каталог `namada/target/debug`. +3. `base_dir`: (необов'язковий аргумент) шлях до каталогу BASE_DIR, де зберігаються всі дані ланцюжка. + Це необхідно лише у випадку, якщо BASE_DIR не є директорією за замовчуванням, заданою командою `namadac utils default-base-dir`. + +Наприклад, користувач MacOS може виконати щось на кшталт: + +```shell +./scripts/build_network.sh \ +~/anoma-network-config/templates/edited_genesis_config.toml \ +./target/release # Assuming the binaries were built using `make build-release` +``` + +## Запуск Ledger + +Після запуску скрипту у фоновому режимі буде запущено процес на python. +Ledger можна запустити за допомогою знайомої команди: + +```shell +target/release/namada ledger # Assuming the binaries were built using `make build-release` +``` + +## Очищення + +Після того, як локальна мережа виконала своє призначення, її можна очистити, виконавши наступні команди у функції очищення скрипта: + +```shell copy + pkill -f ".hack/chains" + rm -r .hack/chains + rm local.*.tar.gz +``` diff --git a/packages/docs/pages/operators/troubleshooting.mdx b/packages/docs/pages/operators/troubleshooting.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/troubleshooting.mdx rename to packages/docs/pages/operators/troubleshooting.en-US.mdx diff --git a/packages/docs/pages/operators/troubleshooting.uk-UA.mdx b/packages/docs/pages/operators/troubleshooting.uk-UA.mdx new file mode 100644 index 00000000..b1043e6f --- /dev/null +++ b/packages/docs/pages/operators/troubleshooting.uk-UA.mdx @@ -0,0 +1,11 @@ +# Усунення несправностей оператора + +### Пропущений прегенезис + +Якщо ви пропустили налаштування валідатора до генезису, це означає, що ви повинні налаштувати його після генезису. Неможливо додати валідаторів до генезису після запуску ланцюжка (за визначенням). Замість цього, будь-який повноцінний вузол може стати валідатором через самозв'язування токенів NAM. + +### CometBFT + +Коли ми стикаємося з проблемами CometBFT в якості валідатора, найпоширенішою причиною проблеми є те, що ми використовуємо невірну версію CometBFT. Слідкуйте за документацією по testnet [тут](../networks/testnets.mdx) + +>Зауважте, що поширений налагоджувальний вираз `Error reconnecting to peers` не означає, що ваш вузол не працює належним чином. Натомість, це означає, що у мережі *існує принаймні один* валідатор, який не працює належним чином. Щоб перевірити, чи це проблема на вашому боці, зверніть увагу на висоту блоку і подивіться, чи відповідає вона висоті блоку на [https://namada.world](https://namada.world) diff --git a/packages/docs/pages/operators/validators.mdx b/packages/docs/pages/operators/validators.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/validators.mdx rename to packages/docs/pages/operators/validators.en-US.mdx diff --git a/packages/docs/pages/operators/validators.uk-UA.mdx b/packages/docs/pages/operators/validators.uk-UA.mdx new file mode 100644 index 00000000..9ce24e68 --- /dev/null +++ b/packages/docs/pages/operators/validators.uk-UA.mdx @@ -0,0 +1,22 @@ +# Валідатори на Namada + +Namada - це блокчейн з доказом частки (proof-of-stake), що означає, що саме валідатори відповідають за голосування щодо переходу до нового стану і за пропозицію нових блоків. + +### Що таке генезисний валідатор? Чим він відрізняється від постгенезисного валідатора? + +Валідатор (попереднього) генезису - це валідатор, який пропонується в якості валідатора в генезисному блоці блокчейну. Якщо генезисний файл приймається мережею, то валідатори (перед)генезису можуть здійснювати валідацію в блокчейні з часткою участі, зазначеною в генезисному файлі. Ці валідатори налаштовані з правильними ключами консенсусу, які повинні відповідати тим, що вказані в генезисному файлі. + +З іншого боку, постгенезисний валідатор - це обліковий запис, який був створений після генезисного блоку. Ці облікові записи ініціюються командою `init-validator`. + +### Як стати валідатором? + +#### Передумови +Для участі в процесі консенсусу валідаторам потрібна частка у вигляді NAM. Розмір необхідної частки вказаний у файлі генезису. Для того, щоб стати валідатором, ви повинні мати принаймні мінімальну необхідну частку. + +Крім того, вузол валідатора повинен відповідати [мінімальним апаратним вимогам](./hardware.mdx). + +#### Кроки + +Дивіться ці кроки для [налаштування генезисного валідатора](./validators/genesis-validator-setup.mdx). + +Дивіться ці кроки для [налаштування постгенезисного валідатора](./validators/post-genesis-validator-setup.mdx). diff --git a/packages/docs/pages/operators/validators/_meta.en-US.json b/packages/docs/pages/operators/validators/_meta.en-US.json new file mode 100644 index 00000000..43fee2f8 --- /dev/null +++ b/packages/docs/pages/operators/validators/_meta.en-US.json @@ -0,0 +1,8 @@ +{ + "hardware": "Hardware requirements", + "genesis-validator-setup": "Genesis validator setup", + "run-your-genesis-validator": "Running a genesis validator", + "post-genesis-validator-setup": "Initialising a validator account", + "staking": "Staking", + "proof-of-stake": "Proof of stake" +} diff --git a/packages/docs/pages/operators/validators/_meta.json b/packages/docs/pages/operators/validators/_meta.json index 93b0cc4d..43fee2f8 100644 --- a/packages/docs/pages/operators/validators/_meta.json +++ b/packages/docs/pages/operators/validators/_meta.json @@ -3,5 +3,6 @@ "genesis-validator-setup": "Genesis validator setup", "run-your-genesis-validator": "Running a genesis validator", "post-genesis-validator-setup": "Initialising a validator account", - "staking": "Staking" + "staking": "Staking", + "proof-of-stake": "Proof of stake" } diff --git a/packages/docs/pages/operators/validators/_meta.uk-UA.json b/packages/docs/pages/operators/validators/_meta.uk-UA.json new file mode 100644 index 00000000..f2658e68 --- /dev/null +++ b/packages/docs/pages/operators/validators/_meta.uk-UA.json @@ -0,0 +1,8 @@ +{ + "hardware": "Вимоги до апаратного забезпечення", + "genesis-validator-setup": "Налаштування генезис-валідатора", + "run-your-genesis-validator": "Запуск генезис-валідатора", + "post-genesis-validator-setup": "Інструкції по запуску валідатора після генезису", + "staking": "Стейкінг", + "proof-of-stake": "Система доказом частки" +} diff --git a/packages/docs/pages/operators/validators/genesis-validator-setup.mdx b/packages/docs/pages/operators/validators/genesis-validator-setup.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/validators/genesis-validator-setup.mdx rename to packages/docs/pages/operators/validators/genesis-validator-setup.en-US.mdx diff --git a/packages/docs/pages/operators/validators/genesis-validator-setup.uk-UA.mdx b/packages/docs/pages/operators/validators/genesis-validator-setup.uk-UA.mdx new file mode 100644 index 00000000..1fda8da4 --- /dev/null +++ b/packages/docs/pages/operators/validators/genesis-validator-setup.uk-UA.mdx @@ -0,0 +1,113 @@ +import { Callout } from 'nextra-theme-docs' + +# Налаштування валідатора Genesis + +Генезисний валідатор - це валідатор, який є валідатором з першого блоку ланцюжка, тобто на етапі генезису. Інформація про валідаторів генезису жорстко закодована у файлі генезису, який розповсюджується серед усіх користувачів, які хочуть взаємодіяти з ланцюжком. + +### Передумови + +- машина, яка відповідає [вимогам](../hardware.mdx) для запуску вузла валідатора +- асоційовану публічну IPv4-адресу з портами 26656, доступну з будь-якого місця для P2P-з'єднань + +## Прегенезис + +Щоб налаштувати всі [необхідні ключі](#required-keys) для валідатора генезису для майбутньої мережі, ви можете виконати наступну команду з псевдонімом на ваш вибір. Зверніть увагу, що цей псевдонім є публічним (адреса вашого облікового запису валідатора буде видно в кожному гаманці) і повинен бути унікальним в межах мережі. + +Ви також повинні вказати статичний `{IP:port}` в аргументі `--net-address` майбутньої P2P-адреси вашого майбутнього вузла. + +### 1. Створіть ключі валідатора: + +#### До `v0.25.0` + +``` bash +export VALIDATOR_ALIAS="CHOOSE_A_NAME_FOR_YOUR_VALIDATOR" +export PUBLIC_IP="LAPTOP_OR_SERVER_IP" +namada client utils init-genesis-validator \ + --alias $VALIDATOR_ALIAS \ + --max-commission-rate-change 0.01 \ + --commission-rate 0.05 \ + --net-address $PUBLIC_IP:26656 +``` + +#### Після `v0.25.0` + +##### 1.1 Згенеруйте свої ключі + +``` bash +export KEY_ALIAS="CHOOSE_A_NAME_FOR_YOUR_VALIDATOR-KEY" +namadaw key gen --pre-genesis --alias $ALIAS +``` +##### 1.2 Згенеруйте свій валідатор + + +Перед тим, як зібрати валідатори tomls попередньої генерації, необхідно зібрати відкриті ключі та призначити баланси для кожного ключа. Це робить організатор мережі. + + +``` bash +export VALIDATOR_ALIAS="CHOOSE_A_NAME_FOR_YOUR_VALIDATOR" +export PUBLIC_IP="LAPTOP_OR_SERVER_IP/DNS" +export BALANCE_ON_KEY="The amount of tokens allocated at genesis to the key" # For testnets, usually 1000000000 +export EMAIL="The email address for validator communications" # Required field, but can be a dummy email (although not recommended) +namada client utils init-genesis-validator \ + --source $KEY_ALIAS \ + --alias $VALIDATOR_ALIAS \ + --net-address "${PUBLIC_IP}:26656" \ + --commission-rate 0.05 \ + --max-commission-rate-change 0.01 \ + --transfer-from-source-amount $BALANCE_ON_KEY \ + --self-bond-amount 1000000 \ + --email $EMAIL +``` + +### 2. Після генерації ключів команда виведе щось на зразок цього: +До `v0.25.0` + +Якщо ви встановили змінну $XDG_DATA_HOME, саме туди буде записано попередній TOML. В іншому випадку дивіться нижче розташування за замовчуванням. + + +#### Linux +```text copy +Pre-genesis TOML written to $HOME/.local/share/namada +``` + +#### MacOS +```text copy +Pre-genesis TOML written to /Users/$USER/Library/Application\ Support/Namada +``` + +### 3. Збережіть цей каталог як змінну середовища для подальшого використання: +До `v0.25.0` +#### Linux +```shell copy +export BASE_DIR="$HOME/.local/share/namada" +``` +#### MacOS +```shell copy +export BASE_DIR="/Users/$USER/Library/Application\ Support/Namada" +``` + +Цей файл є публічною конфігурацією вашого валідатора. Ви можете безпечно поділитися цим файлом з організатором мережі, який відповідає за налаштування та публікацію остаточного файлу генезису та конфігурації Namada для ланцюжка. + +Зверніть увагу, що гаманець, який містить ваші приватні ключі, також буде записано до цього каталогу. + +### 4. Ви можете надрукувати файл validator.toml на виконання: + +### Linux +```shell copy +cat $HOME/.local/share/namada/pre-genesis/$ALIAS/validator.toml +``` + +### MacOS +```shell copy +cat $HOME/Library/Application\ Support/Namada/pre-genesis/$ALIAS/validator.toml +``` + +## Необхідні ключі + +- Ключ облікового запису: Може використовуватися для підписання транзакцій, які вимагають авторизації в предикаті валідатора за замовчуванням, наприклад, для переказу балансу. +- Ключ стейкінгових винагород: Може використовуватися для підписання транзакцій на рахунку стейкінгових винагород PoS. +- Ключ протоколу: Цей ключ використовується самим реєстром валідатора для підписання протокольних транзакцій від імені валідатора. +- Ключ DKG: Спеціальний ключ, необхідний для участі в протоколі DKG. +- Ключ консенсусу: Використовується в шарі консенсусу CometBFT. В даний час цей ключ записаний у файл, який зчитується CometBFT. +- Гарячий ключ eth: Використовується для перевірки транзакцій eth-міст. +- Холодний ключ eth: Використовується для екстрених операцій eth-міст. diff --git a/packages/docs/pages/operators/validators/post-genesis-validator-setup.mdx b/packages/docs/pages/operators/validators/post-genesis-validator-setup.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/validators/post-genesis-validator-setup.mdx rename to packages/docs/pages/operators/validators/post-genesis-validator-setup.en-US.mdx diff --git a/packages/docs/pages/operators/validators/post-genesis-validator-setup.uk-UA.mdx b/packages/docs/pages/operators/validators/post-genesis-validator-setup.uk-UA.mdx new file mode 100644 index 00000000..2e8a8f9e --- /dev/null +++ b/packages/docs/pages/operators/validators/post-genesis-validator-setup.uk-UA.mdx @@ -0,0 +1,56 @@ +import { Callout } from 'nextra-theme-docs' + +# Створення облікового запису валідатора + +```bash copy +namada wallet address gen --alias aliace +``` + +Тепер виберіть ім'я для вашого валідатора: + +```bash copy +export VALIDATOR_ALIAS="" +``` + +Обліковий запис валідатора вимагає додаткових ключів порівняно з обліковим записом користувача, тому почніть з ініціалізації облікового запису валідатора: + +```bash copy +namada client init-validator \ + --alias $VALIDATOR_ALIAS \ + --account-keys aliace \ + --signing-keys aliace \ + --commission-rate \ + --max-commission-rate-change +``` + +Під час ініціалізації акаунта валідатора також обов'язково потрібно вказати як `commission-rate`, що стягується валідатором за винагороду за делегування (у десятковому форматі), так і `maximum-commission-rate-change` за епоху в полі `commission-rate`. Обидва значення виражаються десятковим дробом від 0 до 1. Стандарт для основної мережі буде встановлено суспільним консенсусом, але для тестових мереж стандартом є `0.01` і `0.05` відповідно. + +Ця команда згенерує ключі, необхідні для запуску валідатора: + +- Ключ консенсусу, який використовується у [підписанні блоків у CometBFT](https://docs.cometbft.com/v0.37/core/validators#validator-keys). +- Ключ облікового запису валідатора для підписання транзакцій на обліковому записі валідатора, таких як самозв'язування, відв'язування і виведення токенів, ключів валідатора, предиката валідності, оновлення стану і метаданих. + +Потім він надсилає транзакцію до реєстру, який генерує новий обліковий запис валідатора зі встановленою адресою, що може бути використаний для отримання нових делегацій. + +Ключі та псевдонім адреси будуть збережені у вашому гаманці. + + +**ВАЖЛИВО** + +Наш вузол локального Леджера також буде налаштовано на запуск цього валідатора, вам просто потрібно буде вимкнути його за допомогою, наприклад, `Ctrl + C`, а потім запустити знову тією ж командою, що і раніше. + + +```shell copy +namadan ledger run +``` + +Після цього блокчейн буде використовувати ключ консенсусу валідатора для підписання блоків, якщо ваш обліковий запис валідатора отримає достатньо голосів для включення в активний набір валідаторів. Розмір активного набору валідаторів обмежений до `128` (обмеження задається параметром PoS `max_validator_slots`). + +Зверніть увагу, що залишок токенів NAM на вашому акаунті валідатора не враховується при визначенні частки валідатора і його права голосу: + +```shell copy +namada client balance --owner my-validator --token NAM +``` + +Тобто, баланс адреси вашого акаунта - це звичайний ліквідний баланс, який ви можете переказати за допомогою ключа акаунта-валідатора, залежно від правил предиката валідності акаунта-валідатора. Предикат валідності за замовчуванням дозволяє переказати його за допомогою підписаної транзакції та/або закласти в систему PoS. Тому, щоб збільшити кількість голосів вашого валідатора, вам потрібно накопичити [деякий стейк](./staking.mdx). + diff --git a/packages/docs/pages/operators/validators/proof-of-stake.mdx b/packages/docs/pages/operators/validators/proof-of-stake.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/validators/proof-of-stake.mdx rename to packages/docs/pages/operators/validators/proof-of-stake.en-US.mdx diff --git a/packages/docs/pages/operators/validators/proof-of-stake.uk-UA.mdx b/packages/docs/pages/operators/validators/proof-of-stake.uk-UA.mdx new file mode 100644 index 00000000..bc1d6d3a --- /dev/null +++ b/packages/docs/pages/operators/validators/proof-of-stake.uk-UA.mdx @@ -0,0 +1,27 @@ +# Кубічна система Proof-of-Stake + +Система Namada доказ частки (PoS) використовує токен NAM як токен стейкінгу. Вона має можливість делегування будь-якій кількості валідаторів і предикатів валідності валідаторів, що налаштовуються. + +## Предикат дійсності PoS + +Система PoS реалізована у вигляді облікового запису з [Предикатом дійсності PoS](https://github.com/anoma/namada/blob/main/shared/src/ledger/pos/vp.rs), який керує правилами роботи системи. Його адресу ви можете знайти у своєму гаманці: + +```shell copy +namada wallet address find --alias PoS +``` + +## Епохи + +В основі системи лежить концепція епох. Епоха - це діапазон послідовних блоків, ідентифікованих послідовними натуральними числами. Кожна епоха триває мінімальну тривалість і включає мінімальну кількість блоків з початку попередньої епохи. Це визначається параметрами протоколу. + +Щоб дізнатися поточну епоху, можна виконати наступну команду: + +```shell copy +namadac query-protocol-parameters +``` + +Для запиту поточної епохи можна виконати наступну команду: + +```shell copy +namada client epoch +``` diff --git a/packages/docs/pages/operators/validators/run-your-genesis-validator.mdx b/packages/docs/pages/operators/validators/run-your-genesis-validator.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/validators/run-your-genesis-validator.mdx rename to packages/docs/pages/operators/validators/run-your-genesis-validator.en-US.mdx diff --git a/packages/docs/pages/operators/validators/run-your-genesis-validator.uk-UA.mdx b/packages/docs/pages/operators/validators/run-your-genesis-validator.uk-UA.mdx new file mode 100644 index 00000000..a41b7698 --- /dev/null +++ b/packages/docs/pages/operators/validators/run-your-genesis-validator.uk-UA.mdx @@ -0,0 +1,32 @@ +# Запустіть ваш вузол як валідатор генезису + +Після того, як `CHAIN_ID` буде випущено, можна приєднатися до тестової мережі. Якщо вузол, що приєднується, зареєстрований як генезис-валідатор у файлі генезису, він зможе брати участь у консенсусі і створювати блоки з початку ланцюжка. + +#### Приєднання до мережі +Як валідатор генезису, ви можете приєднатися до мережі з розподіленим `CHAIN_ID`. Скажімо, цей `CHAIN_ID` буде `namada-mainnet`. + +У цьому випадку валідатор генезису може приєднатися до мережі за допомогою: + +``` bash copy +export CHAIN_ID="namada-mainnet" +namada client utils join-network \ +--chain-id $CHAIN_ID --genesis-validator $ALIAS +``` + +#### Запустіть свій вузол і синхронізуйте +```bash copy +NAMADA_LOG=info CMT_LOG_LEVEL=p2p:none,pex:error NAMADA_CMT_STDOUT=true namada node ledger run +``` +Необов'язково: Якщо ви хочете отримати більше розгорнуті логи, ви можете замість цього запустити +```bash copy +NAMADA_LOG=debug CMT_LOG_LEVEL=p2p:none,pex:error NAMADA_CMT_STDOUT=true namada node ledger run +``` +А якщо ви хочете зберегти свої логи у файл, ви можете замість цього запустити програму: +```bash copy +TIMESTAMP=$(date +%s) +NAMADA_LOG=debug CMT_LOG_LEVEL=p2p:none,pex:error NAMADA_CMT_STDOUT=true namada node ledger run &> logs-${TIMESTAMP}.txt +tail -f -n 20 logs-${TIMESTAMP}.txt ## (in another shell) +``` +#### При правильному запуску ви повинні побачити наступний лог: +`[] This node is a validator ...` + diff --git a/packages/docs/pages/operators/validators/staking.mdx b/packages/docs/pages/operators/validators/staking.en-US.mdx similarity index 100% rename from packages/docs/pages/operators/validators/staking.mdx rename to packages/docs/pages/operators/validators/staking.en-US.mdx diff --git a/packages/docs/pages/operators/validators/staking.uk-UA.mdx b/packages/docs/pages/operators/validators/staking.uk-UA.mdx new file mode 100644 index 00000000..54c95025 --- /dev/null +++ b/packages/docs/pages/operators/validators/staking.uk-UA.mdx @@ -0,0 +1,104 @@ +# Стейкінг + +Ми обговорюємо два типи зв'язку: +1. [Non-self bonding](#не-самозв'язок-делегування) (називається делегуванням у багатьох інших екосистемах, але не плутати з делегуванням управління на Namad) +2. [Self-bonding](#self-bonding) (самостійне зв'язування) + +## Делегування (Non-self bonding) + +Користувачі можуть зв'язатися з будь-якою кількістю валідаторів у будь-який час. Коли користувач зв'язує токени, вони не будуть зараховані до частки валідатора (яка, в свою чергу, визначає його право голосу) до початку епохи `n + 2` в поточній епосі `n` (літерал `2` задається параметром PoS `pipeline_len`). Облігації будуть негайно списані з рахунку бондера і зараховані на рахунок системи PoS. + +Прив'язати токени з адреси джерела з псевдонімом `aliace` до валідатора з псевдонімом `validator-1`: + +```shell copy +namada client bond \ + --source aliace \ + --validator validator-1 \ + --amount 12.34 +``` + +Ви можете зробити запит на свої делегації, використовуючи: + +```shell copy +namada client bonds --owner aliace +``` + +Результат цього запиту покаже епоху, з якої будуть активні ваші облігації. + +Оскільки система PoS - це всього лише рахунок, ви можете запитати його баланс, який є сумою всіх облігацій, а також незв'язаних токенів, які ще не були виведені: + +```shell copy +namada client balance --owner PoS +``` + +## Self-bonding + +Також можна збільшити кількість голосів валідатора, зв'язавши NAM з ліквідного балансу валідатора на себе. Користувач може відправити транзакцію самооблігації токенів з акаунта валідатора в систему PoS за допомогою сервісу самооблігації: + +```shell copy +namada client bond \ + --validator my-validator \ + --amount 3.3 +``` + +## Запит до валідатора `bonded-stake` + +Стейк валідатора (право голосу в cometbft) визначається сумою всіх його активних самооблігацій і облігацій від делегаторів, з додаванням косих рисок, якщо такі є. + +Коли токени не зв'язані, зв'язана сума не враховується до частки валідатора до початку епохи `n + 2` в поточній епосі `n`. Облігаційна сума токенів буде негайно списана з рахунку валідатора і зарахована на рахунок системи PoS. + +Побачити всіх валідаторів і їх кількість голосів, яка в точності дорівнює кількості заставлених токенів NAM з їх самооблігацій і делегованих облігацій, ви можете за допомогою запиту: + +```shell copy +namada client bonded-stake +``` + +За допомогою цієї команди ви можете вказати `--epoch`, щоб знайти кількість голосів для деякої майбутньої епохи. Зауважте, що остаточними є лише голоси для поточної та наступної епох. + +## Штрафування + +Якщо валідатор демонструє карану поведінку, то зв'язки з цим валідатором також підлягають вилученню. Тільки ті зв'язки, які були активні в епоху, коли сталася помилка, будуть розірвані зі швидкістю розриву, що відповідає типу помилки. Якщо будь-яка з ваших облігацій була розірвана, це буде відображено в запиті `bonds`. Ви також можете знайти всі штрафи: + +```shell copy +namada client slashes +``` + +## Відкріплення (Unbonding) + +Поки токени зв'язані, вони заблоковані в системі PoS і, отже, не є ліквідними, поки бондер не виведе їх. Для цього бондеру спочатку потрібно відправити транзакцію, щоб "розблокувати" свої токени. Користувач може від'єднати будь-яку суму, аж до суми всіх своїх бондів даному валідатору, ще до того, як бонди стануть активними. + +### Відкріплення з іншого валідатора (Non-self unbonding) +Подати валідатору запит на відв'язування токенів від адреси джерела: +```shell copy +namada client unbond \ + --source aliace \ + --validator validator-1 \ + --amount 1.2 +``` + +### Відкріплення токенів з валідатора (Self-unbonding) + +Подати заявку на відкріплення самозв'язаних токенів від валідатора: +```shell copy +namada client unbond \ + --validator my-validator \ + --amount 0.3 +``` + +## Виведення відкріплених токенів токенів (unbonds tokens) +Коли користувач відкріплює токени, він не зможе вивести їх одразу. Замість цього, токени, відкріплені в епоху `n`, будуть доступні для виведення, починаючи з епохи `n + 6` (літерал `6` задається PoS-параметром `unbonding_len`). Після того, як токени будуть розблоковані, користувач зможе побачити, коли він зможе їх вивести за допомогою запиту `bonds`: + +```shell copy +namada client bonds --owner aliace +``` + +Коли ланцюжок досягає епохи, в якій можна виводити токени (або в будь-який час після цього), `aliace` може подати заявку на виведення незв'язаних токенів назад на свій рахунок: + +```shell copy +namada client withdraw \ + --source aliace \ + --validator validator-1 +``` + +У разі успіху, вилучені токени будуть зараховані на рахунок `aliace` і списані з системи PoS. + diff --git a/packages/docs/pages/users.mdx b/packages/docs/pages/users.en-US.mdx similarity index 100% rename from packages/docs/pages/users.mdx rename to packages/docs/pages/users.en-US.mdx diff --git a/packages/docs/pages/users.uk-UA.mdx b/packages/docs/pages/users.uk-UA.mdx new file mode 100644 index 00000000..a951c021 --- /dev/null +++ b/packages/docs/pages/users.uk-UA.mdx @@ -0,0 +1,13 @@ +# Посібник користувача + +Цей посібник призначений для користувачів, які зацікавлені у використанні Namada по максимуму. Цей посібник включає в себе як найпростіші операції, які може виконати користувач, так і більш розширені функції, до яких він може отримати доступ. + +## Зміст + +- [Прозорі рахунки](./users/transparent-accounts.mdx) +- [MASP](./users/shielded-accounts.mdx) +- [Комісії в Namada](./users/fees.mdx) +- [Делегування в Namada](./users/delegators.mdx) +- [Управління та фінансування суспільних благ](./users/governance.mdx) +- [Використання гаманця Namada](./users/wallet.mdx) + diff --git a/packages/docs/pages/users/_meta.en-US.json b/packages/docs/pages/users/_meta.en-US.json new file mode 100644 index 00000000..8fd9ed06 --- /dev/null +++ b/packages/docs/pages/users/_meta.en-US.json @@ -0,0 +1,10 @@ +{ + "wallet": "Using the Namada wallet", + "transparent-accounts": "Transparent accounts", + "shielded-accounts": "The MASP", + "fees": "Fees on Namada", + "delegators": "Delegating stake on Namada", + "governance": "Governance and Public Goods Funding", + "public-goods-stewards": "PGF", + "ibc": "IBC transfers" +} diff --git a/packages/docs/pages/users/_meta.uk-UA.json b/packages/docs/pages/users/_meta.uk-UA.json new file mode 100644 index 00000000..5c1b7951 --- /dev/null +++ b/packages/docs/pages/users/_meta.uk-UA.json @@ -0,0 +1,10 @@ +{ + "wallet": "Використання Namada гаманця", + "transparent-accounts": "Прозорі рахунки", + "shielded-accounts": "The MASP", + "fees": "Комісії в Namada", + "delegators": "Делегування в Namada", + "governance": "Управління Namada", + "public-goods-stewards": "PGF", + "ibc": "IBC транзакції" +} diff --git a/packages/docs/pages/users/delegators.mdx b/packages/docs/pages/users/delegators.en-US.mdx similarity index 100% rename from packages/docs/pages/users/delegators.mdx rename to packages/docs/pages/users/delegators.en-US.mdx diff --git a/packages/docs/pages/users/delegators.uk-UA.mdx b/packages/docs/pages/users/delegators.uk-UA.mdx new file mode 100644 index 00000000..007ce246 --- /dev/null +++ b/packages/docs/pages/users/delegators.uk-UA.mdx @@ -0,0 +1,37 @@ +# Делегати + +## Делегатори та Делігати +Всі рахунки на Namada з будь-якою кількістю *зв'язаних* NAM, за визначенням, є або делегатори, або делігати. + +#### Що таке делегатор? +> це обліковий запис, який передав NAM до делігату. + +#### Що таке делігат? +> Делегат - це рахунок, який був прив'язаний до делегата. + +## Як стати делегатом +Щоб стати делегатом, ви повинні мати обліковий запис з позитивним балансом NAM. Якщо у вас немає акаунта, ви можете створити його, дотримуючись інструкцій [тут](./transparent-accounts.mdx). + +Після створення облікового запису ви можете прив'язати свій NAM до делегата. На момент написання статті єдиними можливими делегатами є валідатори. У майбутніх версіях Namada буде можливість делегування іншим акаунтам, які не є валідаторами. + +Делегування валідатору відбувається так само, як і [стейкінг з валідатором](../operators/validators/staking.mdx). + +По-перше, ви можете скласти список доступних валідаторів, яким ви можете зробити ставку: + +```bash copy +namadac bonded-stake +``` + +Після того, як ви знайшли адресу вашого улюбленого валідатора, ви можете зв'язатися з ним за допомогою наступної команди: + +```bash copy +namadac bond --validator --amount --signing-keys +``` + +Якщо у вас є псевдонім, збережений у вашому гаманці, ви також можете передати `` замість ``. + +## Переделегування +Переделегування - це процес зміни делегата, до якого ви прив'язані. Цей процес займає 4 епохи, після чого ваша ДН буде переделегована. + +## Відв'язування +Відв'язування - це процес видалення вашого зв'язаного NAM з делегата. Цей процес ідентичний до [відкріплення токенів від валідатора](../operators/validators/staking.mdx#unbonding). diff --git a/packages/docs/pages/users/fees.mdx b/packages/docs/pages/users/fees.en-US.mdx similarity index 100% rename from packages/docs/pages/users/fees.mdx rename to packages/docs/pages/users/fees.en-US.mdx diff --git a/packages/docs/pages/users/fees.uk-UA.mdx b/packages/docs/pages/users/fees.uk-UA.mdx new file mode 100644 index 00000000..e8a5c575 --- /dev/null +++ b/packages/docs/pages/users/fees.uk-UA.mdx @@ -0,0 +1,130 @@ +# Комісії в Namada + +Для того, щоб врегулювати ринок попиту на блокчейн-простір Namada, до транзакцій додається комісія. Для того, щоб будь-яка транзакція Namada вважалася дійсною, необхідно сплатити відповідну комісію. Точний розмір комісії встановлюється користувачем і повинен бути більшим або дорівнювати мінімальній `gas-price`, встановленій керівництвом, яка міститься у файлі генезису в розділі `gas_cost`. + +## Як сплачуються комісії +Якщо це явно вказано, плата за газ сплачується за прапором `--gas-payer`. Якщо прапор `--gas-payer` не вказано, плата за газ сплачується першим ключем у прапорі `--signing-keys` + +Це означає, що в транзакції +```shell copy +namada client transfer \ + --source my-new-acc \ + --target validator-1 \ + --token NAM \ + --amount 10 \ + --signing-keys keysha +``` + +обліковий запис, пов'язаний з ключем `keysha`, буде зобов'язаний сплатити комісію. Це означає, що навіть якщо акаунт `accountant` може мати позитивний баланс NAM, акаунт `keysha` повинен мати асоційований NAM, щоб сплатити комісію за транзакцію. + +Користувач також може вказати прапорець `--gas-payer`, щоб вказати інший рахунок для сплати комісії. Це корисно у випадках, коли на рахунку, який підписує транзакцію, недостатньо NAM для сплати комісії. Наприклад, якщо `keysha` має баланс 5 NAM, а `accountant` має баланс 100 NAM, то наступна транзакція буде дійсною: + +```shell copy +namada client transfer \ + --source my-new-acc \ + --target validator-1 \ + --token NAM \ + --amount 10 \ + --signing-keys keysha \ + --gas-payer keysha2 + ``` + +(Припускаючи, що `keysha2` існує і знаходиться в гаманці користувача) + +Для цілей тестової мережі ми рекомендуємо [використовувати кран](../networks/testnets/pow.mdx) для отримання NAM для комісій за транзакції. + +### Як розраховуються комісії +Комісія за транзакцію розраховується шляхом множення `--gas-limit` на ціну газу. +Користувач може вказати як `--gas-limit`, так і `--gas-price`. Якщо жоден з цих параметрів не вказано, використовується ліміт газу за замовчуванням та мінімальна ціна газу. Ліміт газу за замовчуванням для будь-якої транзакції наразі встановлено на `20_000`. + +Мінімальна ціна на газ встановлюється у файлі генезису в розділі `gas_cost`. + +## Як встановити ціну на газ та ліміт газу + +Рекомендується встановлювати `"gas-limit"` на основі транзакції, що проводиться. Для того, щоб оцінити `"gas-limit"` для конкретної транзакції, слід вказати аргумент `--dry-run-wrapper`. Це означає, що транзакція симулюється, але ще не відправляється до книги. + +Наприклад, наступна команда імітує транзакцію передачі і повертає використаний газ: + +```shell copy +namadac transfer \ + --source my-new-acc \ + --target validator-1 \ + --token NAM \ + --amount 10 \ + --signing-keys keysha \ + --gas-payer keysha2 \ + --dry-run-wrapper +``` + +На виході вийде щось на кшталт + +```md +Dry-run result: Transaction is valid. Gas used: 1785; +``` +Це означає, що ми могли б обґрунтовано здійснити цю транзакцію з `gas-limit` у 2000 році. + +Таким чином, при здійсненні переказу ми можемо вказати `gas-limit` наступним чином: + +```shell copy +namadac transfer \ + --source my-new-acc \ + --target validator-1 \ + --token NAM \ + --amount 10 \ + --signing-keys keysha \ + --gas-payer keysha2 \ + --gas-limit 2000 +``` + +Якщо з якихось причин ми хотіли б платити вищу плату за газ, ми також могли б вказати це наступним чином: + +```shell copy +namadac transfer \ + --source my-new-acc \ + --target validator-1 \ + --token NAM \ + --amount 10 \ + --signing-keys keysha \ + --gas-payer keysha2 \ + --gas-limit 2000 \ + --gas-price 0.01 +``` +Це стимулюватиме валідаторів надавати перевагу цій транзакції перед транзакціями з нижчою ціною на газ. + + +## Сплата зборів токенами в MASP + +Ви також можете сплачувати комісії за допомогою MASP. Це зроблено для того, щоб навіть якщо користувач не має NAM на своєму прозорому балансі, він все одно міг здійснювати прозорі транзакції в ланцюжку. Це ще один стимул для користувачів зберігати максимальну кількість активів на MASP. + +Для того, щоб оплачувати комісії за допомогою MASP, користувач повинен вказати прапорець `--gas-spending-key` і встановити його як псевдонім витратного ключа у своєму гаманці. Це означатиме, що комісія буде списана з екранованого балансу витратного ключа і переведена на прозорий баланс `--gas-payer` (або на адресу, що відповідає першому ключу в `--signing-keys`), перш ніж буде оплачена `--gas-payer`. + +Наприклад, якщо користувач має у своєму гаманці видатковий ключ `spending-key-1` і хоче оплатити комісію за транзакцію за допомогою MASP, він має виконати наступну команду: + +```shell copy +namadac transfer \ + --source keysha \ + --target address-b \ + --token OSMO \ + --amount 10 \ + --gas-payer keysha \ + --gas-spending-key spending-key-1 +``` + +У цьому прикладі `keysha` може мати лише залишок OSMO у своєму прозорому балансі, але `spending-key-1` може мати позитивний залишок NAM у своєму екранованому балансі. У цьому випадку NAM буде переведено на прозорий баланс `keysha`, а потім використано для оплати комісії за транзакцію. + +### Використання одноразового газового лічильника + +Також можна використовувати одноразовий газовий платіж для оплати комісій за транзакції. Це корисно у випадках, коли користувач не бажає розкривати особу `--gas-payer`. Для того, щоб використовувати одноразовий газовий платник, користувач повинен включити прапорець `--disposable-gas-payer`, А також повинен вказати `--gas-spending-key` . Це означатиме, що плата буде списана з екранованого балансу ключа `--gas-spending-key`, і не екранована на прозорий баланс ефемерної прозорої адреси перед тим, як буде оплачена за ефемерною адресою. + +Наприклад, якщо користувач має у своєму гаманці витратний ключ `spending-key-1` і хоче оплатити комісію за транзакцію, використовуючи одноразову адресу, він повинен виконати наступну команду: + +```shell copy +namadac transfer \ + --source keysha \ + --target address-b \ + --token OSMO \ + --amount 10 \ + --gas-spending-key spending-key-1 \ + --disposable-gas-payer +``` + diff --git a/packages/docs/pages/users/governance.mdx b/packages/docs/pages/users/governance.en-US.mdx similarity index 100% rename from packages/docs/pages/users/governance.mdx rename to packages/docs/pages/users/governance.en-US.mdx diff --git a/packages/docs/pages/users/governance.uk-UA.mdx b/packages/docs/pages/users/governance.uk-UA.mdx new file mode 100644 index 00000000..4d06e757 --- /dev/null +++ b/packages/docs/pages/users/governance.uk-UA.mdx @@ -0,0 +1,8 @@ +# Управління + +Механізм управління Namada дає користувачам можливість динамічно оновлювати протокол. + +Існує два різних механізми для створення пропозиції: + +- [Пропозиції в ланцюжку](./governance/on-chain-governance.mdx): Пропозиція голосується і підраховується в ланцюжку. За бажанням може містити код пропозиції, який буде виконано, якщо пропозицію буде прийнято. +- [Пропозиції поза ланцюжком](./governance/off-chain-governance.mdx) diff --git a/packages/docs/pages/users/governance/_meta.en-US.json b/packages/docs/pages/users/governance/_meta.en-US.json new file mode 100644 index 00000000..4b6124bf --- /dev/null +++ b/packages/docs/pages/users/governance/_meta.en-US.json @@ -0,0 +1,4 @@ +{ + "on-chain-governance": "On-chain proposals", + "off-chain-governance": "Off-chain proposals" +} diff --git a/packages/docs/pages/users/governance/_meta.uk-UA.json b/packages/docs/pages/users/governance/_meta.uk-UA.json new file mode 100644 index 00000000..5838729c --- /dev/null +++ b/packages/docs/pages/users/governance/_meta.uk-UA.json @@ -0,0 +1,4 @@ +{ + "on-chain-governance": "Пропозиції на ланцюжку", + "off-chain-governance": "Пропозиції поза ланцюжком" +} diff --git a/packages/docs/pages/users/governance/off-chain-governance.mdx b/packages/docs/pages/users/governance/off-chain-governance.en-US.mdx similarity index 100% rename from packages/docs/pages/users/governance/off-chain-governance.mdx rename to packages/docs/pages/users/governance/off-chain-governance.en-US.mdx diff --git a/packages/docs/pages/users/governance/off-chain-governance.uk-UA.mdx b/packages/docs/pages/users/governance/off-chain-governance.uk-UA.mdx new file mode 100644 index 00000000..726bbb2b --- /dev/null +++ b/packages/docs/pages/users/governance/off-chain-governance.uk-UA.mdx @@ -0,0 +1,53 @@ +import { Callout } from 'nextra-theme-docs' + +# Пропозиції поза ланцюжком + +Якщо з якихось причин створення он-лайн заявки не відповідає вашим потребам, у вас все ще є можливість створити офф-лайн заявку. Позамережеві пропозиції призначені для пропозицій, які не потребують виконання коду в мережі. Пропозиція буде поширюватися на якомусь сторонньому каналі (наприклад, на форумі), а голосування буде проводитися в автономному режимі. Результат голосування обчислюється в автономному режимі, а потім передається до реєстру. + +## Створити пропозицію + +Створіть такий самий json-файл, як і в ланцюжковій пропозиції, і скористайтеся наступною командою: + +```shell copy +namada client init-proposal \ + --data-path proposal.json \ + --offline +``` + +Ця команда створить файл `proposal` у тому самому каталозі, де було запущено команду. + +## Голосування за пропозицію + +Щоб проголосувати за оффлайн-пропозицію, скористайтеся наступною командою: + +```shell copy +namada client vote-proposal --data-path proposal \ + --vote yay \ + --signing-keys your-signing-keys-for-voter \ + --voter your-established-account \ + --offline +``` + +## Підрахунок оффлайн-пропозиції + +Щоб підрахувати результат для оффлайн-пропозиції, нам потрібно зібрати + +- файл `proposal` (повинен мати таку назву) +- всі файли `proposal-vote-${address}`. + +Всі ці файли мають бути в папці (назвемо її `offline-proposal`). + +Тепер ви можете використовувати наступну команду: + +```shell copy +namada client query-proposal-result \ + --offline \ + --data-path `offline-proposal` +``` + +який повідомить вам результат пропозиції. + +## Подати пропозицію поза ланцюжком + +Спільнота може вирішити розмістити дані свого позамережевого голосування в іншому стійкому до цензури блокчейні, щоб зберегти рішення, прийняте суспільним консенсусом. + diff --git a/packages/docs/pages/users/governance/on-chain-governance.mdx b/packages/docs/pages/users/governance/on-chain-governance.en-US.mdx similarity index 100% rename from packages/docs/pages/users/governance/on-chain-governance.mdx rename to packages/docs/pages/users/governance/on-chain-governance.en-US.mdx diff --git a/packages/docs/pages/users/governance/on-chain-governance.uk-UA.mdx b/packages/docs/pages/users/governance/on-chain-governance.uk-UA.mdx new file mode 100644 index 00000000..769fa022 --- /dev/null +++ b/packages/docs/pages/users/governance/on-chain-governance.uk-UA.mdx @@ -0,0 +1,173 @@ +import { Callout } from 'nextra-theme-docs' + +# Пропозиції на ланцюжку + +## Типи пропозицій + +Всі різні типи пропозицій перераховані в [специфікаціях](https://specs.namada.net/governance/proposal). Різні пропозиції матимуть різні дозволи, структури даних, а також вимоги до голосування. + +## Створення пропозиції + +Припускаючи, що у вас є обліковий запис з принаймні 500 NAM токенів (в цьому прикладі ми будемо використовувати `my-new-acc`), давайте отримаємо відповідну адресу + +```shell copy +namada wallet address find --alias `my-new-acc` +``` + +Тепер нам потрібно створити json-файл `proposal.json` зі змістом нашої пропозиції. Скопіюйте наведений нижче текст у json-файл. + +```json +{ + "proposal": { + "content": { + "title": "One Small Step for Namada, One Giant Leap for Memekind", + "authors": "bengt@heliax.dev", + "discussions-to": "forum.namada.net/t/namada-proposal/1", + "created": "2069-04-20T00:04:44Z", + "license": "MIT", + "abstract": "We present a proposal that will send our community to the moon. This proposal outlines all training necessary to accomplish this goal. All memers are welcome to join.", + "motivation": "When you think about it, the moon isn't actually that far away.The moon is only 384,400 km. We have not yet brought Namada to the moon, so it is only natural to use 101 as the prime number for our modular arithmetic operations. 384,400 (mod 101) = 95. 95 km is a distance that can be easily covered by a single person in a single day. Namada was produced by more than 100 people. So 95/100 = 0, rounded to the nearest integer. This means that Namada can reach the moon in no time.", + "details": "Bringing Namada to the moon in no time is easily achievable. We just need to pass this governance proposal and set the plan in action", + "requires": "" + }, + "author": "atest1v4ehgw36g9zyydzpgycy23phxuunxdesgc6nydfsxge5x3zzgscny32pxccn2wfjg5urx3fhzxhmch", + "voting_start_epoch": 21, + "voting_end_epoch": 24, + "grace_epoch": 27, + "type": { + "Default": null + } + } +} +``` + +У полі змісту більшість полів не потребують пояснень. Поле `requires` посилається на ідентифікатор пропозиції, який повинен бути переданий, перш ніж ця пропозиція може бути виконана. Поле `created` має бути у форматі `YYYY-MM-DDTHH:MM:SSZ`. + +Ви повинні змінити значення поля: + +- Поле `Author` на адресу `my-new-acc`; +- `voting_start_epoch` на майбутню епоху (має бути кратна 3), для якої ви хочете почати голосування; +- `voting_end_epoch` з епохою, більшою за `voting_start_epoch`, кратною 3, і до якої більше не будуть прийматися голоси; +- `grace_epoch` з епохою, більшою за `voting_end_epoch` + 6, в яку пропозиція, якщо її буде прийнято, набуде чинності. + +Поле `data` та його структура залежить від типу пропозиції, що подається. Нижче ми описуємо структуру поля "дані" для кожного типу пропозиції. У наведеному вище прикладі наведено структуру для "Пропозиції за замовчуванням". + +### Пропозиція за замовчуванням + +```json +"data" : "" +``` + + +Поле даних для пропозицій за замовчуванням є необов'язковим. Це відповідає природі пропозицій за замовчуванням. +Якщо до пропозицій додано код для зміни параметрів управління, то цей код +буде представлено у вигляді wasm-файлу, а шлях до нього буде вказано в полі даних. + + +### Пропозиція мосту ETH + +```json +"data" : "" +``` + + +**Примітка**: +Кодування буде подано у вигляді рядка + + +### Пропозиція стюарда + +```json +"data" : [ + { + "action" : "add", + "address" : "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn" + } + ] +``` + + +Поле даних для пропозицій стюардів - це **список** дій, які необхідно виконати. +Дії можуть бути як `add`, так і `remove`, а адреса - це адреса +стюарда, якого потрібно додати (add) або видалити (remove). Таким чином, ви можете додати або видалити декілька +стюардів в одній пропозиції. + + +### PGF(фінансування суспільних благ) Пропозиція + +```json +"data" : + { + "continuous" : [ + { + "target": { + "amount": 420, + "address": "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn" + }, + "action" : "add", + }, + ], + "retro" : [ + { + "target": { + "amount": 1337, + "address": "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn" + } + } + ] + }, +``` + + +Поле даних для пропозицій PGF містить як безперервні, так і ретроактивні дії з фінансування PGF. В рамках кожної дії користувач може включити декілька платежів у вигляді вектора. Для кожного платежу в полі "Адреса" вказується адреса одержувача, а також сума негрошової допомоги, яку він отримає. При безперервному фінансуванні PGF вказана сума буде надсилатися в кінці кожної епохи. Існує також можливість вилучити одержувача з безперервного фінансування PGF, вказавши вже існуючий платіж безперервного фінансування, а потім також включивши дію "remove". Для ретроактивного фінансування PGF вказана сума буде надіслана негайно. +*PGF - фінансування суспільних благ (Public Goods Funding)* + + +## Подання пропозиції +Як тільки ваш файл `proposal.json` буде готовий, ви можете подати пропозицію за допомогою (переконайтеся, що він знаходиться в тій самій директорії, що й файл `proposal.json`): + +```shell copy +namada client init-proposal --data-path proposal.json +``` + +Транзакція повинна була бути акцептована. Ви можете запитати всі пропозиції за допомогою: + +```shell copy +namada client query-proposal +``` + +або одну пропозицію з + +```shell copy +namada client query-proposal --proposal-id 0 +``` + +де `0` - ідентифікатор пропозиції. + +## Голосування за пропозицію + +Голосувати за пропозиції можуть лише делегатори та делігати. Якщо ви належите до однієї з цих категорій, ви можете відправити голос за допомогою наступної команди: + +```shell copy +namada client vote-proposal \ + --proposal-id 0 \ + --vote yay \ + --signing-keys +``` + +де `--vote` може бути як `yay`(так), так і `nay`(ні). + +## Перевірте результат + +Як тільки Ledger досягне епохи, визначеної в json як `voting_end_epoch`, голоси більше не прийматимуться. +На початку епохи `grace_epoch` буде виконано код, визначений в json полі `proposal_code`. Ви можете використовувати наступні команди для перевірки статусу пропозиції: + +```shell copy +namada client query-proposal --proposal-id 0 +``` + +або просто перевірити результат: + +```shell copy +namada client query-proposal-result --proposal-id 0 +``` diff --git a/packages/docs/pages/users/ibc.mdx b/packages/docs/pages/users/ibc.en-US.mdx similarity index 100% rename from packages/docs/pages/users/ibc.mdx rename to packages/docs/pages/users/ibc.en-US.mdx diff --git a/packages/docs/pages/users/ibc.uk-UA.mdx b/packages/docs/pages/users/ibc.uk-UA.mdx new file mode 100644 index 00000000..1270bb03 --- /dev/null +++ b/packages/docs/pages/users/ibc.uk-UA.mdx @@ -0,0 +1,82 @@ +import { Callout } from 'nextra-theme-docs' + +# Переказ активів через IBC + +Здійснювати ibc-перекази можна за допомогою Namada cli з командою `namadac ibc-transfer`. Припущені передумови передбачають, що канал був створений, і Hermes працює із належним конфігом на двох вузлах. + +Для проведення міжблокчейнового (IBC) переказу за допомогою команди `ibc-transfer` від Namada, нам потрібно буде знати `base-dir` і `node` кожного екземпляру (і інші параметри переказу). +`base-dir` це базовий каталог кожного вузла, докладніше про нього можна знайти в [base-dir](../operators/ledger/base-directory.mdx). +`node` це `rpc_addr` ретранслятора. +Ви можете запустити +```shell +grep "rpc_addr" ${HERMES_CONFIG} +``` +щоб знайти адресу. + + + **Лише для локального вузла.** + + Щоб знайти адресу вашого Леджера для ланцюга А, ви можете виконати наступну команду: + ```bash copy + export BASE_DIR_A = "${HERMES}/data/namada-a/.namada" + export LEDGER_ADDRESS_A = "$(grep "rpc_address" ${BASE_DIR_A}/${CHAIN_A_ID}/setup/validator-0/.namada/${CHAIN_A_ID}/config.toml)" + ``` + + +Ідентифікатор каналу для цього ланцюга буде залежати від порядку створення каналу. Оскільки ми відкрили лише один канал, `channel-id` це `channel-0`, але при створенні додаткових каналів вони збільшуються на 1 за індексом. channel-id повинен бути переданий ретранслятором. + + + + + + +Припускаючи, що відкритий канал - це `channel-0`, ви можете зберегти його в змінній середовища, виконавши команду: + + + + + +```bash copy +export CHANNEL_ID = "channel-0" +``` + +Міжблокчейнові перекази з ланцюга A можна здійснити, використовуючи: +```bash copy +namadac --base-dir ${BASE_DIR_A} + ibc-transfer \ + --amount ${AMOUNT} \ + --source ${SOURCE_ALIAS} \ + --receiver ${RECEIVER_RAW_ADDRESS} \ + --token ${TOKEN_ALIAS} \ + --channel-id ${CHANNEL_ID} \ + --node ${LEDGER_ADDRESS_A} +``` +Де наведені вище змінні в `${VARIABLE}` слід замінити відповідними значеннями. Початкову адресу отримувача можна знайти так: `namadaw --base-dir ${BASE_DIR_B} address find --alias ${RECEIVER}`. + +Наприклад: +```bash copy +namadac --base-dir ${BASE_DIR_A} + ibc-transfer \ + --amount 100 \ + --source albert \ + --receiver atest1d9khqw36g56nqwpkgezrvvejg3p5xv2z8y6nydehxprygvp5g4znj3phxfpyv3pcgcunws2x0wwa76 \ + --token nam \ + --channel-id channel-0 \ + --node 127.0.0.1:27657 +``` + +Після того, як транзакцію відправлено, ретранслятор повинен передати пакет в інший ланцюжок. Це робиться автоматично релеєром, на якому працює Hermes. Якщо пакет ніколи не буде успішно переданий, кошти повертаються відправнику після закінчення тайм-ауту. Дивіться більше інформації в [специфікації](https://specs.namada.net/interoperability/ibc). + +## Повернення активів з ланцюгів на базі Cosmos-SDK + +Коли був здійснений переказ на ланцюг на основі Cosmos-SDK, міжблокчейновий переказ здійснюється, як описано вище. Проте, при поверненні переказу з ланцюга на основі Cosmos очевидно, що команда переказу `namadac ibc-transfer` не працюватиме. Замість цього вам слід використовувати [`gaiad`](https://github.com/cosmos/gaia). + +```bash +gaiad tx ibc-transfer transfer transfer ${CHANNEL_ID} ${RECEIVER_RAW_ADDRESS} ${AMOUNT}${IBC_TOKEN_ADDRESS} --from ${COSMOS_ALIAS} --node ${COSMOS_RPC_ENDPOINT} --fees 5000uatom +``` + +наприклад: + +```bash copy +gaiad tx ibc-transfer transfer transfer channel-0 atest1d9khqw368qcyx3jxxu6njs2yxs6y2sjyxdzy2d338pp5yd35g9zrv334gceng3z9gvmryv2pfdddt4 10ibc/281545A262215A2D7041CE1B518DD4754EC7097A1C937BE9D9AB6F1F11B452DD --from my-cosmos-address --node https://rpc.sentry-01.theta-testnet.polypore.xyz:443 --fees 5000uatom +``` \ No newline at end of file diff --git a/packages/docs/pages/users/public-goods-stewards.mdx b/packages/docs/pages/users/public-goods-stewards.en-US.mdx similarity index 100% rename from packages/docs/pages/users/public-goods-stewards.mdx rename to packages/docs/pages/users/public-goods-stewards.en-US.mdx diff --git a/packages/docs/pages/users/public-goods-stewards.uk-UA.mdx b/packages/docs/pages/users/public-goods-stewards.uk-UA.mdx new file mode 100644 index 00000000..d803f63b --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards.uk-UA.mdx @@ -0,0 +1,12 @@ +# Документація Стюардів суспільних благ + Фінансування суспільних благ на Namada здійснюється через організацію, яка називається "public goods stewards" (стюарди суспільних благ). Кожен стюард суспільних благ - це [обліковий запис з мультипідписом](./transparent-accounts/multisignature.mdx). + +Кожен стюард обирається керівництвом через окремі пропозиції щодо управління. + +Дивитися специфікацію про фінансування суспільних благ [тут](https://specs.namada.net/economics/public-goods-funding.html) більш детально. + +Ця документація охоплює наступне: + +1. [Як стати стюардом суспільних благ](./public-goods-stewards/electing.mdx). +2. [Як подати заявку на фінансування суспільних благ](./public-goods-stewards/proposing.mdx) +3. [Як голосувати на виборах стюардів](./public-goods-stewards/voting.mdx#voting-for-stewards), а також [пропозиції щодо фінансування суспільних благ.](./public-goods-stewards/voting.mdx#voting-for-pgf-proposals). \ No newline at end of file diff --git a/packages/docs/pages/users/public-goods-stewards/_meta.en-US.json b/packages/docs/pages/users/public-goods-stewards/_meta.en-US.json new file mode 100644 index 00000000..3752b941 --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/_meta.en-US.json @@ -0,0 +1,5 @@ +{ + "electing": "Becoming a Steward", + "voting": "Voting for Stewards and PGF proposals", + "proposing": "PGF proposals (Stewards only)" +} diff --git a/packages/docs/pages/users/public-goods-stewards/_meta.uk-UA.json b/packages/docs/pages/users/public-goods-stewards/_meta.uk-UA.json new file mode 100644 index 00000000..8c1fd26a --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/_meta.uk-UA.json @@ -0,0 +1,5 @@ +{ + "electing": "Як стати стюардом", + "voting": "Голосування за стюардів та PGF пропозиції", + "proposing": "PGF пропозиції (Тільки для стюардів)" +} diff --git a/packages/docs/pages/users/public-goods-stewards/electing.mdx b/packages/docs/pages/users/public-goods-stewards/electing.en-US.mdx similarity index 100% rename from packages/docs/pages/users/public-goods-stewards/electing.mdx rename to packages/docs/pages/users/public-goods-stewards/electing.en-US.mdx diff --git a/packages/docs/pages/users/public-goods-stewards/electing.uk-UA.mdx b/packages/docs/pages/users/public-goods-stewards/electing.uk-UA.mdx new file mode 100644 index 00000000..a5ed6a4a --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/electing.uk-UA.mdx @@ -0,0 +1,93 @@ +import { Callout } from 'nextra-theme-docs' + +# Як стати стюардом + +Стюард суспільних благ може складатися з довільної кількості людей, а може бути й однією особою. Єдина вимога полягає в тому, що мультипідписний акаунт стюарда має бути обраний ком'юніті через пропозицію щодо управління. + +Тому першим кроком до того, щоб стати стюардом, є створення облікового запису мультипідпису. +Це можна зробити за допомогою команд, знайдених в [документації з мультипідпису](../transparent-accounts/multisignature.mdx). + +Після створення облікового запису мультипідпису стюард може подати пропозицію щодо обрання цього облікового запису стюардом. + +## Пропозиція щодо управління + +Пропозиція управління, необхідна для обрання нового стюарда, називається `StewardProposal`. + +### Створення файлу `proposal.json` для `StewardProposal + +Файл `steward_proposal.json` містить інформацію про пропозицію. Це JSON-файл з наступною структурою: + +```json +{ + "proposal" :{ + "content": { + "title": "Stewie for Steward 2024", + "authors": "stewie@heliax.dev", + "discussions-to": "forum.namada.net/t/stewies-manifesto/1", + "created": "2024-01-01T00:00:01Z", + "license": "MIT", + "abstract": "Stewie is running for steward, with a focus on technical research. The technical research I will be focused on will definitely not be for weapons of mass destruction. There is some possibility however that I may be focusing somewhat on open source software for weapons of mass destruction.", + "motivation": "Nobody knows technical research better than me. Trust me. I know it. I have the best technical research. I will be the best steward. Last night, Namada called me and said, Stewie, thank you. I will make public goods funding great again", + "details": "As a genius baby, I possess an unmatched level of intelligence and a visionary mindset. I will utilize these qualities to solve the most complex problems, and direct public goods funding towards weapons of mass destruction ... i mean open source software for weapons of mass destruction", + }, + "author": "stewie", + "voting_start_epoch": 3, + "voting_end_epoch": 6, + "grace_epoch": 12, + }, + "data" : [ + { + "action" : "add", + "address" : "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn" + } + ] +} +``` + +Поле `"data"` містить структуру, яка дозволяє додавати або видаляти +облікового запису мультипідпису зі списку стюардів. У цьому випадку `"action"` - це `"add"`, +а `"address"` - це адреса облікового запису мультипідпису, який буде обрано стюардом. +Якщо `"action"` буде `"remove"`, то `"address"` буде адресою облікового запису мультипідпису +який буде вилучено зі списку стюардів. + + +У полі "Мотивація та абстракція" важливо чітко вказати, який тип суспільних благ +фінансування суспільних благ, на якому буде зосереджений стюард. +З *сферами фінансування суспільних благ* можна ознайомитися в +[специфікації фінансування суспільних благ](https://specs.namada.net/economics/public-goods-funding.html#funding-focuses). + + +### Подання заявки до реєстру + +Команда CLI для подання заявки виглядає наступним чином: + +```shell copy +namadac init-proposal \ + --pgf-stewards \ + --data-path +``` +де `` - шлях до файлу `steward_proposal.json`. + +### Як стати обраним + +Після того, як пропозицію буде подано, за неї проголосує ком'юніті (див. [голосування](./voting.mdx)). Якщо пропозиція пройде, обліковий запис стане стюардом. Якщо пропозиція не пройде, обліковий запис не стане стюардом. + +Після того, як акаунт з мультипідписами буде обрано (що станеться наприкінці `grace_epoch`), він зможе подавати пропозиції до пулу фінансування суспільних благ (див. [подача пропозицій](./proposing.mdx#proposing-funding)). + +## Втрата статусу стюарда + +Існує 4 способи, як стюард може втратити свої повноваження: + +1. Подати у відставку зі статусу стюарда +2. Значно провалити заявку на фінансування ($/frac{2}{3}$ голосів спільноти, і з них $/frac{2}{3}$ проголосували проти заявки) +3. Бути виключеним через пропозицію щодо управління +4. Досягають кінця свого терміну перебування на посаді + +Відставка стюарда може бути здійснена в будь-який момент. +Через CLI це можна зробити за допомогою команди: + +```shell copy +namadac resign-steward --steward my-steward-address +``` + +Дізнайтеся більше про інші способи втрати стюардеси в [специфікації](https://specs.namada.net/economics/public-goods-funding/becoming-a-steward#losing-stewardship-status). diff --git a/packages/docs/pages/users/public-goods-stewards/proposing.mdx b/packages/docs/pages/users/public-goods-stewards/proposing.en-US.mdx similarity index 100% rename from packages/docs/pages/users/public-goods-stewards/proposing.mdx rename to packages/docs/pages/users/public-goods-stewards/proposing.en-US.mdx diff --git a/packages/docs/pages/users/public-goods-stewards/proposing.uk-UA.mdx b/packages/docs/pages/users/public-goods-stewards/proposing.uk-UA.mdx new file mode 100644 index 00000000..02a65372 --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/proposing.uk-UA.mdx @@ -0,0 +1,71 @@ +import { Callout } from 'nextra-theme-docs' + +## Подання заявки на фінансування + +## Форматування файлу `proposal.json` + +Нижче наведено приклад `PGFProposal` (пропозиція фінансування суспільних благ), яку може подати стюард. Зверніть увагу, що тільки стюарди зможуть подавати ці пропозиції. +```json +{ + "proposal" :{ + "content": { + "title": "Stewie for Steward 2024", + "authors": "stewie@heliax.dev", + "discussions-to": "forum.namada.net/t/stewies-manifesto/1", + "created": "2024-01-01T00:00:01Z", + "license": "MIT", + "abstract": "Stewie is running for steward, with a focus on technical research. The technical research I will be focused on will definitely not be for weapons of mass destruction. There is some possibility however that I may be focusing somewhat on open source software for weapons of mass destruction.", + "motivation": "Nobody knows technical research better than me. Trust me. I know it. I have the best technical research. I will be the best steward. Last night, Namada called me and said, Stewie, thank you. I will make public goods funding great again", + "details": "As a genius baby, I possess an unmatched level of intelligence and a visionary mindset. I will utilize these qualities to solve the most complex problems, and direct public goods funding towards weapons of mass destruction ... i mean open source software for weapons of mass destruction", + }, + "author": "stewie", + "voting_start_epoch": 3, + "voting_end_epoch": 6, + "grace_epoch": 12, + }, + "data" : + { + "continuous" : [ + { + "target": { + "amount": 420, + "address": "" + } + "action" : "add", + }, + ], + "retro" : [ + { + "target": { + "amount": 1337, + "address": "" + } + } + ] + }, +} +``` +де `` має бути змінено на адресу одержувача коштів (recipient of the funds). + +Збережіть цей файл як `PGF_proposal.json` у певному місці на вашому комп'ютері. + +## Подання пропозиції + +Для того, щоб подати заявку, стюард може використати наступну команду: + +```shell copy +namada client init-proposal \ + --pgf-proposal \ + --data-path PGF_proposal.json +``` + +Пропозиції буде присвоєно `proposal-id`, який можна використовувати для запиту пропозиції. + +## Запит пропозиції + +Команда для запиту пропозиції наступна: + +```shell copy +namada client query-proposal \ + --proposal-id +``` diff --git a/packages/docs/pages/users/public-goods-stewards/voting.mdx b/packages/docs/pages/users/public-goods-stewards/voting.en-US.mdx similarity index 100% rename from packages/docs/pages/users/public-goods-stewards/voting.mdx rename to packages/docs/pages/users/public-goods-stewards/voting.en-US.mdx diff --git a/packages/docs/pages/users/public-goods-stewards/voting.uk-UA.mdx b/packages/docs/pages/users/public-goods-stewards/voting.uk-UA.mdx new file mode 100644 index 00000000..2f0aaca1 --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/voting.uk-UA.mdx @@ -0,0 +1,27 @@ +# Голосування за стюардів та пропозиції PGF + +## Голосування за стюардів + +Будь-який користувач може (і заохочується) голосувати за потенційних стюардів PGF. Після того, як стюард висунув свою пропозицію на Леджер, спільнота може проголосувати за неї. Процес голосування такий самий, як і для будь-якої іншої пропозиції, але тип пропозиції - `"StewardProposal"`. + +Команда CLI для голосування за стюарда така: + +```shell copy +namada client vote-proposal \ + --proposal-id \ + --vote yay \ + --signing-keys +``` + +Щоб проголосувати проти пропозиції, замініть `yay`(так) на `nay`(ні). + +## Голосування за пропозиції PGF + +Аналогічно виглядає команда для голосування за пропозиції PGF: + +```shell copy +namada client vote-proposal \ + --proposal-id \ + --vote yay \ + --signing-keys +``` diff --git a/packages/docs/pages/users/shielded-accounts.mdx b/packages/docs/pages/users/shielded-accounts.en-US.mdx similarity index 100% rename from packages/docs/pages/users/shielded-accounts.mdx rename to packages/docs/pages/users/shielded-accounts.en-US.mdx diff --git a/packages/docs/pages/users/shielded-accounts.uk-UA.mdx b/packages/docs/pages/users/shielded-accounts.uk-UA.mdx new file mode 100644 index 00000000..30263452 --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts.uk-UA.mdx @@ -0,0 +1,7 @@ +# MASP + +`The multi-asset shielded pool (MASP)` - це схема з нульовою обізнаністю, яка дозволяє користувачам здійснювати перекази, не розкриваючи ні відправника, ні одержувача, ні суму переказу. Кожен переказ сам по собі є доказом нульової обізнаності, і його часто називають "запискою". З точки зору користувачів, створення цих доказів з нульовим рівнем знання відбувається за лаштунками. + +MASP натхненний роботою компанії Electric Coin Company (ECC), яка розробила Zcash, і спирається на Sapling Circuit, реалізуючи функціональність з декількома активами. На додаток до MASP, Namada також реалізувала схему з нульовим рівнем знань для винагороди за внески з набором конфіденційності в захищений спосіб. Ця схема називається Convert Circuit (скорочено CC). + +Більш детальну технічну інформацію про ці схеми можна знайти в [специфікаціях](https://specs.namada.net), а також в [цій статті в блозі](https://namada.net/blog/understanding-the-masp-and-cc-circuits). diff --git a/packages/docs/pages/users/shielded-accounts/_meta.en-US.json b/packages/docs/pages/users/shielded-accounts/_meta.en-US.json new file mode 100644 index 00000000..fa00297e --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/_meta.en-US.json @@ -0,0 +1,4 @@ +{ + "shielded-transfers": "Shielded transfers", + "shielded-rewards": "Shielded rewards" +} diff --git a/packages/docs/pages/users/shielded-accounts/_meta.json b/packages/docs/pages/users/shielded-accounts/_meta.json new file mode 100644 index 00000000..fa00297e --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/_meta.json @@ -0,0 +1,4 @@ +{ + "shielded-transfers": "Shielded transfers", + "shielded-rewards": "Shielded rewards" +} diff --git a/packages/docs/pages/users/shielded-accounts/_meta.uk-UA.json b/packages/docs/pages/users/shielded-accounts/_meta.uk-UA.json new file mode 100644 index 00000000..d0faa058 --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/_meta.uk-UA.json @@ -0,0 +1,4 @@ +{ + "shielded-transfers": "Екрановані перекази", + "shielded-rewards": "Екрановані винагороди" +} diff --git a/packages/docs/pages/users/shielded-accounts/shielded-rewards.mdx b/packages/docs/pages/users/shielded-accounts/shielded-rewards.en-US.mdx similarity index 100% rename from packages/docs/pages/users/shielded-accounts/shielded-rewards.mdx rename to packages/docs/pages/users/shielded-accounts/shielded-rewards.en-US.mdx diff --git a/packages/docs/pages/users/shielded-accounts/shielded-rewards.uk-UA.mdx b/packages/docs/pages/users/shielded-accounts/shielded-rewards.uk-UA.mdx new file mode 100644 index 00000000..b81b5db0 --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/shielded-rewards.uk-UA.mdx @@ -0,0 +1,5 @@ +# Екрановані винагороди + +Екрановані винагороди розподіляються між усіма користувачами в екранованому наборі. Користувачі отримують токени `NAM` за кожну епоху, коли їхні заохочувані активи знаходяться в екранованому наборі. Неформально, кількість `NAM`, що винагороджується за певний актив, пропорційна кількості цього активу в захищеному пулі. Кожен актив має "ставку винагороди", визначену керівництвом, яка встановлює константу пропорційності для цього активу. + +Зацікавлений читач може ознайомитися з [специфікацією](https://specs.namada.net/economics/proof-of-stake) для більш точного пояснення того, як розраховується винагорода. diff --git a/packages/docs/pages/users/shielded-accounts/shielded-transfers.mdx b/packages/docs/pages/users/shielded-accounts/shielded-transfers.en-US.mdx similarity index 100% rename from packages/docs/pages/users/shielded-accounts/shielded-transfers.mdx rename to packages/docs/pages/users/shielded-accounts/shielded-transfers.en-US.mdx diff --git a/packages/docs/pages/users/shielded-accounts/shielded-transfers.uk-UA.mdx b/packages/docs/pages/users/shielded-accounts/shielded-transfers.uk-UA.mdx new file mode 100644 index 00000000..a86b391b --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/shielded-transfers.uk-UA.mdx @@ -0,0 +1,193 @@ +import { Callout } from 'nextra-theme-docs' + +# Екрановані перекази + +У Namada екрановані перекази забезпечуються за допомогою [Multi-Asset Shielded Pool](https://specs.namada.net/masp/ledger-integration.html?highlight=MASP#masp-integration-spec) (MASP). +MASP - це схема з нульовим рівнем знань ([zk-SNARK](https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof)), яка розширює схему [Zcash Sapling](https://raw.githubusercontent.com/zcash/zips/master/protocol/sapling.pdf), додаючи підтримку відправки довільних активів. Всі активи в пулі мають однаковий набір анонімності, це означає, що чим більше транзакцій відправляється на MASP, тим сильніші гарантії конфіденційності. + +## Використання MASP + +Якщо ви знайомі з Zcash, то набір взаємодій, які ви можете виконати з MASP, схожий: + +- [**Екрановані перекази:** прозорі на екрановані адреси](#shielding-transfers) +- [**Екрановані перекази:** екрановані на екрановані адреси](#shielded-transfers) +- [**Неекрановані перекази:** екрановані на прозорі адреси](#unshielding-transfers) + +Ми розрізняємо два типи ключів: +- Видатковий ключ** - це тип приватного ключа, який дозволяє будь-якому користувачеві, що володіє ним, витрачати баланс пов'язаної з ним адреси. Для захищених адрес наявність ключа витрат також дозволяє користувачеві переглядати баланс адреси і дані про транзакції. +- Ключ перегляду** дозволяє будь-якому користувачеві, який володіє ним, переглядати і розкривати деталі транзакцій. Він є похідним від Витратного ключа і має той самий псевдонім. + +### Екранування переказів + +Щоб здійснити екрануючий переказ, користувач повинен мати +прозорий рахунок з певним балансом токенів. + +#### Згенеруйте свій витратний ключ + +Ви можете випадковим чином згенерувати новий витратний ключ за допомогою: + +```shell copy +namadaw masp gen-key --alias +``` + + +Ця команда також створить відповідний спільний доступ до ключа перегляду +з тим самим псевдонімом. + + +#### Створення нової платіжної адреси + +Щоб створити платіжну адресу зі свого витратного ключа, ви можете запустити: + +```shell copy +namadaw masp gen-addr \ + --key \ + --alias +``` + + +Ця команда буде генерувати різні платіжні адреси кожного разу, коли користувач запускає команду. +Платіжні адреси можуть бути повторно використані або відкинуті за бажанням користувача, і будь-який зв'язок +між адресами не може бути розшифрований іншим користувачем без ключа витрат. + + +#### Надішліть свій переказ для захисту + +Отримавши платіжну адресу, ви можете переказати залишок зі свого +прозорого рахунку на свій екранований рахунок: + +```shell copy +namadac transfer \ + --source \ + --target \ + --token btc \ + --amount +``` + +#### Перегляд балансу + +Після того, як цей переказ був трансльований, підтверджений і виконаний в блокчейні, користувач може переглянути свої витратні ключі +баланс свого витратного ключа: + +```shell copy +namadac balance --owner +``` + +### Екрановані перекази + +Після того, як користувач має екранований баланс, його можна переказати на +іншу екрановану адресу: + +```shell copy +namadac transfer \ + --source \ + --target \ + --token btc \ + --amount \ + --signing-keys +``` + +### Неекрановані перекази + +Також є можливість перевести залишок на прозорий рахунок: + +```shell copy +namadac transfer \ + --source \ + --target \ + --token btc \ + --amount \ + --signing-keys +``` + +### Генерація захищених адрес/ключів + +#### Генерація витратних ключів + +Коли клієнт генерує видатковий ключ, він автоматично генерує для нього ключ перегляду. Видатковий ключ діє як "джерело" будь-якого переказу з будь-якої екранованої адреси, отриманої з нього. Ключ перегляду може визначити загальну суму невитрачених коштів, яку має право витратити ключ витрат. + + +#### Генерація платіжних адрес + +Платіжні адреси можуть бути отримані як з витратних ключів, так і з ключів перегляду. Платіжна адреса діє як адреса призначення, за якою будь-які токени, отримані на цю адресу, можуть бути витрачені відповідним ключем витрати. Тільки ключ витрати і ключ перегляду платіжної адреси можуть витрачати і переглядати баланс платіжної адреси відповідно. Нижче наведено приклади того, як платіжні адреси можуть бути +згенерувати платіжні адреси: + +``` +namadaw masp gen-addr --alias my-pa1 --key my-sk +namadaw masp gen-addr --alias my-pa2 --key my-vk +``` + +#### Додавання ключів/адрес вручну + +Ви також можете вручну додавати видаткові ключі, ключі для перегляду та платіжні адреси в необробленому вигляді. Це демонструють команди, наведені нижче. + +``` +namadaw masp add --alias my-sk --value xsktest1qqqqqqqqqqqqqq9v0sls5r5de7njx8ehu49pqgmqr9ygelg87l5x8y4s9r0pjlvu69au6gn3su5ewneas486hdccyayx32hxvt64p3d0hfuprpgcgv2q9gdx3jvxrn02f0nnp3jtdd6f5vwscfuyum083cvfv4jun75ak5sdgrm2pthzj3sflxc0jx0edrakx3vdcngrfjmru8ywkguru8mxss2uuqxdlglaz6undx5h8w7g70t2es850g48xzdkqay5qs0yw06rtxcvedhsv +namadaw masp add --alias my-vk --value xfvktest1qqqqqqqqqqqqqqpagte43rsza46v55dlz8cffahv0fnr6eqacvnrkyuf9lmndgal7erg38awgq60r259csg3lxeeyy5355f5nj3ywpeqgd2guqd73uxz46645d0ayt9em88wflka0vsrq29u47x55psw93ly80lvftzdr5ccrzuuedtf6fala4r4nnazm9y9hq5yu6pq24arjskmpv4mdgfn3spffxxv8ugvym36kmnj45jcvvmm227vqjm5fq8882yhjsq97p7xrwqt7n63v +namadaw masp add --alias my-pa --value patest10qy6fuwef9leccl6dfm7wwlyd336x4y32hz62cnrvlrl6r5yk0jnw80kus33x34a5peg2xc4csn +``` + +### Здійснення екранованих транзакцій + +#### Екранування транзакцій + +Для того, щоб екранувати токени з прозорої адреси, користувач повинен спочатку згенерувати екрановану платіжну адресу, для якої у нього є ключ для здійснення витрат. Після цього можна здійснити переказ з прозорої адреси на новостворену захищену платіжну адресу. Після завершення цього процесу нові токени вважаються "захищеними". Плата за газ +плата за газ стягується з вихідної адреси, яка здійснює переказ на екрановану платіжну адресу. Екранування токенів можна здійснити наступним чином: + +``` +namadac transfer --source Bertha --amount 50 --token BTC --target my-pa +``` + +#### Екранування транзакцій + +"Розекранування" - це процес переказу залишків токенів з екранованого рахунку на прозорий. Коли користувач здійснює переказ з екранованого рахунку (використовуючи відповідний видатковий ключ) на прозорий рахунок, щойно переказані кошти вважаються "неекранованими". Плата за газ стягується з адреси підписанта (яка за замовчуванням повинна відповідати цільовій +адреса одержувача). Після завершення транзакції, видатковий ключ більше не +більше не зможе витратити переказану суму. Нижче наведено приклад +як виконується транзакція без екранування: + +``` +namadac transfer --target Bertha --amount 45 --token BTC --source my-sk +``` + +#### Екрановані перекази + +Екрановані перекази здійснюються з одного екранованого рахунку на інший. З точки зору користувача, це майже еквівалентно прозорому переказу токенів, за винятком того, що комісію за газ сплачує підписант транзакції. Команда для виконання екранованого переказу наведена нижче: + +``` +namadac transfer --source my-sk --amount 5 --token BTC --target your-pa +``` + +### Перегляд захищених залишків + +Ключ перегляду, який є похідним від ключа витрат, дозволяє будь-якому користувачеві, який володіє цим ключем, переглядати залишки, пов'язані з відповідним ключем витрат. Ви можете використовувати цей ключ перегляду для розшифрування повного балансу відповідного ключа перегляду або для запиту його підмножини. + +``` +namadac balance +namadac balance --owner +namadac balance --owner --token BTC +namadac balance --token BTC +``` + +### Перелік захищених ключів/адрес + +Гаманець може перерахувати всі витратні ключі, ключі для перегляду, +та платіжні адреси, які він зберігає. Нижче наведені приклади того, як +можна отримати доступ до сховища гаманця: + +``` +namadaw masp list-keys +namadaw masp list-keys --unsafe-show-secret +namadaw masp list-keys --unsafe-show-secret --decrypt +namadaw masp list-addrs +``` + +### Пошук захищених ключів/адрес + +Гаманець може знайти будь-який видатковий ключ, ключ для перегляду або +платіжну адресу за її псевдонімом. Нижче наведені приклади того, як +можна отримати доступ до сховища гаманця: + +``` +namadaw masp find --alias my-alias +namadaw masp find --alias my-alias --unsafe-show-secret +``` diff --git a/packages/docs/pages/users/transparent-accounts.mdx b/packages/docs/pages/users/transparent-accounts.en-US.mdx similarity index 100% rename from packages/docs/pages/users/transparent-accounts.mdx rename to packages/docs/pages/users/transparent-accounts.en-US.mdx diff --git a/packages/docs/pages/users/transparent-accounts.uk-UA.mdx b/packages/docs/pages/users/transparent-accounts.uk-UA.mdx new file mode 100644 index 00000000..681586a8 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts.uk-UA.mdx @@ -0,0 +1,101 @@ +import { Callout } from 'nextra-theme-docs' + +# Вступ до адрес Namada + +Всі акаунти в Namada мають унікальну адресу, точно один предикат дійсності і, за бажанням, будь-які додаткові дані в підпросторі динамічного зберігання. + +Наразі існує 3 типи адрес облікових записів: +- **Неявний *(ще не повністю підтримується)*:** Неявний акаунт виводиться з вашої пари ключів і може бути використаний для авторизації певних транзакцій з цього акаунта. Він може бути використаний як одержувач транзакцій, навіть якщо обліковий запис раніше не використовувався в ланцюжку. +- **Встановлений:** Використовується для акаунтів, які дозволяють розгортання власної логіки перевірки. Вони повинні бути створені в ланцюжку за допомогою транзакції (наприклад, [ініціалізація облікового запису](./transparent-accounts/send-and-receive-nam-tokens.mdx#initialize-an-established-account)). Адреса генерується в ланцюжку і не відома до моменту застосування транзакції (користувач забезпечує випадковість). +- **Внутрішні:** Спеціальні внутрішні акаунти, такі як акаунт параметрів протоколу, PoS та IBC. + +## Керування зв'язкою ключів + +Namada використовує [ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519) пари ключів для підписання криптографічних операцій в блокчейні. + +Для керування ключами доступні різні підкоманди в розділі: + +```shell copy +namada wallet key +``` + +### Згенерувати ключі + +Існує можливість генерувати ключі за допомогою CLI. При цьому неявна адреса облікового запису також буде отримана в процесі і додана до сховища. + +```shell copy +namada wallet key gen --alias keysha +``` + + +Отримана неявна адреса має той самий псевдонім `keysha`. Попередня команда має той самий ефект, що і `namada wallet address gen --alias keysha`. + + +За замовчуванням ключі зберігаються у зашифрованому вигляді. +Пароль шифрування _не_ є частиною випадковості генерації ключів. + +Гаманець Namada підтримує генерацію ключових пар за допомогою [мнемонічного коду](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) та [HD-шляху](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki). +Щоб згенерувати пару ключів для шляху за замовчуванням, використовуйте +```shell copy +namada wallet key gen --alias keysha --hd-path default +``` + + +За замовчуванням шлях HD для Namada має вигляд `m/44'/877'/0'/0'/0'`. + + +За бажанням користувач може вказати додаткову ключову фразу, яка _використовується_ як частина випадковості генерації ключових пар. + + +ПОПЕРЕДЖЕННЯ: Зберігайте свій мнемонічний код і парольну фразу в безпеці. +Втрата будь-якого з них неминуче призведе до неможливості відновлення акаунта. + + +### Відновити ключі + +Щоб відновити пару ключі за мнемокодом і парольною фразою, скористайтеся +```shell copy +namada wallet key restore --alias keysha --hd-path default +``` + +### Перерахувати всі відомі ключі + +```shell copy +namada wallet key list +``` + +## Керування адресами + + +Для керування адресами, подібно до клавіш, доступні різні підкоманди: + +```shell copy +namada wallet address +``` + +### Згенеруйте неявну адресу + +Назвемо неявну адресу `accountant`: +```shell copy +namada wallet address gen --alias accountant +``` + + +Зауважте, що вона також згенерує і збереже ключ, з якого було отримано адресу, і збереже його під тим самим псевдонімом `accountant`. Таким чином, ця команда має той самий ефект, що і `namada wallet key gen --alias accountant`. + + +```shell copy +namada wallet address gen --alias keysha --hd-path default +``` +генерує адресу за допомогою [мнемонічного коду](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) і [шляху виведення HD](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki). + +### Відновити адресу + +```shell copy +namada wallet address restore --alias keysha --hd-path default +``` +### Перерахуйте всі відомі адреси + +```shell copy +namada wallet address list +``` diff --git a/packages/docs/pages/users/transparent-accounts/_meta.en-US.json b/packages/docs/pages/users/transparent-accounts/_meta.en-US.json new file mode 100644 index 00000000..74f3108e --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/_meta.en-US.json @@ -0,0 +1,4 @@ +{ + "multisignature": "Multisignature", + "send-and-receive-nam-tokens": "Send and Receive Nam Tokens" +} diff --git a/packages/docs/pages/users/transparent-accounts/_meta.json b/packages/docs/pages/users/transparent-accounts/_meta.json new file mode 100644 index 00000000..74f3108e --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/_meta.json @@ -0,0 +1,4 @@ +{ + "multisignature": "Multisignature", + "send-and-receive-nam-tokens": "Send and Receive Nam Tokens" +} diff --git a/packages/docs/pages/users/transparent-accounts/_meta.uk-UA.json b/packages/docs/pages/users/transparent-accounts/_meta.uk-UA.json new file mode 100644 index 00000000..9e52c846 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/_meta.uk-UA.json @@ -0,0 +1,4 @@ +{ + "multisignature": "Мультипідпис", + "send-and-receive-nam-tokens": "Надсилайте й отримуйте Nam токени" +} diff --git a/packages/docs/pages/users/transparent-accounts/multisignature.mdx b/packages/docs/pages/users/transparent-accounts/multisignature.en-US.mdx similarity index 100% rename from packages/docs/pages/users/transparent-accounts/multisignature.mdx rename to packages/docs/pages/users/transparent-accounts/multisignature.en-US.mdx diff --git a/packages/docs/pages/users/transparent-accounts/multisignature.uk-UA.mdx b/packages/docs/pages/users/transparent-accounts/multisignature.uk-UA.mdx new file mode 100644 index 00000000..80659409 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/multisignature.uk-UA.mdx @@ -0,0 +1,160 @@ +import { Callout } from 'nextra-theme-docs' + +# Облікові записи з мультипідписом на Namada + +Облікові записи з мультипідписом(multisigs) - це облікові записи в Namada, які дозволяють використовувати декілька підписів. Використання мультипідписів має багато переваг, включаючи, але не обмежуючись ними + +- Підвищена безпека +- Можливість спільного використання гаманців +- Кращі можливості відновлення + +З цієї причини всі акаунти на Namada за замовчуванням є акаунтами з мультипідписом. + +## Ініціалізація облікового запису мультипідпису + +Перед створенням облікового запису користувач повинен згенерувати принаймні один криптографічний `ключ`, який буде використовуватися для підписання транзакцій. + +Наступний метод згенерує такий ключ: +```shell +namadaw key gen \ +--alias my-key1 +``` +Також можна згенерувати другий ключ (що буде корисно для мультисигналів): +```shell +namadaw key gen \ +--alias my-key2 +``` + +Також можна згенерувати неявну адресу: +```shell +namadaw address gen \ +--alias my-address +``` + +Ініціалізація рахунків на Namada відбувається наступним чином: + +**Обліковий запис без мультипідпису (з одним підписом)**. +```shell +namadac init-account \ +--alias my-multisig-alias \ +--public-keys my-key1 \ +--signing-keys my-key1 +``` + +**Мультипідписний рахунок (щонайменше 2 підписанти)**. +```shell +namadac init-account \ +--alias my-multisig-alias \ +--public-keys my-key1,my-key2 \ +--signing-keys my-key1,my-key2 \ +--threshold 2 +``` + + +## Відправлення транзакції з мультипідписом +Для того, щоб відправити транзакцію з мультипідписом, спочатку необхідно створити офлайн-транзакцію. + +### Створення офлайн-транзакції + +Починаючи з `v0.23.0` існують певні обмеження щодо побудови офлайн-транзакції. Будь ласка, зверніть увагу на будь-які помилки, що можуть виникнути. + + +Аргумент `--dump-tx` дозволяє користувачеві зробити це. Необхідно вказати папку, куди буде скинуто транзакцію. + +```shell +mkdir tx_dumps +``` + +Це можна зробити наступним способом: +```shell +namadac transfer \ +--source my-multisig-alias \ +--target some-established-account-alias \ +--token NAM \ +--amount 100 \ +--signing-keys my-key1 \ +--dump-tx \ +--output-folder-path tx_dumps +``` + +Це означає, що транзакція створена і готова до підписання. + +У вказаній папці буде створено файл `.tx`. Цей файл містить шістнадцяткове представлення байт транзакції. Цей файл можна використовувати для підписання транзакції. + +### Підписання транзакції + +Наступним кроком буде підписання транзакції. Користувач `my-key1` може підписати транзакцію наступним чином: +```shell +namadac sign-tx \ +--tx-path "" \ +--signing-keys my-key1 \ +--owner my-multisig-alias +``` + + +Зауважте, що на цьому етапі транзакцію може бути підписано будь-якою кількістю `--signing-keys`. У результаті буде створено декілька підписів, які можна використовувати для відправлення транзакції. + + + +Це означає, що підпис було збережено до цього файлу (розташованого у поточному каталозі). + +Збережемо його як псевдонім: +```shell +export SIGNATURE_ONE="offline_signature_FB7246E3FC43F59D8AEEC234EBFDB9DF1AC9BB7B14E536D05A7E2617CA41D4CD_0.tx" +``` + +Забезпечте підписання транзакції щонайменше k-з-n ключами, де k - мінімальна кількість підписів, необхідних для відправлення транзакції, а n - загальна кількість ключів. У нашому прикладі k=2 і n=2. + +Припустимо, що це підписання створює ще один підпис, який ми збережемо під псевдонімом `SIGNATURE_TWO`. + +### Відправлення транзакції + +Останнім кроком є відправка транзакції. Це можна зробити за допомогою наступного методу: +```shell +namadac tx \ +--tx-path "tx_dumps/a45ef98a817290d6fc0efbd480bf66647ea8061aee1628ce09b4af4f4eeed1c2.tx" \ +--signatures $SIGNATURE_ONE \ +--signatures $SIGNATURE_TWO \ +--owner my-multisig-alias \ +--gas-payer my-key1 +``` + + +Зверніть увагу на відсутність ком в аргументі `--signatures`. Це пов'язано з тим, що аргумент є списком файлів, а не списком підписів. +Також зверніть увагу на папку `tx_dumps`. Це тека, до якої було створено дамп транзакції, як зазначено у параметрі `--output-folder-path` на попередньому кроці. + + +## Зміна порогу мультипідпису +Існує можливість змінити поріг мультипідпису для акаунта. Це можна зробити наступним способом: +```shell +namadac update-account \ +--address my-multisig-address \ +--threshold 1 \ +--signing-keys my-key1,my-key2 +``` + +Перевірити, чи правильно було оновлено поріг, можна за допомогою пробіжки: +```shell +namadac query-account \ +--owner my-multisig-address +``` +Що дасть поріг 1 разом з двома відкритими ключами. + +## Зміна відкритих ключів облікового запису multisig +Існує можливість змінити відкриті ключі мультисигнального акаунта. Це можна зробити наступним способом: +```shell +namadac update-account \ +--address my-multisig-address \ +--public-keys my-key3,my-key4,my-key5 \ +--signing-keys my-key1,my-key2 +``` + +Що змінить відкриті ключі облікового запису multisig з `my-key1` і `my-key2` на ключі `my-key3`, `my-key4` і `my-key5` (за умови, що вони існують в гаманці). + +Відкриті ключі, надані аргументу `--public-keys`, стануть новими підписантами мультипідпису. Це має бути список відкритих ключів, розділених комами і без пробілів. У списку має бути щонайменше 1 відкритий ключ, а довжина списку має бути не меншою за поріг облікового запису multisig. + +## Відеоурок + +Пропустіть нудне читання і подивіться відеоурок: + + diff --git a/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.mdx b/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.en-US.mdx similarity index 100% rename from packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.mdx rename to packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.en-US.mdx diff --git a/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.uk-UA.mdx b/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.uk-UA.mdx new file mode 100644 index 00000000..06eeae92 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.uk-UA.mdx @@ -0,0 +1,60 @@ +import { Callout } from 'nextra-theme-docs' + +# Надсилання та отримання токенів NAM + +У Namada токени реалізовано у вигляді облікових записів з [Предикатом дійсності токенів](https://github.com/anoma/namada/blob/9b67281e359ebff5467cad57c866fbcf91eb80c8/shared/src/ledger/native_vp/multitoken.rs#L30). +Предикат дійсності (VP) перевіряє, зокрема, що загальна пропозиція (токенів) зберігається в будь-якій транзакції, яка використовує цей токен. Ваш гаманець буде попередньо завантажений деякими адресами токенів, які ініціалізуються в блоці генезису. + +### Ініціалізація існуючого облікового запису + +Якщо у вас вже є ключ у вашому гаманці, ви можете пропустити цей крок. В іншому випадку, [згенеруйте нову пару ключів](../transparent-accounts.mdx#generate-a-keypair) зараз. + +Потім надішліть транзакцію для ініціалізації вашого нового створеного облікового запису і збережіть його адресу з псевдонімом `establishment`. Відкритий ключ `keysha` буде записано в сховище облікового запису для авторизації майбутніх транзакцій. Ми також підписуємо цю транзакцію за допомогою `keysha`. + +```shell copy +namada client init-account \ + --alias establishment \ + --public-keys keysha \ + --signing-keys keysha \ + --threshold 1 +``` + +Після застосування цієї транзакції клієнт автоматично побачить нову адресу, створену транзакцією, і додасть її до свого гаманця з обраним псевдонімом `establishment`. + +Ця команда використовує попередньо створений предикат [User Validity Predicate](https://github.com/anoma/namada/blob/main/wasm/wasm_source/src/vp_user.rs). + +### Надіслати платіж + +Для відправки регулярного переказу токенів з вашого акаунта на адресу `validator-1`: + +```shell copy +namada client transfer \ + --source establishment \ + --target validator-1 \ + --token NAM \ + --amount 10 \ + --signing-keys keysha +``` + +Ця команда спробує знайти і використати ключ адреси джерела для підписання транзакції. + +### Подивитися баланс + +Для запиту балансу токенів для конкретного токена і/або власника: + +```shell copy +namada client balance --token NAM --owner my-new-acc +``` + + +Для будь-якої клієнтської команди, яка відправляє транзакцію (`init-account`, `transfer`, `tx`, `update` і [PoS-транзакції](../../operators/validators/proof-of-stake.mdx)), +ви можете використовувати прапорець `--dry-run-wrapper`, щоб змоделювати транзакцію, яка застосовується в блоці, і подивитися, що буде в результаті. + + +### Баланс всіх відомих адрес + +Ви можете побачити адреси токенів, відомі клієнту, коли ви запитуєте баланс всіх токенів: + +```shell copy +namada client balance +``` diff --git a/packages/docs/pages/users/wallet.mdx b/packages/docs/pages/users/wallet.en-US.mdx similarity index 100% rename from packages/docs/pages/users/wallet.mdx rename to packages/docs/pages/users/wallet.en-US.mdx diff --git a/packages/docs/pages/users/wallet.uk-UA.mdx b/packages/docs/pages/users/wallet.uk-UA.mdx new file mode 100644 index 00000000..deb5722e --- /dev/null +++ b/packages/docs/pages/users/wallet.uk-UA.mdx @@ -0,0 +1,19 @@ +# Посібник з використання гаманця Namada + +Цей документ описує різні концепції гаманців та опції, доступні для користувачів Namada, які хочуть мати можливість [надсилати, отримувати та взаємодіяти](./transparent-accounts/send-and-receive-nam-tokens.mdx) з токенами NAM в блокчейні Namada. + +## Короткий вступ до гаманця Namada +Мета гаманця Namada - надати користувачеві інтерфейс для зберігання і управління ключами і адресами. +[З технічної точки зору](https://vitalik.ca/general/2017/01/14/exploring_ecp.html), ключі - це просто (потенційно) дуже великі цілі числа, які мають певне значення на еліптичній кривій. +Гаманець просто "запам'ятовує" ці дуже великі числа від вашого імені. Ключі - це фундаментальні будівельні блоки для акаунтів на Namada. +Ключі існують у вигляді *пар* (секретного і відкритого ключів) і можуть бути використані для отримання **адреси акаунта** (перші 40 символів хешу SHA256 відкритого ключа). + +Щоб дізнатися більше про адреси, дивіться [Вступ до адрес Namada](./transparent-accounts.mdx). + +## Параметри гаманця на Namada + +Ознайомтеся з різними варіантами створення гаманця: + +- [Гаманець файлової системи](./wallet/file-system-wallet.mdx) +- [Веб-гаманець](./wallet/web-wallet.mdx) +- [Апаратний гаманець](./wallet/hardware-wallet.mdx) diff --git a/packages/docs/pages/users/wallet/_meta.en-US.json b/packages/docs/pages/users/wallet/_meta.en-US.json new file mode 100644 index 00000000..16673639 --- /dev/null +++ b/packages/docs/pages/users/wallet/_meta.en-US.json @@ -0,0 +1,5 @@ +{ + "file-system-wallet": "File system wallet", + "web-wallet": "Web wallet", + "hardware-wallet": "Hardware wallet" +} diff --git a/packages/docs/pages/users/wallet/_meta.uk-UA.json b/packages/docs/pages/users/wallet/_meta.uk-UA.json new file mode 100644 index 00000000..6aa1ac02 --- /dev/null +++ b/packages/docs/pages/users/wallet/_meta.uk-UA.json @@ -0,0 +1,5 @@ +{ + "file-system-wallet": "Файлова система гаманця", + "web-wallet": "Веб-гаманець", + "hardware-wallet": "Апаратний гаманець" +} diff --git a/packages/docs/pages/users/wallet/file-system-wallet.mdx b/packages/docs/pages/users/wallet/file-system-wallet.en-US.mdx similarity index 100% rename from packages/docs/pages/users/wallet/file-system-wallet.mdx rename to packages/docs/pages/users/wallet/file-system-wallet.en-US.mdx diff --git a/packages/docs/pages/users/wallet/file-system-wallet.uk-UA.mdx b/packages/docs/pages/users/wallet/file-system-wallet.uk-UA.mdx new file mode 100644 index 00000000..e2c59bce --- /dev/null +++ b/packages/docs/pages/users/wallet/file-system-wallet.uk-UA.mdx @@ -0,0 +1,11 @@ +## Файлова система гаманця + +За замовчуванням гаманець Namada зберігається у файлі `.namada/{chain_id}/wallet.toml`, де ключі зберігаються у зашифрованому вигляді. Ви можете змінити шлях до базового каталогу за замовчуванням за допомогою `--base-dir` і дозволити зберігання незашифрованих пар ключів за допомогою прапора `--unsafe-dont-encrypt`. + +Якщо гаманець ще не існує, його буде створено для вас, як тільки ви запустите команду, яка намагається отримати доступ до гаманця. Новостворений гаманець буде попередньо завантажено з деякими внутрішніми адресами, такими як `pos`, `pos_slash_pool`, `masp` тощо. + +Наразі клієнт Namada може завантажити пароль за допомогою: + +- **Stdin:** клієнт запитає пароль. +- **Змінна Env:** шляхом експорту ENV-змінної з назвою `NAMADA_WALLET_PASSWORD` зі значенням фактичного пароля. +- **File:** шляхом експорту змінної ENV з назвою `NAMADA_WALLET_PASSWORD_FILE` зі значенням, що містить шлях до файлу з паролем. diff --git a/packages/docs/pages/users/wallet/hardware-wallet.mdx b/packages/docs/pages/users/wallet/hardware-wallet.en-US.mdx similarity index 100% rename from packages/docs/pages/users/wallet/hardware-wallet.mdx rename to packages/docs/pages/users/wallet/hardware-wallet.en-US.mdx diff --git a/packages/docs/pages/users/wallet/hardware-wallet.uk-UA.mdx b/packages/docs/pages/users/wallet/hardware-wallet.uk-UA.mdx new file mode 100644 index 00000000..bafb6d3d --- /dev/null +++ b/packages/docs/pages/users/wallet/hardware-wallet.uk-UA.mdx @@ -0,0 +1,22 @@ +## Апаратний гаманець + +Розширення веб-гаманця Namada сумісне з апаратним забезпеченням [Ledger](https://www.ledger.com/). Цей посібник проведе вас через процес налаштування вашого пристрою Ledger для роботи з Namada. + +### Необхідні умови +Пристрій Ledger зі встановленою останньою версією прошивки. Ви можете знайти інструкції щодо оновлення прошивки [тут](https://support.ledger.com/hc/en-us/articles/360002731113-Update-device-firmware). + +Встановіть npm-пакет javascript [тут](https://www.npmjs.com/package/@zondax/ledger-namada). + +Для того, щоб використовувати леджер з веб-гаманцем, вам потрібно буде встановити [Namada веб-гаманець](./web-wallet.mdx#install). + +### Підключення Вашого реєстру +1. Відкрийте веб-розширення Namada. +2. У розділі налаштувань натисніть на кнопку "Підключити книгу". +3. Встановіть псевдонім для облікового запису, ключами якого буде керувати Ledger. +4. Ви можете вибрати підключення до реєстру через `USB` (рекомендовано) або `HID` (Human Interface Devices). +5. Книга попросить вас підтвердити з'єднання. Підтвердіть підключення на вашому пристрої. +6. Після завершення розширення покаже адресу облікового запису, ключі від якого контролюються реєстром. +7. Тепер ви можете закрити інформаційне вікно і використовувати журнал для підписання транзакцій. + +### Надсилання транзакцій за допомогою реєстру +Інструкції щодо надсилання транзакцій за допомогою веб-гаманця див. у посібнику [веб-гаманець](./web-wallet.mdx#sending-transactions). diff --git a/packages/docs/pages/users/wallet/web-wallet.mdx b/packages/docs/pages/users/wallet/web-wallet.en-US.mdx similarity index 100% rename from packages/docs/pages/users/wallet/web-wallet.mdx rename to packages/docs/pages/users/wallet/web-wallet.en-US.mdx diff --git a/packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx b/packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx new file mode 100644 index 00000000..80957fe9 --- /dev/null +++ b/packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx @@ -0,0 +1,39 @@ +# Веб-гаманець + + +## Встановити +Коли Namada знаходиться в `mainnet`, веб-гаманець буде доступний в більшості веб-магазинів розширень для браузерів. Наразі, ви можете встановити його з вихідного коду, дотримуючись інструкцій нижче. + + +### Встановлення з вихідного коду (для розробки та експериментів) + + +#### Підключення до тестової мережі або запуск локального вузла +1. Дотримуйтесь інструкцій для [testnets](../../networks/testnets.mdx), щоб підключитися до тестової мережі або налаштувати локальний вузол за допомогою [docker](../../introduction/install/docker.mdx). +2. З'ясуйте, де зберігається базовий каталог і збережіть його розташування у вигляді змінної, наприклад, `export BASE_DIR=<шлях/до/базового каталогу>`. + Ви можете слідувати [цим документам](../../networks/testnets/migrating-testnets.mdx#after-v0153), щоб зберегти цю змінну. Також збережіть ідентифікатор ланцюжка як змінну. Ви можете знайти ідентифікатор ланцюжка, виконавши `cat $BASE_DIR/global-config.toml`. Збережіть цей ідентифікатор ланцюжка у змінній `export CHAIN_ID=`. +3. Вам потрібно буде відредагувати конфіг CometBFT, щоб дозволити веб-гаманцю підключатися до вашого вузла. + Конфігурація CometBFT знаходиться в `$BASE_DIR/$CHAIN_ID/cometbft/config/config.toml`. Вам потрібно буде змінити поле `cors_allowed_origins` на `["*"]`. Ви можете зробити це, виконавши + ```копію командного рядка + sed -i 's/cors_allowed_origins = \[\]/cors_allowed_origins = ["*"]/' \ + $BASE_DIR/$CHAIN_ID/cometbft/config/config.toml + ``` + + +#### Налаштування розширення +1. Клонуйте [namada-interface repository](https://github.com/anoma/namada-interface). +2. Дотримуйтесь інструкцій по встановленню у файлі `README.md`. +3. Вставте `cd` у каталог `namada-interface/apps/extension` і виконайте `yarn start:chrome`. Це створить розширення і помістить його в каталог `namada-interface/apps/extension/build`. Це також запустить сервер розробників, який буде стежити за змінами. +4. `cd` в каталог `namada-interface/apps/namada-interface` і запустіть `yarn dev:local`, щоб запустити локальний екземпляр веб-гаманця. +4. Додайте розширення до браузера. Наприклад, в Chrome можна перейти за адресою `chrome://extensions/` і натиснути `Завантажити розпаковане` і вибрати папку `namada-interface/apps/extension/build/chrome/`. + + +## Отримання токенів +Ви можете показати адресу будь-якого акаунта, натиснувши кнопку `Отримати` в початковому поданні на вкладці `Загальні баланси`. Ви можете скопіювати адресу, натиснувши на іконку копіювання поруч з адресою. +При цьому також з'явиться QR-код, який можна відсканувати мобільним гаманцем. + + +## Відправлення транзакцій + + +Для того, щоб відправити транзакції, ви можете натиснути кнопку "Відправити" в початковому поданні на вкладці "Загальні баланси". Це відкриє модальне вікно, яке дозволить вам відправляти токени на будь-який рахунок, з будь-якого рахунку у вашому гаманці, який має позитивний баланс. diff --git a/packages/docs/theme.config.tsx b/packages/docs/theme.config.tsx index ecdfda49..9abdf0ab 100644 --- a/packages/docs/theme.config.tsx +++ b/packages/docs/theme.config.tsx @@ -34,7 +34,12 @@ const config: DocsThemeConfig = { navigation: { prev: true, next: true - } + }, + i18n: [ + { locale: 'en-US', text: 'English' }, + { locale: 'uk-UA', text: 'Українська' }, + { locale: 'zh-CN', text: '中文' } + ] }; export default config;