diff --git a/packages/docs/next.config.js b/packages/docs/next.config.js index 2f617df7..4d836a63 100644 --- a/packages/docs/next.config.js +++ b/packages/docs/next.config.js @@ -17,7 +17,7 @@ const withNextra = require("nextra")({ module.exports = { ...withNextra(), i18n: { - locales: ['en-US', 'uk-UA', 'zh-CN'], + locales: ['en-US', 'uk-UA', 'zh-CN', 'ru-RU'], defaultLocale: 'en-US' }, images: { diff --git a/packages/docs/pages/_meta.ru-RU.json b/packages/docs/pages/_meta.ru-RU.json new file mode 100644 index 00000000..1fb314d6 --- /dev/null +++ b/packages/docs/pages/_meta.ru-RU.json @@ -0,0 +1,8 @@ +{ + "index": "Namada", + "introduction": "Начало работы", + "users": "Руководство пользователя", + "operators": "Руководство для операторов", + "integrating-with-namada" : "Итерация с Namada", + "networks": "Сети" + } diff --git a/packages/docs/pages/index.ru-RU.mdx b/packages/docs/pages/index.ru-RU.mdx new file mode 100644 index 00000000..b06d1e30 --- /dev/null +++ b/packages/docs/pages/index.ru-RU.mdx @@ -0,0 +1,34 @@ +import { DocsAscii } from '../components/DocsAscii' + + + +## О Namada + +[Namada](https://namada.net/) это блокчейн, ориентированный на конфиденциальность активов и использующий технологию доказательства с нулевым разглашением. Криптографические возможности Namada обеспечивают пользователям приватность, не зависящую от активов и межцепочечную конфиденциальность, и поддерживаются фондом Anoma. + +#### Ключевые инновации: + +* Zcash-подобные переводы для любых активов (заменяемых и незаменяемых) +* Вознаграждаемое использование приватности как общественного блага +* Взаимодействие с Ethereum через собственный мост с минимизацией доверия + +### Обзор возможностей + +* Proof-of-Stake с управлением для обеспечения безопасности и развития Namada +* Быстрая финализация BFT с 4-секундными блоками +* Двусторонний мост Ethereum с минимальным уровнем доверия IBC-соединения с цепочками, которые уже используют IBC (все цепочки Cosmos) +* Экранированный пул с несколькими активами (MASP) +* Схема конвертации (вознаграждения за экранированный набор) +* Приложение Ledger + +Для более глубокого изученияобучения мы рекомендуем: + +* Статья: [Представляем Namada: межцепочечная конфиденциальность, ориентированная на активы](https://namada.net/blog/introducing-namada-interchain-asset-agnostic-privacy) +* Статья: [Что такое Namada?](https://blog.namada.net/what-is-namada/) +* [Беседы и подкасты](https://namada.net/talks) + +Чтобы узнать больше о протоколе, мы рекомендуем следующие подробные ресурсы: + +* Доклад на ZK8 Namada: [межцепочечная конфиденциальность, не зависящая от активов](https://youtu.be/5K6YxmZPFkE) +* Спецификации Namada +* [Кодовая база](https://github.com/anoma/namada) \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada.ru-RU.mdx b/packages/docs/pages/integrating-with-namada.ru-RU.mdx new file mode 100644 index 00000000..8bff4e34 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada.ru-RU.mdx @@ -0,0 +1,12 @@ +# Интеграции + +Данное руководство посвящено интеграции с 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) \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/_meta.ru-RU.json b/packages/docs/pages/integrating-with-namada/_meta.ru-RU.json new file mode 100644 index 00000000..4f9b7029 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/_meta.ru-RU.json @@ -0,0 +1,4 @@ +{ + "sdk" : "Использование SDK", + "indexer": "Индексатор" +} diff --git a/packages/docs/pages/integrating-with-namada/indexer.ru-RU.mdx b/packages/docs/pages/integrating-with-namada/indexer.ru-RU.mdx new file mode 100644 index 00000000..2b5ff167 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/indexer.ru-RU.mdx @@ -0,0 +1,105 @@ +import Expandable from '../../components/Expandable'; +import { Callout } from 'nextra-theme-docs' + +# Индексатор Namada + +В сотрудничестве с компанией[ Zondax](https://zondax.ch/) был создан индексатор для блокчейна Namada. + +Индексатор Namada (он же `namadexer`) постоянно запрашивает данные блокчейна Namada и вместе с SDK способен отображать блоки, транзакции и другую ценную информацию в реляционной базе данных (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 в docker** + +```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 +``` + +В случае успеха сервер должен быть запущен как `daemon` на localhost по порту `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) \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/sdk.ru-RU.mdx b/packages/docs/pages/integrating-with-namada/sdk.ru-RU.mdx new file mode 100644 index 00000000..871f5b57 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk.ru-RU.mdx @@ -0,0 +1,60 @@ +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) \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/sdk/_meta.ru-RU.json b/packages/docs/pages/integrating-with-namada/sdk/_meta.ru-RU.json new file mode 100644 index 00000000..a1db1fba --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/_meta.ru-RU.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.ru-RU.mdx b/packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.ru-RU.mdx new file mode 100644 index 00000000..2d2dad54 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/constructing-transfers.ru-RU.mdx @@ -0,0 +1,69 @@ +# Конструирование трансферов + +Теперь, когда кошелек и клиент настроены, мы можем создать среду, необходимую для создания переводов. Это может быть несколько сложно, но приведенный ниже шаблонный код должен помочь: Для генерации переводов потребуются следующие импорты: + +```rust +use namada_sdk::args::InputAmount; +``` + +После того как пользователь[ создал учетную запись](./generating-accounts.mdx) и соответствующую структуру, cоздать и отправить транзакции перевода не составляет особого труда. + +```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()]); +``` \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.ru-RU.mdx b/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.ru-RU.mdx new file mode 100644 index 00000000..f31eb857 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/generating-accounts.ru-RU.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 +} +``` + +## Раскрытие открытого ключа implicit счета + +Для того чтобы раскрыть открытый ключ implicit счета, пользователь должен отправить транзакцию. + +```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) +``` + +После раскрытия открытого ключа учетная запись может быть использована для подписания транзакций. \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/sdk/interface-integration.ru-RU.mdx b/packages/docs/pages/integrating-with-namada/sdk/interface-integration.ru-RU.mdx new file mode 100644 index 00000000..3de25841 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/interface-integration.ru-RU.mdx @@ -0,0 +1,31 @@ +# Использование SDK с интерфейсом Namada + +Интерфейс Namada - [это веб-интерфейс](https://github.com/anoma/namada-interface), разработанный фондом Anoma. + +Он позволяет легко создавать и управлять собственной децентрализованной идентификацией, в том числе интегрироваться с приложением ledger. + +Реализация интерфейса использует сочетание TypeScript и Rust для взаимодействия с SDK. + +## Пример + +```rust +// 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(); +``` + +## Документация + +Для получения более подробной информации ознакомьтесь с документацией, размещенной [здесь](https://github.com/anoma/namada-interface/blob/e9b76f54966ec48befe4a12a47808684e0d40eaf/specs/packages/sdk.md#how-can-you-import-and-use-the-sdk). \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.ru-RU.mdx b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.ru-RU.mdx new file mode 100644 index 00000000..56c60ab4 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-client.ru-RU.mdx @@ -0,0 +1,99 @@ +# Настройка клиента SDK + +После импорта sdk в проект его можно использовать для взаимодействия с блокчейном Namada. Предположим, что у нас есть узел, работающий по ip и порту `127.0.0.1:26657`, и мы хотим отправить транзакцию в сеть. + +SDK может быть использован для различных целей, но в данном примере мы будем использовать его для отправки транзакции в сеть. + +Для начала нам необходимо реализовать клиент, чтобы мы могли взаимодействовать с работающим узлом. + +```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)) + } + } + } +} +``` + +Теперь мы готовы использовать этого клиента для отправки транзакций. \ No newline at end of file diff --git a/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.ru-RU.mdx b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.ru-RU.mdx new file mode 100644 index 00000000..95454890 --- /dev/null +++ b/packages/docs/pages/integrating-with-namada/sdk/setting-up-a-wallet.ru-RU.mdx @@ -0,0 +1,128 @@ +# Настройка кошелька 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(); +``` + +Во второй части приведенной выше функции ключ получается из мнемонической фразы. Псевдоним - это имя ключа, который будет храниться в кошельке. `derivation_path` - путь к ключу в кошельке 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`. Если мы хотим осуществлять переводы с помощью других токенов, то необходимо добавить и эти адреса. \ No newline at end of file diff --git a/packages/docs/pages/introduction.ru-RU.mdx b/packages/docs/pages/introduction.ru-RU.mdx new file mode 100644 index 00000000..520e83ba --- /dev/null +++ b/packages/docs/pages/introduction.ru-RU.mdx @@ -0,0 +1,33 @@ +# Начало работы + +Добро пожаловать в документы Namada! Эта информация предназначена для тех, кто хочет: + +* [Использовать Namada](./users.mdx) +* [Запустить полный узел или валидатора](../rukovodstvo-dlya-operatorov/) +* [Разрабатывать на Namada](../integracii/) + +### Сообщение об ошибках + +Если в процессе работы вы обнаружите какие-либо ошибки, пожалуйста, сообщите о них в [репозиторий Namada.](https://github.com/anoma/namada/issues) Не стесняйтесь также присоединяться к discord и задавать вопросы в [канале Namada.](https://discord.gg/namada) + +### Как использовать документацию + +Вот несколько полезных советов: + +* Комментарии начинаются с `#`: + +`# this is a comment make sure you read them!` + +* Выводы образцов начинаются со стрелки: + +`➜ this is an example command line output useful for comparing` + +* Заполняемые пользователем данные заключаются в угловые скобки: + +`$ this is a command you should run ` + +### О данной документации + +Эта книга написана с использованием GitBook, [исходный текст можно найти в репозитории документации Namada.](https://github.com/anoma/namada-docs) + +Вклад в содержание и структуру этой книги должен осуществляться с помощью запросов на исправление. \ No newline at end of file diff --git a/packages/docs/pages/introduction/_meta.ru-RU.json b/packages/docs/pages/introduction/_meta.ru-RU.json new file mode 100644 index 00000000..9d97fbad --- /dev/null +++ b/packages/docs/pages/introduction/_meta.ru-RU.json @@ -0,0 +1,7 @@ +{ + "quick-start": "Быстрый старт", + "install": "Установка Namada", + "installing-cometbft": "Установка CometBFT", + "privacy": "Конфиденциальность", + "security": "Безопасность" +} diff --git a/packages/docs/pages/introduction/install.ru-RU.mdx b/packages/docs/pages/introduction/install.ru-RU.mdx new file mode 100644 index 00000000..1aafe8fd --- /dev/null +++ b/packages/docs/pages/introduction/install.ru-RU.mdx @@ -0,0 +1,17 @@ +import { Callout } from 'nextra-theme-docs' + +# Установить Namada + +### Установить Namada + + + На данный момент поддерживаются только Linux и MacOS. + + +Установка Namada может быть выполнена следующими способами: + +* [Из исходных файлов](./install/source.mdx) +* [Из двоичных файлов](./install/binaries.mdx) +* [Из образа docker](./install/docker.mdx) + +Требования к аппаратному обеспечению для установки и запуска полного узла Namada можно найти здесь. \ No newline at end of file diff --git a/packages/docs/pages/introduction/install/_meta.ru-RU.json b/packages/docs/pages/introduction/install/_meta.ru-RU.json new file mode 100644 index 00000000..2f67bd1b --- /dev/null +++ b/packages/docs/pages/introduction/install/_meta.ru-RU.json @@ -0,0 +1,5 @@ +{ + "source": "Исходный код", + "binaries": "Бинарные файлы", + "docker": "Docker" +} diff --git a/packages/docs/pages/introduction/install/binaries.ru-RU.mdx b/packages/docs/pages/introduction/install/binaries.ru-RU.mdx new file mode 100644 index 00000000..c46d25d1 --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries.ru-RU.mdx @@ -0,0 +1,32 @@ +# Установка из бинарных файлов + +## Предварительные требования + +Перед установкой 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 в path должны работать следующие команды. + +Зайдите в каталог, содержащий двоичные файлы: + +```bash copy +sudo cp ./namada* /usr/local/bin/ +``` \ No newline at end of file diff --git a/packages/docs/pages/introduction/install/binaries/_meta.ru-RU.json b/packages/docs/pages/introduction/install/binaries/_meta.ru-RU.json new file mode 100644 index 00000000..ffb6dc06 --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries/_meta.ru-RU.json @@ -0,0 +1,4 @@ +{ + "overview-of-binaries": "Использование двоичных файлов", + "prerequisites": "Требования" +} diff --git a/packages/docs/pages/introduction/install/binaries/overview-of-binaries.ru-RU.mdx b/packages/docs/pages/introduction/install/binaries/overview-of-binaries.ru-RU.mdx new file mode 100644 index 00000000..147a19f0 --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries/overview-of-binaries.ru-RU.mdx @@ -0,0 +1,24 @@ +import { Callout } from 'nextra-theme-docs' + +# Использование двоичных файлов + +После установки у вас должны быть следующие двоичные файлы: + +| Binary | Description | +| --------- | ------------------------------------------------------------------------------ | +| `namada` | Основной бинарный файл, который можно использовать для взаимодействия со всеми компонентами Namada| +| `namadan` | Ledger нода | +| `namadac` | Клиент | +| `namadaw` | Кошелек | +| `namadar` | Мостовой ретранслятор ethereum | + +Главный двоичный файл `namada` имеет подкоманды для всех остальных двоичных файлов. Поэтому следующие команды эквивалентны: + +| `namada`x Команда | `namada`x Еквивалент| +| ---------------- | -------------------- | +| `namada Клиент` | `namadac` | +| `namada Нода` | `namadan` | +| `namada Кошелек` | `namadaw` | +| `namada Ретранслятор` | `namadar` | + +Для изучения интерфейса командной строки на уровне любой подкоманды может быть добавлен аргумент `--help`, позволяющий узнать все возможные подкоманды и/или аргументы. \ No newline at end of file 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 index 54961df5..816c3253 100644 --- 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 @@ -1,6 +1,6 @@ import { Callout } from 'nextra-theme-docs' -# Встановлення бінарних файлів +# Використання бінарних файлів Після встановлення у вас повинні з'явитися наступні бінарні файли: @@ -14,12 +14,12 @@ import { Callout } from 'nextra-theme-docs' Основна бінарна команда `namada` має підкоманди для всіх інших бінарних файлів. Тому наступні команди є еквівалентними: -| `namada` Команда | `namada`x еквівалент | +| `namada` x Команда | `namada`x Еквівалент | | --- | --- | -| `namada клієнт` | `namadac` | -| `namada нода` | `namadan` | -| `namada гаманець` | `namadaw` | -| `namada ретранслятор` | `namadar` | +| `namada Клієнт` | `namadac` | +| `namada Нода` | `namadan` | +| `namada Гаманець` | `namadaw` | +| `namada Ретранслятор` | `namadar` | Для вивчення інтерфейсу командного рядка можна додати аргумент `--help` на будь-якому рівні підкоманди, щоб дізнатися про можливі підкоманди та/або аргументи. diff --git a/packages/docs/pages/introduction/install/binaries/prerequisites.ru-RU.mdx b/packages/docs/pages/introduction/install/binaries/prerequisites.ru-RU.mdx new file mode 100644 index 00000000..2efffd62 --- /dev/null +++ b/packages/docs/pages/introduction/install/binaries/prerequisites.ru-RU.mdx @@ -0,0 +1,14 @@ + +## Установка CometBFT + +Для настройки CometBFT следуйте [данным инструкциям.](../../installing-cometbft.mdx) + +## Установка GLIBC + +Наконец, необходимо иметь GLIBC версии `2.33` или выше. + +**MacOS**: поставляемый системой glibc должен быть достаточно свежим. + +**Ubuntu 22.04**: glibc установлен по умолчанию, и больше ничего делать не нужно. + +**Ubuntu 18.04 та Ubuntu 22.04**: по умолчанию glibc имеет версии `2.27 и 2.29` соответственно, что ниже версии, необходимой для работы Namada. Мы рекомендуем не обновлять glibc до требуемой версии, а установить его непосредственно[ из исходных файлов]() или перейти на Ubuntu 22.04, поскольку обновление может оказаться сложным и утомительным. Если обновление glibc заинтересует вас, то на [этом сайте](https://www.linuxfromscratch.org/lfs/view/9.0-systemd/chapter05/glibc.html) приведены шаги по сборке пакета из исходных файлов. \ No newline at end of file diff --git a/packages/docs/pages/introduction/install/docker.ru-RU.mdx b/packages/docs/pages/introduction/install/docker.ru-RU.mdx new file mode 100644 index 00000000..9089d26a --- /dev/null +++ b/packages/docs/pages/introduction/install/docker.ru-RU.mdx @@ -0,0 +1,79 @@ +# При помощи Docker + +## Предварительные компоненты + +Для запуска любых образов docker необходимо установить docker. Инструкции по установке docker для вашей машины можно [найти здесь.](https://docs.docker.com/get-docker/) + +## Загрузка образа docker + +Докер-образ Namada можно [найти здесь.](https://github.com/anoma/namada/pkgs/container/namada) + +На вкладке `Tags` можно найти последнюю версию образа докера. Щелкните по ссылке для нужной версии Namada, которую вы пытаетесь установить. Например, если вы пытаетесь установить Namada `v0.16.0`, вы должны щелкнуть на ссылке `v0.16.0`. + +Тег загруженного докер-образа можно узнать, запустив команду `docker images`. Метка будет находиться в первом столбце результата. + +## Запуск образа docker + +После загрузки образа docker будет полезно экспортировать некоторые переменные окружения: + +```bash copy +export CHAIN_ID= +``` + +Следующая команда docker run запустит узел ledger: + +```bash copy +docker run -P -i -t $DOCKER_IMAGE +``` + +Где `` - это любая команда, которую можно выполнить после namada в терминале. Например, если вы хотите запустить `namada client utils join-network --chain-id $CHAIN_ID`, вы должны выполнить: + +```bash copy +docker run -P -i -t $DOCKER_IMAGE client utils join-network --chain-id $CHAIN_ID +``` + +Затем для выполнения любых других команд ledger можно выполнить команду: + +```bash copy +docker /bin/bash -c "/bin/bash","-c", "" +``` + +## Альтернативный метод (самостоятельная сборка образа docker) + +В качестве альтернативы можно собрать образ docker самостоятельно! + +Начните с экспорта некоторых переменных окружения: + +```bash copy +export CHAIN_ID=export BRANCH= +``` + +Например, если требуется собрать docker-образ для `Namada v0.16.0` и `chain-id public-testnet-69.0.b20a1337aa1`, то нужно выполнить команду: + +```bash copy +export CHAIN_ID=public-testnet-69.0.b20a1337aa1export BRANCH=v0.16.0 +``` + +Затем можно собрать образ docker, выполнив команду: + + +```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. Тег загруженного docker-образа можно узнать, выполнив команду docker images. Тег будет первым столбцом выходных данных. + +Сохраните этот образ docker в качестве переменной окружения + +```bash copy +export DOCKER_IMAGE= +``` + +Затем можно запустить образ docker, выполнив команду: + +```bash copy +docker run -P -i -t $DOCKER_IMAGE +``` \ No newline at end of file diff --git a/packages/docs/pages/introduction/install/source.ru-RU.mdx b/packages/docs/pages/introduction/install/source.ru-RU.mdx new file mode 100644 index 00000000..7c1f35c7 --- /dev/null +++ b/packages/docs/pages/introduction/install/source.ru-RU.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 +``` + + +Во время внутренних и частных тестовых сетей проверьте последнюю ветку тестовой сети, используя `git checkout $NAMADA_TESTNET_BRANCH`. Где `$NAMADA_TESTNET_BRANCH`имя ветки testnet, которое будет указано в [документации testnet](https://docs.namada.net/introduction/testnets/environment-setup). + + +### Добавление двоичных файлов в`$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). \ No newline at end of file diff --git a/packages/docs/pages/introduction/install/source/_meta.ru-RU.json b/packages/docs/pages/introduction/install/source/_meta.ru-RU.json new file mode 100644 index 00000000..96a5debd --- /dev/null +++ b/packages/docs/pages/introduction/install/source/_meta.ru-RU.json @@ -0,0 +1,4 @@ +{ + "pre-requisites" : "Требования", + "troubleshooting": "Устранение неполадок" +} diff --git a/packages/docs/pages/introduction/install/source/pre-requisites.ru-RU.mdx b/packages/docs/pages/introduction/install/source/pre-requisites.ru-RU.mdx new file mode 100644 index 00000000..d5960acb --- /dev/null +++ b/packages/docs/pages/introduction/install/source/pre-requisites.ru-RU.mdx @@ -0,0 +1,57 @@ +# Предварительные компоненты + +Если вы хотите установить Namada из исходного кода, то сначала вам придется установить некоторые зависимости: + +* [Rust](https://www.rust-lang.org/tools/install) +* [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +* [Clang](https://clang.llvm.org/get\_started.html) +* [OpenSSL](https://www.openssl.org/source/) +* [LLVM](https://releases.llvm.org/download.html) + +### Rust + +По окончании установки убедитесь, что каталог `bin Cargo $HOME/.cargo/bin` доступен в переменной окружения PATH. Для продолжения работы можно либо перезапустить оболочку, либо выполнить команду `source $HOME/.cargo/env`. + +Если у вас уже установлен Rust, убедитесь, что вы используете последнюю версию, выполнив команду: + +```shell copy +rustup update +``` + +### Оставшиеся компоненты + +Затем установите оставшиеся компоненты. + +**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-installation do](https://grpc.io/docs/protoc-installation/) \ No newline at end of file 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 index 0d43b398..05e285fc 100644 --- a/packages/docs/pages/introduction/install/source/pre-requisites.uk-UA.mdx +++ b/packages/docs/pages/introduction/install/source/pre-requisites.uk-UA.mdx @@ -19,7 +19,6 @@ rustup update ## Решта залежностей Потім встановіть решту залежностей. -{/* TODO: Turn these into code boxes with toggles for OS */} **Ubuntu:** запуск наступної команди має встановити все необхідне: diff --git a/packages/docs/pages/introduction/install/source/troubleshooting.ru-RU.mdx b/packages/docs/pages/introduction/install/source/troubleshooting.ru-RU.mdx new file mode 100644 index 00000000..43b4adc3 --- /dev/null +++ b/packages/docs/pages/introduction/install/source/troubleshooting.ru-RU.mdx @@ -0,0 +1,97 @@ +# Устранение неисправностей при установке из источника + +### Недостаточно оперативной памяти + +[Локальная сборка двоичных файлов](./) - задача, требующая больших вычислительных затрат и требующая от вашего компьютера больших усилий. Для компиляции обычно требуется не менее 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 +``` \ No newline at end of file diff --git a/packages/docs/pages/introduction/installing-cometbft.ru-RU.mdx b/packages/docs/pages/introduction/installing-cometbft.ru-RU.mdx new file mode 100644 index 00000000..37e5f908 --- /dev/null +++ b/packages/docs/pages/introduction/installing-cometbft.ru-RU.mdx @@ -0,0 +1,34 @@ +# Установка 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 +``` \ No newline at end of file diff --git a/packages/docs/pages/introduction/privacy.ru-RU.mdx b/packages/docs/pages/introduction/privacy.ru-RU.mdx new file mode 100644 index 00000000..130ccd2e --- /dev/null +++ b/packages/docs/pages/introduction/privacy.ru-RU.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-адрес, зашифровать интернет-соединение и сделать просмотр веб-страниц более анонимным. \ No newline at end of file diff --git a/packages/docs/pages/introduction/quick-start.ru-RU.mdx b/packages/docs/pages/introduction/quick-start.ru-RU.mdx new file mode 100644 index 00000000..82aa54fb --- /dev/null +++ b/packages/docs/pages/introduction/quick-start.ru-RU.mdx @@ -0,0 +1,63 @@ +# Быстрый старт + +### О данном руководстве + +Это руководство предназначено для тех, кто заинтересован в скорейшем запуске Namada. В нем вы узнаете, как установить Namada, присоединиться к сети testnet, запустить узел и получить токены. + +### Установка 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 ` + +### Запуск узла 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 +``` + +Это должно синхронизировать ваш узел с ledger и займет некоторое время (в зависимости от аппаратного обеспечения вашей машины, а также от времени, прошедшего с момента генезиса до начала синхронизации). Последующие команды (создание учетной записи и т.д.) вряд ли будут работать до тех пор, пока узел не будет полностью синхронизирован. Поинтересуйтесь текущей высотой блока у других участников, чтобы убедиться, что вы синхронизированы, и только после этого можно приступать к работе. + +### Создание учетной записи и получение токенов + +Прежде всего, для получения токенов вам потребуется неявная учетная запись. Создать ее можно с помощью: + +```shell copy +namadaw address gen --alias +``` + +Для продолжения этого введения предположим, что ваш основной псевдоним - `stanley`. В результате будет создана новая учетная запись и сохранена в связке ключей по умолчанию. Учетную запись можно будет увидеть с помощью: + +```shell copy +namadaw address list +``` + +### Получение токенов (только для testnet) + +Токены Testnet можно получить [из крана.](https://faucet.heliax.click/) + +### Далее + +Далее можно сделать множество интересных вещей. Возможно, вы попробуете [экранировать NAM](../users/shielded-accounts/shielded-transfers.mdx), связать свои токены с валидатором [для делегирования ](../users/delegators.mdx) или [стать валидатором.](./operators/validators.mdx) \ No newline at end of file diff --git a/packages/docs/pages/introduction/security.ru-RU.mdx b/packages/docs/pages/introduction/security.ru-RU.mdx new file mode 100644 index 00000000..e45ef286 --- /dev/null +++ b/packages/docs/pages/introduction/security.ru-RU.mdx @@ -0,0 +1,11 @@ +# Безопасность и сообщения об ошибках + +Если вы обнаружили уязвимость в системе безопасности или потенциальную уязвимость в данном проекте, пожалуйста, сообщите нам об этом как можно скорее, отправив письмо по адресу [security@heliax.dev](mailto:security@heliax.dev). + +## Выявление ошибок + +Текущие вознаграждения за ошибки для Namada показаны ниже. Вознаграждения выплачиваются в NAM. + +| Уязвимость | Награда | +| ---------- | -------- | +| Вскоре | Ожидайте | \ No newline at end of file diff --git a/packages/docs/pages/networks.ru-RU.mdx b/packages/docs/pages/networks.ru-RU.mdx new file mode 100644 index 00000000..691b8043 --- /dev/null +++ b/packages/docs/pages/networks.ru-RU.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.ru-RU.json b/packages/docs/pages/networks/_meta.ru-RU.json new file mode 100644 index 00000000..31b2a899 --- /dev/null +++ b/packages/docs/pages/networks/_meta.ru-RU.json @@ -0,0 +1,4 @@ +{ + "mainnets" : "Основные сети", + "testnets": "Тестовые сети" +} diff --git a/packages/docs/pages/networks/mainnets.ru-RU.mdx b/packages/docs/pages/networks/mainnets.ru-RU.mdx new file mode 100644 index 00000000..0b77db41 --- /dev/null +++ b/packages/docs/pages/networks/mainnets.ru-RU.mdx @@ -0,0 +1,3 @@ +# Mainnets + +Эта страница будет обновляться и заполняться по мере запуска сети. \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets.ru-RU.mdx b/packages/docs/pages/networks/testnets.ru-RU.mdx new file mode 100644 index 00000000..49336a9e --- /dev/null +++ b/packages/docs/pages/networks/testnets.ru-RU.mdx @@ -0,0 +1,45 @@ +# Testnets + +Подробнее об этом читайте тут: + +[Анонсирование публичных тестовых сетей Namada.](https://blog.namada.net/announcing-namada-public-testnets/) + +## Последний тестнет + +- Namada public testnet 14: +- Дата начала: 5 октября 2023 года 17:00 UTC +- Версия протокола Namada: `v0.23.2` +- Версия Cometbft: `0.37.2` +- CHAIN\_ID: `public-testnet-14.5d79b6958580` + +Историю всех тестовых сетей можно [посмотреть здесь.](./testnets/testnet-history.mdx) + +## Версии протокола Namada + +В тестовой сети могут быть развернуты различные версии протокола Namada. Для детального ознакомления с тем, что включает в себя каждая версия протокола, обратитесь к [журналу изменений на GitHub](https://github.com/anoma/namada/tree/main/.changelog), в котором указано, какие изменения были внесены между версиями. + +## Сообщить об ошибке + +Если вы обнаружили ошибку, пожалуйста, отправьте сообщение о ней [с помощью шаблона](https://github.com/anoma/namada/issues/new/choose). + +## Как присоединиться к тестовой сети Namada + +1. [Настройка среды](./testnets/environment-setup.mdx) +2. [Инструкции по Pre-genesis](./testnets/pre-genesis.mdx) +3. [Настройка валидатора Pre-genesis](../operators/validators/genesis-validator-setup.mdx) +4. [Заявка на валидатора Pre-genesis](./testnets/genesis-validator-apply.mdx) +5. [Запуск валидатора genesis](../operators/validators/run-your-genesis-validator.mdx) +6. [Запуск полного узла](../operators/ledger/running-a-full-node.mdx) +7. [Становление валидатора после генезиса](./testnets/post-genesis-validator.mdx) + +## Блок-схема сети + +Публичная тестовая сеть Namada является бессрочной, к ней может присоединиться любой желающий без разрешения централизованной стороны. Ожидайте частых обновлений (каждые две недели). + +## Проводник блоков + +Проводник блоков находится в стадии разработки. Последнюю версию можно найти [на сайте](https://namadaexplorer.com/). + +## Сообщество + +Для вопросов и обратной связи используйте [GitHub](https://github.com/anoma/namada/issues) или [Discord.](https://discord.gg/namada) Не забывайте следить за [Namada в Twitter](https://twitter.com/namada), чтобы получать забавные мемы и актуальные обновления тестовой сети. \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/_meta.ru-RU.json b/packages/docs/pages/networks/testnets/_meta.ru-RU.json new file mode 100644 index 00000000..6070b679 --- /dev/null +++ b/packages/docs/pages/networks/testnets/_meta.ru-RU.json @@ -0,0 +1,12 @@ +{ + "environment-setup": "Настройка среды", + "migrating-testnets": "Этапы миграции для тестовых сетей", + "pre-genesis": "Инструкция валидаторов Pre-genesis", + "genesis-validator-apply": "Заявка на получения статуса валидатора генезис", + "joining-the-testnet": "Присоединения к последней тестовой сети", + "post-genesis-validator": "Стать валидатором post genesis", + "testnet-history": "История тестовых сетей", + "pow": "Использование крана testnet", + "faq": "FAQ(Часто задаваемые вопросы)", + "campfire": "Тестнет Namada Campfire" +} diff --git a/packages/docs/pages/networks/testnets/campfire.ru-RU.mdx b/packages/docs/pages/networks/testnets/campfire.ru-RU.mdx new file mode 100644 index 00000000..70ee5990 --- /dev/null +++ b/packages/docs/pages/networks/testnets/campfire.ru-RU.mdx @@ -0,0 +1,53 @@ +import { Callout } from 'nextra-theme-docs' + +# Тестнет Namada Campfire + + +Тестнет Namada Campfire ⛺🔥 работает параллельно с тестнетом "Валидатор". Это тестовая сеть, управляемая сообществом, которая в настоящее время поддерживается и организуется [коллективом Luminara](https://luminara.icu/) небольшой группой сторонников Namada. В Campfire обычно используется последняя версия (или предварительный релиз), которая может отличаться от версии тестовой сети валидатора. Посмотреть версию и многое другое можно на сайте [https://testnet.luminara.icu.](https://testnet.luminara.icu/) + + +## Присоединение + + +Самая актуальная документация по присоединению к Campfire ⛺🔥 [находится здесь.](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 также составил шпаргалку Namada CLI, которая доступна и полезна любому пользователю Namada. \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/environment-setup.ru-RU.mdx b/packages/docs/pages/networks/testnets/environment-setup.ru-RU.mdx new file mode 100644 index 00000000..e29ccee0 --- /dev/null +++ b/packages/docs/pages/networks/testnets/environment-setup.ru-RU.mdx @@ -0,0 +1,76 @@ +import {Steps} from 'nextra-theme-docs' +import { Callout } from 'nextra-theme-docs' + +# Настройка среды + +Если вы не хотите собирать Namada из исходных файлов, вы можете установить Namada из двоичных файлов. Обратите внимание, что сборка из исходных файлов может быть сложным процессом и не рекомендуется для новичков. + + +Экспортируйте следующие переменные: + +```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 -ysudo apt-get install build-essential make pkg-config libssl-dev libclang-dev -ycurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` + +## Установка CometBFT + +### Инструкции по установке CometBFT см. в разделе [Установка CometBFT здесь.](../../introduction/installing-cometbft.mdx) + +### Скопируйте двоичные файлы 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` + + \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/faq.ru-RU.mdx b/packages/docs/pages/networks/testnets/faq.ru-RU.mdx new file mode 100644 index 00000000..a410ca78 --- /dev/null +++ b/packages/docs/pages/networks/testnets/faq.ru-RU.mdx @@ -0,0 +1,35 @@ +# Namada FAQ + +### В: Как присоединиться в качестве валидатора после генезиса? + +О: Присоединиться в качестве валидатора после генезиса можно, следуя[ следующим инструкциям.](../../operators/validators/post-genesis-validator-setup.mdx) + +### В: Как пользоваться краном? + +О: Кран можно [открыть тут](https://faucet.heliax.click/) + +### В: Где я могу посмотреть доступные токены на Faucet? + +О: Ниже приведен список токенов, которые можно вывести с помощью крана: + +NAM, DOT, ETH, BTC + +Есть еще несколько, но мы оставляем за вами задачу выяснить, какие именно 🤔 HINT: `namadac balance` + +### В: Как использовать Ethereum Bridge? + +О: По состоянию на 0.23.2 Ethereum Bridge еще не реализован, следите за [журналом изменений](https://github.com/anoma/namada/tree/main/.changelog) 👀, чтобы узнать, когда он будет официально выпущен. + +### В: Как сделать IBC-перевод? + +О: Начиная с версии 0.23.1 вы можете воспользоваться [документацией здесь!](../../users/ibc.mdx) + +### В: Какие требования мне необходимы для работы в качестве пользователя/валидатора? + +О: Смотрите [требования к оборудованию.](../../operators/hardware.mdx) + +Для сборки двоичных файлов из исходных требуется не менее 16 ГБ оперативной памяти. + +В: Где я могу найти исполняемые файлы для запуска Namada, если я не хочу собирать его из исходных файлов? + +О: См. раздел [Установка Namada из двоичных файлов](../../introduction/install/binaries.mdx) \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/genesis-validator-apply.ru-RU.mdx b/packages/docs/pages/networks/testnets/genesis-validator-apply.ru-RU.mdx new file mode 100644 index 00000000..ec53f818 --- /dev/null +++ b/packages/docs/pages/networks/testnets/genesis-validator-apply.ru-RU.mdx @@ -0,0 +1,39 @@ +import { Callout } from 'nextra-theme-docs' + +# Заявка на получение статуса валидатора генезиса + +Перед запуском тестовой сети вы можете подать заявку на участие в качестве валидатора генезиса. + +### Настройка + +Следуйте данному руководству по созданию файлов [валидатора "до генезиса"](../../operators/validators/genesis-validator-setup.mdx#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. + + +### Предоставление конфигурации + +Если вы хотите стать валидатором genesis для тестовой сети, пожалуйста, сделайте pull request на [https://github.com/anoma/namada-testnets](https://github.com/anoma/namada-testnets), добавив свой файл `validator.toml` в соответствующую директорию (например, `namada-public-testnet-2` для второй публичной тестовой сети), переименовав его в `$alias.tom`l. Например, если вы выбрали для себя псевдоним "bertha", то отправьте файл с именем `bertha.toml`. Пример [PR можно посмотреть здесь.](https://github.com/anoma/namada-testnets/pull/29) + +### Ожидание `CHAIN_ID` + +Дождитесь распространения соответствующего `CHAIN_ID`. \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/joining-the-testnet.ru-RU.mdx b/packages/docs/pages/networks/testnets/joining-the-testnet.ru-RU.mdx new file mode 100644 index 00000000..a9c3b84d --- /dev/null +++ b/packages/docs/pages/networks/testnets/joining-the-testnet.ru-RU.mdx @@ -0,0 +1,15 @@ +# Присоединение к последней тестовой сети + +В зависимости от того, являетесь ли вы валидатором genesis, вы можете присоединиться к последней тестовой сети либо в качестве валидатора genesis, либо в качестве полноценного узла. + +### Присоединение в качестве валидатора genesis + +Присоединение в качестве валидатора тестовой сети идентично присоединению в качестве валидатора основной сети. + +Поэтому обратитесь к [этой документации.](../../operators/validators/run-your-genesis-validator.mdx) + +### Присоединение в качестве полного узла + +Если вы не являетесь валидатором genesis, пожалуйста, выполните шаги по присоединению [в качестве полного узла](../../operators/ledger/running-a-full-node.mdx). + +Затем можно испытать себя в качестве валидатора, [став валидатором после генезиса.](./post-genesis-validator.mdx) \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/migrating-testnets.ru-RU.mdx b/packages/docs/pages/networks/testnets/migrating-testnets.ru-RU.mdx new file mode 100644 index 00000000..e704f45b --- /dev/null +++ b/packages/docs/pages/networks/testnets/migrating-testnets.ru-RU.mdx @@ -0,0 +1,72 @@ +import { Callout, Steps } from 'nextra-theme-docs' + +# Этапы миграции для тестовых сетей + +Это руководство поможет вам перенести узел валидатора из одной тестовой сети в другую. Эти шаги являются необязательными, и для большинства тестовых сетей они не понадобятся. + +## Переустановка узла валидатора (необязательно) + +С выходом версии `0.19.0` мы ввели обязательные ключи для валидаторов. Этими ключами являются `eth_hot_key` и `eth_cold_key`, которые используются для работы с мостом Ethereum. + + +### Найдите базовый каталог namada + +В зависимости от того, из какой тестовой сети вы мигрируете, базовый каталог будет находиться в разных местах. По этой причине мы сохраним путь к базовому каталогу в переменной. + +#### До версии `0.15.3` + +Если вы мигрируете из тестовой сети ДО версии `0.15.3`, то ваш домашний каталог и соответствующие файлы будут располагаться в каталоге `.namada`. Расположение этого каталога зависит от того, где вы первоначально выполнили команду n`amadac utils join-network --chain-id --genesis-validator` . Он будет находиться в каталоге, в котором была выполнена эта команда. + +После нахождения путь к базовому каталогу можно сохранить в переменной. Например, если команда `join-network` была выполнена из домашнего каталога, то можно выполнить команду: + +```bash copy +export BASE_DIR=$HOME/.namada +``` + +#### После версии `0.15.3` + +Если вы переходите из тестовой сети ПОСЛЕ версии `0.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` вывод `v0.22.0` и `cometbft version` вывод `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/ +``` + +Теперь вы должны быть готовы к работе! \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/post-genesis-validator.ru-RU.mdx b/packages/docs/pages/networks/testnets/post-genesis-validator.ru-RU.mdx new file mode 100644 index 00000000..2961f38c --- /dev/null +++ b/packages/docs/pages/networks/testnets/post-genesis-validator.ru-RU.mdx @@ -0,0 +1,21 @@ +# Стать валидатором post genesis + +После генезиса вы по-прежнему можете присоединиться к сети в качестве пользователя и стать валидатором через самосвязывание. + +После присоединения к сети в [качестве полного узла](../../operators/ledger/running-a-full-node.mdx) необходимо [создать учетную запись валидатора.](../../operators/validators/post-genesis-validator-setup.mdx) + +После этого необходимо увеличить облигационный залог валидатора, что можно сделать с помощью самооблигации токенами, полученными из крана. + +## Связывание + +Следуйте [этому руководст](../../operators/validators/staking.mdx#self-bonding)[ву](../../rukovodstvo-dlya-operatorov/validatory-namada/svyazyvanie-staking.md), чтобы самостоятельно привязать токены валидатора. + +## Проверка облигационного пакета + +Для того чтобы голосовать по блокам, валидатор должен иметь достаточный `bonded-stake`, чтобы быть включенным в "консенсус-набор" валидаторов. Валидатор входит в набор консенсуса тогда и только тогда, когда у него достаточно `bonded-stake`, чтобы быть в числе 128 лучших валидаторов по `bonded-stake`. + +Чтобы запросить значение `bonded-stake` для всех валидаторов в текущую эпоху, выполните следующую команду: + +```bash copy +namada client bonded-stake +``` \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/pow.ru-RU.mdx b/packages/docs/pages/networks/testnets/pow.ru-RU.mdx new file mode 100644 index 00000000..986220bc --- /dev/null +++ b/packages/docs/pages/networks/testnets/pow.ru-RU.mdx @@ -0,0 +1,15 @@ +import { Callout } from 'nextra-theme-docs' + +# Использование крана testnet + + +Ссылка на кран: https://faucet.heliax.click + + +Начиная с версии 0.23.1, кран Namada был переведен в режим API-вызова сервера. Для того чтобы запросить токены, необходимо пройти проверку на работоспособность, чтобы предотвратить спам на кране. + + +Заметим, что в Mainnet это не входит, так как относится к testnet. + + +Поскольку оплата производится [по неявным счетам](../../users/fees.mdx), то в качестве первого шага рекомендуется указать запрос NAM на один из таких счетов. Затем, используя флаг `--gas-payer`, можно указать адрес неявного счета для оплаты транзакции. \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/pre-genesis.ru-RU.mdx b/packages/docs/pages/networks/testnets/pre-genesis.ru-RU.mdx new file mode 100644 index 00000000..ba931e1a --- /dev/null +++ b/packages/docs/pages/networks/testnets/pre-genesis.ru-RU.mdx @@ -0,0 +1,7 @@ +# Инструкции валидатора Pre-genesis + +Пре-генезис определяется как "до" первого (он же генезис) блока. В момент генезиса имеется набор валидаторов с заранее определенным количеством токенов (описано в файле genesis). + +Для тестовых сетей существует возможность подать заявку на получение статуса валидатора до генезиса. Для этого необходимо выполнить [следующие действия.](./genesis-validator-apply.mdx) + +Если тестовая сеть уже работает, и вы не были выбраны в качестве валидатора предварительного генезиса, выполните шаги по присоединению в [качестве полного узла.](../../operators/ledger/running-a-full-node.mdx) Если вы все еще хотите пройти валидацию, вы можете выполнить следующие шаги, чтобы [стать валидатором после генезиса](./post-genesis-validator.mdx). \ No newline at end of file diff --git a/packages/docs/pages/networks/testnets/testnet-history.ru-RU.mdx b/packages/docs/pages/networks/testnets/testnet-history.ru-RU.mdx new file mode 100644 index 00000000..5ac5da0f --- /dev/null +++ b/packages/docs/pages/networks/testnets/testnet-history.ru-RU.mdx @@ -0,0 +1,216 @@ +import { Callout } from 'nextra-theme-docs' + +# История тестовых сетей + +На этой странице описаны все шаги по установке, необходимые при различных обновлениях testnets. + +## Последнее обновление + +- Namada public testnet 14 (soft-upgrade hot-fix): +- С даты: 19 октября 2023 года 9:00 UTC +- Версия протокола Namada: v0.23.1 +- Версия Cometbft: 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 +``` + +Обратите внимание, что двоичные файлы `v0.23.1` для Linux требуют установки 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` + +## История тестнетов по времени + +- 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` + + **В связи с обнаруженной ошибкой было выпущено** [**исправление**](https://github.com/anoma/namada/releases/tag/v0.13.3)**. Его необходимо было установить и применить перед**`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` + +**Указанный хардфорк должен был вступить в силу на высоте блока 37370, но возникли некоторые проблемы. Подробнее об этом можно прочитать** [**здесь.**](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` + +### История обновлений: + +19/05/2023 public-testnet-8 hot-fix + +Из-за некоторых проблем с проверкой mempool тестовая сеть останавливалась на высоте блока 8073. Мы исправили эту проблему и выпустили горячую версию для подмножества валидаторов. Этого оказалось достаточно для продолжения работы тестовой сети. Правда, некоторым валидаторам пришлось заново синхронизировать сеть. Цепочка была запущена с chain-id public-testnet-8.0.b92ef72b820 + +24/04/2023 public-testnet-7 (offline) + +Тестнет запущен 24/04/2023 в 17:00 UTC с валидаторами genesis из public-testnet-7. [Запущен с версией v0.15.1](https://github.com/anoma/namada/releases/tag/v0.15.1). Цепочка запущена с chain-id public-testnet-7.0.3c5a38dc983. + +Задуманное исправление, призванное решить проблему хранения данных, было решено лишь частично. В результате была выпущена версия 0.15.3, в которой предполагалось устранить эти проблемы. + +13/02/2023 public-testnet-3 + +09/02/2023 цепочка Namada public-testnet-3 остановилась из-за ошибки в реализации Proof of Stake при обработке граничного случая. За выходные команда смогла исправить и протестировать новый патч, устраняющий проблему. 13/02/2023 11:30 UTC нам удалось восстановить работу сети, заставив внутренних валидаторов обновиться до нового патча. Сейчас мы призываем валидаторов также обновиться до новой тестовой сети, что позволит вам взаимодействовать с восстановленной сетью. + +### Обновление + +Начните с остановки всех экземпляров узла namada + +``` +killall namadan +``` + +Сборка нового тега (или скачать двоичные [файлы здесь](https://github.com/anoma/namada/releases/tag/v0.13.4)) + +``` +cd namada +export NAMADA_TAG=v0.13.4 +make build-release +``` + +Скопируйте новые двоичные файлы по пути. Более подробные инструкции можно [найти здесь.](./environment-setup.mdx) + +После этого на узле необходимо выполнить tesync из genesis (см. ниже). + +### Как выполнить ресинхронизацию из genesis: + +В качестве меры предосторожности сделайте резервную копию своих ключей от генезиса: + +``` +mkdir backup-pregenesis && cp -r .namada/pre-genesis backup-pregenesis/ +``` + +Удалите соответствующую папку в файле .namada + +``` +rm -r .namada/public-testnet-3.0.81edd4d6eb6 +rm .namada/public-testnet-3.0.81edd4d6eb6.toml +``` + +ВНИМАНИЕ: Не удаляйте всю папку .namada, так как в ней содержатся ключи предварительного генезиса. Если это будет сделано случайно, то придется скопировать файл backup-pregenesis. Подробнее см. в [этой инструкции](../../operators/validators/run-your-genesis-validator.mdx) + + +Повторно подключитесь к сети + +``` +export CHAIN_ID="public-testnet-3.0.81edd4d6eb6" +namada client utils join-network \ +--chain-id $CHAIN_ID --genesis-validator $ALIAS +``` + +Запустите узел. Можно просто запустить узел снова, используя привычную команду + +``` + NAMADA_CMT_STDOUT=true namada node ledger run +``` + +Пожалуйста, обращайтесь к нам с любыми вопросами, если они у вас возникнут. Данное обновление может быть выполнено асинхронно, но если вы хотите продолжить проверку цепочки и тестирование наших функций, необходимо выполнить описанные выше шаги. + +### Hotfix for Testnet `public-testnet-2.1.4014f207f6d` + +27/01/2023 + +Тестовая сеть с горячими исправлениями работала в течение недели, когда странная ошибка привела к остановке сети. Основная команда потратила 1 неделю на выяснение причины ошибки, и результат оказался весьма интересным. Если вам интересны подробности этой ошибки, пожалуйста, ознакомьтесь с [записью Рэя в его блоге здесь.](https://blog.namada.net/explaining-the-namada-0-13-3-consensus-fork/) + +25/01/2023 + +Примерно в 06:15 UTC 25/01/2023 в активный набор валидаторов был запланирован валидатор с очень маленькой долей. По этому tx была обнаружена ошибка преобразования между машиной состояний Namada и Cometbft, которая приводила к сбою в работе узла. Для решения этой проблемы был выпущен [патч v0.13.3.](https://github.com/anoma/namada/releases/tag/v0.13.3) + +23/01/2023 + +Новая тестовая сеть была выпущена раньше двухнедельного графика выпуска тестовых сетей из-за того, что приведенный ниже хардфорк не сработал так, как было задумано. Следуйте инструкциям по настройке [новой тестовой сети.](nastroika-sredy.md) + diff --git a/packages/docs/pages/operators.ru-RU.mdx b/packages/docs/pages/operators.ru-RU.mdx new file mode 100644 index 00000000..59f2ca50 --- /dev/null +++ b/packages/docs/pages/operators.ru-RU.mdx @@ -0,0 +1,9 @@ +# Руководство для операторов + +Данное руководство предназначено для операторов полных узлов Namada. Сюда входят как полные узлы, так и узлы-валидаторы. В руководстве предполагается, что вы уже установили узел и знакомы с основами управления узлом. + +## Оглавление + +- [Запуск полного узла](./operators/ledger.mdx) +- [Запуск узла валидатора](./operators/validators.mdx) +- [Настройка локальной сети](./operators/local-network.mdx) \ No newline at end of file diff --git a/packages/docs/pages/operators/_meta.ru-RU.json b/packages/docs/pages/operators/_meta.ru-RU.json new file mode 100644 index 00000000..577d5012 --- /dev/null +++ b/packages/docs/pages/operators/_meta.ru-RU.json @@ -0,0 +1,10 @@ +{ + "hardware": "Требования к аппаратному обеспечению", + "ledger": "Запуск полного узла", + "validators": "Валидаторы", + "local-network": "Запуск локальной сети", + "ibc": "IBC Ретранслятор", + "troubleshooting": "Устранение неисправностей", + "eth-bridge": "Мост Etherum", + "hardware": "Аппаратное обеспечение" +} diff --git a/packages/docs/pages/operators/eth-bridge.ru-RU.mdx b/packages/docs/pages/operators/eth-bridge.ru-RU.mdx new file mode 100644 index 00000000..aa9e12d7 --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge.ru-RU.mdx @@ -0,0 +1,23 @@ +# Namada Ethereum Bridge + +Мост ethereum на Namada - это недоверенный (в том смысле, что единственные предположения о доверии заключаются в том, что валидаторы на Namada коллективно честны) мост между Namada и Ethereum. + +Мост представляет собой комбинацию смарт-контрактов на Ethereum, а также код протоколов ledger, обеспечивающий его функциональность. Мост разработан как универсальный и может быть использован для соединения любой цепи, имеющей механизм консенсуса BFT. + +## Дизайн + +Полную спецификацию проекта можно найти [здесь](https://specs.namada.net/interoperability/ethereum-bridge). + +Краткое описание конструкции приведено ниже. + +## Сторона ethereum + +Стоимость, передаваемая в Namada, депонируется в абстракции хранилища, что позволяет модернизировать другие контракты без перемещения стоимости. Когда токены ERC20 переводятся обратно в Ethereum, стоимость выводится из эскроу на счета назначения. + +## Сторона Namada + +Когда инициируется перевод из Ethereum в Namada, он проверяется валидаторами. По завершении проверки переведенные средства майнятся на стороне Namada и отправляются на счет назначения. Когда токены отправляются обратно в Ethereum, они сжигаются на стороне Namada. + +Данная документация предназначена для ретрансляторов и валидаторов на Namada и построена следующим образом: + +- Ретрансляция транзакций \ No newline at end of file diff --git a/packages/docs/pages/operators/eth-bridge/_meta.ru-RU.json b/packages/docs/pages/operators/eth-bridge/_meta.ru-RU.json new file mode 100644 index 00000000..7c7fef49 --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge/_meta.ru-RU.json @@ -0,0 +1,3 @@ +{ + "relaying": "Ретрансляция" +} diff --git a/packages/docs/pages/operators/eth-bridge/relaying.ru-RU.mdx b/packages/docs/pages/operators/eth-bridge/relaying.ru-RU.mdx new file mode 100644 index 00000000..df965be6 --- /dev/null +++ b/packages/docs/pages/operators/eth-bridge/relaying.ru-RU.mdx @@ -0,0 +1,44 @@ +import { Callout } from 'nextra-theme-docs' + +# Ретрансляция транзакций Ethereum + +Команды Relayer находятся в бинарном файле `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 +``` + +Это только построение доказательства без его передачи. Затем доказательство может быть передано ретранслятором вручную. \ No newline at end of file diff --git a/packages/docs/pages/operators/hardware.ru-RU.mdx b/packages/docs/pages/operators/hardware.ru-RU.mdx new file mode 100644 index 00000000..94dd9292 --- /dev/null +++ b/packages/docs/pages/operators/hardware.ru-RU.mdx @@ -0,0 +1,13 @@ +# Требования к аппаратному обеспечению + +В данном разделе рассматриваются рекомендуемые аппаратные требования для работы с Namada для валидаторов, полных и легких узлов. + +## Требования к ресурсам + +| Node Type | RAM | SSD | Number of Cores | +| ---------- | --- | ----- | --------------- | +| Validator | 8GB | 1TB\* | 4 | +| Full Node | 8GB | 1TB | 2 | +| Light Node | TBD | TBD | TBD | + +**Отметим, что размер хранилища будет зависеть от уровня обрезки.** \ No newline at end of file diff --git a/packages/docs/pages/operators/ibc.ru-RU.mdx b/packages/docs/pages/operators/ibc.ru-RU.mdx new file mode 100644 index 00000000..b4d7037a --- /dev/null +++ b/packages/docs/pages/operators/ibc.ru-RU.mdx @@ -0,0 +1,350 @@ +import { Callout } from 'nextra-theme-docs' +import Expandable from '../../components/Expandable' + +# IBC Relayers + +Работа ретранслятора на 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](https://github.com/heliaxdev/hermes/tree/1.6.0-namada), поддерживающий инстансы 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** + +Каждая конфигурация цепочки задается в объекте `[[chains]]`. Это те кусочки головоломки, которые вы хотите сохранить: + +-`chains.id`- имя цепочки +-`chains.rpc_address`- порт, через который осуществляется связь с каналом, и который будет являться аргументом для ledger\_address в Namada при взаимодействии (это станет ясно позже). + -**Обязательно измените IP-адрес на IP-адрес вашей локальной машины, на которой запущен этот узел**! +-`chains.key_name`задает ключ подписывающего, который подписывает транзакцию от ретранслятора. Ключ должен быть сгенерирован перед запуском ретранслятора. +-`event_source`задает URL веб-сокета цепочки. Для корректной работы Hermes он должен совпадать с адресом rpc\_address. + + +### Создание 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 +``` + +This step is only needed for namada chains. For cosmos based chains, it is advised to add the key directly to hermes. + +```bash copy +./hermes --config $HERMES_CONFIG keys add --chain "" --key-file "" --overwrite +``` + + +### Создание учетной записи ретранслятора + +В каждой цепочке должна существовать учетная запись ретранслятора. На цепочке 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 будут зависеть от вашей собственной установки, поэтому проверьте это сами! + + +После завершения создания можно увидеть идентификаторы каналов. Например, в следующем тексте показано, что в цепи A `namada-test.0a4c6786dbda39f786` создан канал с идентификатором `7`, а в цепи B `namada-test.647287156defa8728c` создан канал с идентификатором `12`. Идентификаторы каналов понадобятся для передачи данных по IBC. Это означает, что для передачи данных из цепочки A в цепочку B необходимо указать в качестве идентификатора канала канал-7 (префикс `channel-` всегда обязателен), а для передачи данных из цепочки B в цепочку A - канал-12. + + +``` +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, как описано выше. + +```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 на каждом ledger. Кроме того, в каталоге hermes будет создан файл конфигурации `Hermes config_for_namada.toml`. + +Для начала необходимо экспортировать некоторые переменные окружения: + +``` +export NAMADA_DIR=""export TAG="v1.6.0-namada-beta3" +``` + +```rust +git clone https://github.com/heliaxdev/hermes.gitgit checkout $TAG # The branch is the same as our Hermescd hermes./scripts/setup-namada $NAMADA_DIR $CHAIN_ID_A $CHAIN_ID_B +``` + +В этом случае пользователю не нужно ждать синхронизации. Если на счету ретранслятора на каждом экземпляре имеется достаточный баланс, пользователь может создать канал и сразу же запустить Hermes, как было описано выше. Идентификаторы цепочек инстансов пользователь находит в конфигурационном файле `config_for_namada.toml`. Можно выполнить команду `grep "id" ${HERMES_CONFIG}`. + +```rust +# 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.` + +Для того чтобы закрыть все ledger, настроенные скриптом, можно выполнить команду: + +```rust +killall namadan +``` \ No newline at end of file diff --git a/packages/docs/pages/operators/ibc.uk-UA.mdx b/packages/docs/pages/operators/ibc.uk-UA.mdx index 0b80063f..34672522 100644 --- a/packages/docs/pages/operators/ibc.uk-UA.mdx +++ b/packages/docs/pages/operators/ibc.uk-UA.mdx @@ -97,7 +97,7 @@ gas_price = { price = 0.001, denom = 'nam' } -**Інтерпретація toml** *Тлумачення toml +**Інтерпретація toml** *Тлумачення toml* Кожна конфігурація ланцюжка вказана під об'єктом `[[chains]]`. Це ті шматочки головоломки, на яких ви хочете тримати свій 👀: diff --git a/packages/docs/pages/operators/ledger.ru-RU.mdx b/packages/docs/pages/operators/ledger.ru-RU.mdx new file mode 100644 index 00000000..e5600b09 --- /dev/null +++ b/packages/docs/pages/operators/ledger.ru-RU.mdx @@ -0,0 +1,37 @@ +import { Callout } from 'nextra-theme-docs' + +# Запуск полного узла + +Для того чтобы осуществлять какие-либо взаимодействия с блокчейном Namada через *client* `namadac` , необходимо, чтобы ledger был запущен. + +Чтобы запустить локальный узел Namada ledger, можно выполнить команду: + +```shell copy +namada ledger +``` + +**Примечание**: Перед запуском необходимо [подключиться к сети](../networks.mdx). Если сеть не была настроена, выдается ошибка. + +Узел попытается подключиться к узлам действующих валидаторов и другим узлам сети и синхронизироваться с последним блоком. + +По умолчанию ledger будет хранить свою конфигурацию и состояние в вашем [базовом каталоге](./ledger/base-directory.mdx). Для его изменения можно использовать глобальный аргумент `CLI --base-dir`или переменную окружения `BASE_DIR` + +Если у вас нет собственного `base_dir`, вы можете экспортировать переменную окружения `BASE_DIR`следующим образом: + +```shell copy +export BASE_DIR=$(namadac utils default-base-dir) +``` + + +При первом запуске будут загружены MASP-параметры. Это необходимо для создания доказательств с нулевым разглашением, требуемых для проведения защищенных транзакций. + +### Wasm-файлы Ledger + +Также будет загружен блок genesis, содержащий начальное состояние блокчейна. Для этого необходимо получить доступ к файлам WASM, которые используются в блоке genesis. +Эти файлы включены в релиз и не должны быть изменены, иначе ваш узел выйдет из строя с ошибкой консенсуса на блоке genesis. +По умолчанию предполагается, что они находятся в каталоге wasm внутри каталога цепочки, находящегося в базовом каталоге, т.е. `$BASE_DIR/$CHAIN_ID/wasm`. +Каталог wasm также может быть задан с помощью глобального аргумента `CLI --wasm-dir`, [переменной окружения](./ledger/env-vars.mdx) `NAMADA_WASM_DIR` или в конфигурационном файле. + +### Конфигурация ledger + +Конфигурация ledger хранится в файле `$BASE_DIR/$CHAIN_ID/config.toml` (с параметром по умолчанию `--base-dir`). Он создается при подключении к сети. Вы можете модифицировать этот файл, чтобы изменить конфигурацию своего узла. Все значения также могут быть заданы с помощью [переменных окружения](./ledger/env-vars.mdx). \ No newline at end of file diff --git a/packages/docs/pages/operators/ledger/_meta.ru-RU.json b/packages/docs/pages/operators/ledger/_meta.ru-RU.json new file mode 100644 index 00000000..e38b5cef --- /dev/null +++ b/packages/docs/pages/operators/ledger/_meta.ru-RU.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.ru-RU.mdx b/packages/docs/pages/operators/ledger/base-directory.ru-RU.mdx new file mode 100644 index 00000000..6887731f --- /dev/null +++ b/packages/docs/pages/operators/ledger/base-directory.ru-RU.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 +``` \ No newline at end of file diff --git a/packages/docs/pages/operators/ledger/env-vars.ru-RU.mdx b/packages/docs/pages/operators/ledger/env-vars.ru-RU.mdx new file mode 100644 index 00000000..fff0c3d3 --- /dev/null +++ b/packages/docs/pages/operators/ledger/env-vars.ru-RU.mdx @@ -0,0 +1,146 @@ +import { Callout } from 'nextra-theme-docs' +import Expandable from "../../../components/Expandable"; + +# Переменные среды + +По умолчанию при каждом запуске ledger namada будет применяться конфигурация, содержащаяся в конфигурационном файле ledger. + +Пример конфигурационного файла ledger приведен ниже. + + +```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.ru-RU.mdx b/packages/docs/pages/operators/ledger/logging-config.ru-RU.mdx new file mode 100644 index 00000000..48a7cf22 --- /dev/null +++ b/packages/docs/pages/operators/ledger/logging-config.ru-RU.mdx @@ -0,0 +1,13 @@ +# Настройка ведения журнала Namada + +Ведение журнала ledger может быть настроено путем установки следующих переменных окружения. Значения по умолчанию выделены **жирным шрифтом.** + +| Variable | Values | Description | +| :------------------: | :----------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| `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 | \ No newline at end of file diff --git a/packages/docs/pages/operators/ledger/running-a-full-node.ru-RU.mdx b/packages/docs/pages/operators/ledger/running-a-full-node.ru-RU.mdx new file mode 100644 index 00000000..d2fd42c3 --- /dev/null +++ b/packages/docs/pages/operators/ledger/running-a-full-node.ru-RU.mdx @@ -0,0 +1,94 @@ +import { Callout } from 'nextra-theme-docs' + +# Настройка полного узла + +Перед запуском полного узла потребуется уникальный идентификатор `chain-id`, который будет выдан, как только будет готов файл genesis. + +### Присоединение к сети + +После того как идентификатор `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 +# Editing genesis config steps +# Developer network +genesis_time = "2021-12-20T15:00:00.00Z" +native_token = "NAM" + +- # 3 genesis validators. +- [validator.validator-1] +- # Validator's token balance at genesis. +- tokens = 100000 +- # Amount of the validator's genesis token balance which is not staked. +- non_staked_balance = 100000 +- # VP for the validator account +- validator_vp = "vp_validator" +- # Commission rate for rewards +- commission_rate = 0.05 +- # Maximum change per epoch in the commission rate +- max_commission_rate_change = 0.01 +- # Public IP:port address +- net_address = "52.210.23.30:26656" +- +- [validator.validator-2] +- # Validator's token balance at genesis. +- tokens = 100000 +- # Amount of the validator's genesis token balance which is not staked. +- non_staked_balance = 100000 +- # VP for the validator account +- validator_vp = "vp_validator" +- # Commission rate for rewards +- commission_rate = 0.05 +- # Maximum change per epoch in the commission rate +- max_commission_rate_change = 0.01 +- # VP for the staking reward account +- staking_reward_vp = "vp_user" +- # Public IP:port address +- net_address = "63.32.203.239:26656" +- +- [validator.validator-3] +- # Validator's token balance at genesis. +- tokens = 100000 +- # Amount of the validator's genesis token balance which is not staked. +- non_staked_balance = 100000 +- # VP for the validator account +- validator_vp = "vp_validator" +- # Commission rate for rewards +- commission_rate = 0.05 +- # Maximum change per epoch in the commission rate +- max_commission_rate_change = 0.01 +- # VP for the staking reward account +- staking_reward_vp = "vp_user" +- # Public IP:port address +- 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 + +# Some established accounts present at genesis. + +[implicit.faucet] +address = "atest1v4ehgw36gc6yxvpjxccyzvphxycrxw2xxsuyydesxgcnjs3cg9znwv3cxgmnj32yxy6rssf5tcqjm3" +vp = "vp_user" + +[established.masp] +address = "atest1v4ehgw36xaryysfsx5unvve4g5my2vjz89p52sjxxgenzd348yuyyv3hg3pnjs35g5unvde4ca36y5" +vp = "vp_masp" + +# Wasm VP definitshell + +# Implicit VP + +[wasm.vp_implicit] +filename = "vp_implicit.wasm" + +# Default user VP in established accounts + +[wasm.vp_user] + +# filename (relative to wasm path used by the node) + +filename = "vp_user.wasm" + +# Validator VP + +[wasm.vp_validator] +filename = "vp_validator.wasm" + +# Token VP + +[wasm.vp_token] +filename = "vp_token.wasm" + +# MASP VP + +[wasm.vp_masp] +filename = "vp_masp.wasm" + +# General protocol parameters. + +[parameters] + +# Minimum number of blocks in an epoch. + +min_num_of_blocks = 5 + +# Maximum expected time per block (in seconds). + +max_expected_time_per_block = 11 + +# Implicit VP WASM name + +implicit_vp = "vp_implicit" + +# Expected number of epochs per year (also sets the min duration of an epoch in seconds) + +epochs_per_year = 262800 # ~120 sec epoch duration (60*60*24\*365 / 120) + +# The P gain factor in the Proof of Stake rewards controller + +pos_gain_p = 0.1 + +# The D gain factor in the Proof of Stake rewards controller + +pos_gain_d = 0.1 + +# The wrapper tx fixed fees + +wrapper_tx_fees = "5" + +# The max size of blocks in bytes + +max_proposal_bytes = 5242880 +vp_whitelist = [] +tx_whitelist = [] +max_public_key_per_account = 15 +#Maximum number of signatures required per transaction +max_signature_per_tx = 15 + +# Proof of stake parameters. + +[pos_params] + +# Maximum number of active validators. + +max_validator_slots = 128 + +# Pipeline length (in epochs). Any change in the validator set made in + +# epoch 'n' will become active in epoch 'n + pipeline_len'. + +pipeline_len = 2 + +# Unbonding length (in epochs). Validators may have their stake slashed + +# for a fault in epoch 'n' up through epoch 'n + unbonding_len'. + +unbonding_len = 4 + +# Votes per fundamental staking token (namnam) + +tm_votes_per_token = 1.0 + +# Reward for proposing a block. + +block_proposer_reward = 0.125 + +# Reward for voting on a block. + +block_vote_reward = 0.1 + +# Maximum inflation rate per annum (10%) + +max_inflation_rate = 0.1 + +# Targeted ratio of staked tokens to total tokens in the supply + +target_staked_ratio = 0.6667 + +# Portion of a validator's stake that should be slashed on a duplicate + +# vote. + +duplicate_vote_min_slash_rate = 0.001 + +# Portion of a validator's stake that should be slashed on a light + +# client attack. + +light_client_attack_min_slash_rate = 0.001 +cubic_slashing_window_length = 1 + +# Governance parameters. + +[gov_params] + +# minimum amount of xan token to lock + +min_proposal_fund = 100 + +# proposal code size in kibibytes (KiB) + +max_proposal_code_size = 300000 + +# min proposal period length in epochs + +min_proposal_period = 3 + +# max proposal period length in epochs + +max_proposal_period = 6 + +# maximum number of characters in the proposal content + +max_proposal_content_size = 10000 + +# minimum epochs between end and grace epoch + +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`: путь к конфигурационному файлу (без валидатора) `genesis.` +2. `namada_dir`: путь к каталогу с двоичными файлами Namada. Если двоичные файлы были собраны с помощью `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` +``` + +## Очистка + +После того как локальная сеть выполнила свое предназначение, ее можно очистить, выполнив следующие команды, находящиеся в функции cleanup скрипта: + +```shell copy + pkill -f ".hack/chains" + rm -r .hack/chains + rm local.*.tar.gz +``` \ No newline at end of file diff --git a/packages/docs/pages/operators/troubleshooting.ru-RU.mdx b/packages/docs/pages/operators/troubleshooting.ru-RU.mdx new file mode 100644 index 00000000..f150269b --- /dev/null +++ b/packages/docs/pages/operators/troubleshooting.ru-RU.mdx @@ -0,0 +1,11 @@ +# Поиск и устранение неисправностей в работе оператора + +### Пропущенный pre-genesis + +Если вы не успели зарегистрироваться в качестве валидатора до генезиса, это означает, что вы должны зарегистрироваться в качестве валидатора после генезиса. Добавление валидаторов до генезиса после запуска цепочки невозможно (по определению). Вместо этого любой полноправный узел может стать валидатором через самооблигацию токенами NAM. + +### CometBFT + +При возникновении проблем с CometBFT у валидатора наиболее частая причина заключается в том, что мы используем неправильную версию CometBFT. Следите за документацией [testnet здесь](../networks/testnets.mdx). + +> _Обратите внимание, что распространенное отладочное сообщение `Error reconnecting to peers` не означает, что ваш узел работает неправильно. Напротив, это означает, что в сети есть по крайней мере один валидатор, работающий некорректно. Чтобы проверить, является ли это проблемой с вашей стороны, обратите внимание на высоту блока и посмотрите, соответствует ли она_ [_высоте блока на сайте._](https://namadaexplorer.com/) \ No newline at end of file diff --git a/packages/docs/pages/operators/validators.ru-RU.mdx b/packages/docs/pages/operators/validators.ru-RU.mdx new file mode 100644 index 00000000..1df92f53 --- /dev/null +++ b/packages/docs/pages/operators/validators.ru-RU.mdx @@ -0,0 +1,23 @@ +# Валидаторы Namada + +Namada - это блокчейн proof-of-stake, что означает, что именно валидаторы отвечают как за голосование по переходам состояния, так и за предложение новых блоков. + +### Что такое генезис валидатор? Чем он отличается от постгенезисного валидатора? + +Валидатор (пре)генезиса - это валидатор, который предлагается в качестве валидатора в генезисном блоке блокчейна. Если файл генезиса принимается сетью, то валидаторы (пре)генезиса получают возможность осуществлять валидационную деятельность на блокчейне с долей, указанной в файле генезиса. Эти валидаторы настраиваются на правильные ключи консенсуса, которые должны совпадать с ключами, указанными в файле генезиса. + +Постгенезисный валидатор - это валидационный счет, созданный через некоторое время после генезисного блока. Эти аккаунты инициируются командой `init-validator`. + +### Как стать валидатором? + +#### Предварительные условия + +Для участия в процессе консенсуса валидаторам требуется доля в виде NAM. Размер требуемого пакета указывается в файле genesis. Для того чтобы стать валидатором, необходимо иметь хотя бы минимально необходимый размер доли. + +Кроме того, узел валидатора должен отвечать [минимальным аппаратным требованиям.](./hardware.mdx) + +#### Шаги + +Ознакомьтесь с этими шагами для [настройки валидатора genesis.](./validators/genesis-validator-setup.mdx) + +Для настройки валидатора постгенезиса [см. эти шаги.](./validators/post-genesis-validator-setup.mdx) \ No newline at end of file diff --git a/packages/docs/pages/operators/validators/_meta.ru-RU.json b/packages/docs/pages/operators/validators/_meta.ru-RU.json new file mode 100644 index 00000000..7538fab0 --- /dev/null +++ b/packages/docs/pages/operators/validators/_meta.ru-RU.json @@ -0,0 +1,7 @@ +{ + "genesis-validator-setup": "Настройка генезис валидатора", + "run-your-genesis-validator": "Запуск генезис валидатора", + "post-genesis-validator-setup": "Инструкция по запуску валидатора post genesis", + "staking": "Стейкинг", + "proof-of-stake": "Консенсус доказательства доли" +} diff --git a/packages/docs/pages/operators/validators/genesis-validator-setup.ru-RU.mdx b/packages/docs/pages/operators/validators/genesis-validator-setup.ru-RU.mdx new file mode 100644 index 00000000..a88c78b1 --- /dev/null +++ b/packages/docs/pages/operators/validators/genesis-validator-setup.ru-RU.mdx @@ -0,0 +1,106 @@ +import { Callout } from 'nextra-theme-docs' + +# Настройка валидатора Genesis + +Валидатор генезиса - это тот, который является валидатором с самого первого блока цепи, т.е. на этапе генезиса. Информация о валидаторах генезиса жестко фиксируется в файле genesis, который распространяется среди всех пользователей, желающих взаимодействовать с цепочкой. + +### Необходимые условия + +- машина, удовлетворяющая [требованиям ](../hardware.mdx)для запуска узла-валидатора +- связанный публичный IPv4-адрес с портами 26656, доступный из любого места для P2P-соединений + +## Pre-genesis + +Чтобы настроить все [необходимые ключи](#required-keys) для валидатора genesis для предстоящей сети, можно выполнить следующую команду с выбранным псевдонимом. Обратите внимание, что этот псевдоним является публичным (адрес вашей учетной записи валидатора будет виден в каждом кошельке) и должен быть уникальным в сети. + +Также необходимо указать статический `{IP:порт}` в аргументе `--net-address` P2P-адреса вашего будущего узла. + +### 1. Создайте ключи валидатора: + +#### До `v0.25.0` +```bash copy +export ALIAS="CHOOSE_A_NAME_FOR_YOUR_VALIDATOR" +export PUBLIC_IP="LAPTOP_OR_SERVER_IP" +namada client utils init-genesis-validator --alias $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 Сгенерируйте свой валидатор + +``` 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 +``` + +### Необходимые ключи + +- Account key: Может использоваться для подписания транзакций, требующих авторизации в предикате валидности валидатора по умолчанию, например, перевод баланса. +- Staking rewards key: Может использоваться для подписания транзакций на ставочном счете PoS. +- Protocol key: Этот ключ используется самим ledger валидатора для подписания транзакции протокола от имени валидатора. +- DKG key: Специальный ключ, необходимый для участия в протоколе DKG. +- Consensus key: Используется в слое консенсуса CometBFT. В настоящее время этот ключ записывается в файл, который считывается CometBFT. +- Eth hot key: Используется для проверки транзакций eth-bridge. +- Eth cold key: Используется для аварийных операций с eth-bridge. \ No newline at end of file diff --git a/packages/docs/pages/operators/validators/post-genesis-validator-setup.ru-RU.mdx b/packages/docs/pages/operators/validators/post-genesis-validator-setup.ru-RU.mdx new file mode 100644 index 00000000..1d61b561 --- /dev/null +++ b/packages/docs/pages/operators/validators/post-genesis-validator-setup.ru-RU.mdx @@ -0,0 +1,55 @@ +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 +``` + +При инициализации учетной записи валидатора также необходимо указать как ставку комиссии, взимаемой валидатором за делегирование вознаграждений (в десятичном формате), так и максимальное изменение ставки комиссии за эпоху в ставке комиссии. И то, и другое выражается десятичным числом от 0 до 1. Стандарт для мейннета будет устанавливаться общественным консенсусом, а для тестовых сетей стандарт составляет 0,01 и 0,05 соответственно. + +Эта команда генерирует ключи, необходимые для запуска валидатора: + +- Ключ консенсуса, который используется при подписании[ блоков в CometBFT](https://docs.cometbft.com/v0.37/core/validators#validator-keys) +- Ключ учетной записи валидатора для подписания транзакций на учетной записи валидатора, таких как самопривязка, отвязка и вывод токенов, ключи валидатора, предикат валидности, обновление состояния и метаданных. + +Затем он отправляет транзакцию в ledger, которая генерирует новый счет валидатора с установленным адресом, который может быть использован для получения новых делегаций. + +Ключи и псевдоним адреса будут сохранены в кошельке. + + +**ВАЖНО** + +Наш локальный узел ledger также будет настроен на работу с этим валидатором, для этого достаточно выключить его, например, с помощью 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) \ No newline at end of file diff --git a/packages/docs/pages/operators/validators/proof-of-stake.ru-RU.mdx b/packages/docs/pages/operators/validators/proof-of-stake.ru-RU.mdx new file mode 100644 index 00000000..b5bcf4d1 --- /dev/null +++ b/packages/docs/pages/operators/validators/proof-of-stake.ru-RU.mdx @@ -0,0 +1,27 @@ +# Proof-of-Stake + +Система Namada Proof of Stake (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 +``` \ No newline at end of file diff --git a/packages/docs/pages/operators/validators/run-your-genesis-validator.ru-RU.mdx b/packages/docs/pages/operators/validators/run-your-genesis-validator.ru-RU.mdx new file mode 100644 index 00000000..44f4e6d5 --- /dev/null +++ b/packages/docs/pages/operators/validators/run-your-genesis-validator.ru-RU.mdx @@ -0,0 +1,32 @@ +# Запустите свой узел в качестве валидатора genesis + +После получения CHAIN\_ID можно присоединиться к тестовой сети. Если присоединяющийся узел зарегистрирован в файле genesis как genesis-validator, он сможет участвовать в консенсусе и производить блоки с самого начала цепи. + +#### Присоединение к сети + +Будучи генезис-валидатором, можно присоединиться к сети с распределенным идентификатором `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 ...` \ No newline at end of file diff --git a/packages/docs/pages/operators/validators/staking.ru-RU.mdx b/packages/docs/pages/operators/validators/staking.ru-RU.mdx new file mode 100644 index 00000000..8afc761e --- /dev/null +++ b/packages/docs/pages/operators/validators/staking.ru-RU.mdx @@ -0,0 +1,107 @@ +# Связывание (Staking) + +Мы обсуждаем два типа связей: + +1. [Non-self bonding](#не-самосвязывание-делегирование) Несамостоятельное связывание (называемое делегированием во многих других экосистемах, но не путать с делегированием управления на Namada) +2. [Self-bonding](#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 +``` + +## Самостоятельное связывание + +Также существует возможность увеличить право голоса валидатора путем связывания NAM с ликвидного баланса валидатора с самим собой. Пользователь может отправить транзакцию самосвязывания токенов со счета валидатора в систему PoS: + +```shell copy +namada client bond \ + --validator my-validator \ + --amount 3.3 +``` + +## Запрос связанного пакета валидатора + +Облигационный пакет (право голоса в cometbft) валидатора определяется суммой всех его активных связанных токенов и токенов делегатов, с применением slashes если таковые имеются. + +При разблокировке токенов сумма токенов не засчитывается в ставку валидатора до начала эпохи n + 2 в текущей эпохе n. Сумма токенов немедленно списывается со счета валидатора и зачисляется на счет PoS-системы. + +Чтобы увидеть всех валидаторов и их право голоса, которое в точности равно количеству поставленных токенов NAM от их токенов и делегированных токенов, можно сделать запрос: + +```shell copy +namada client bonded-stake +``` + +В этой команде можно указать параметр `--epoch`, чтобы найти значения голосов в некоторую будущую эпоху. Обратите внимание, что окончательными являются только значения голосов для текущей и следующей эпохи. + +## Slashes + +Если валидатор проявляет наказуемое поведение, то токены, относящиеся к этому валидатору, также подлежат уничтожению. Только те токены, которые были активны в эпоху, в которой произошла ошибка, будут срезаны по коэффициенту, соответствующему типу ошибки. Если какие-либо из ваших токенов подверглись слэшингу, это будет отображено в запросе токенов. Вы также можете найти все примененные слеши с помощью функции: + +```shell copy +namada client slashes +``` + +## Разблокировка + +Пока токены связаны, они заблокированы в системе PoS и, следовательно, не являются ликвидными до тех пор, пока бондер их не изымет. Для этого бондеру необходимо отправить транзакцию на "развязывание" своих токенов. Пользователь может разблокировать любое количество, вплоть до суммы всех своих токенов у данного валидатора, даже до того, как токены станут активными. + +### Несамостоятельное разблокирование + +Подача валидатору заявки на открепление токенов: + +```shell copy +namada client unbond \ + --source aliace \ + --validator validator-1 \ + --amount 1.2 +``` + +## Саморазвязывание + +Для подачи заявки на открепление токенов от валидатора: + +```shell copy +namada client unbond \ + --validator my-validator \ + --amount 0.3 + +``` + +## Вывод токенов + +Когда пользователь отвязывает токены, он не сможет вывести их сразу. Вместо этого токены, развязанные в эпоху 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. \ No newline at end of file diff --git a/packages/docs/pages/users.ru-RU.mdx b/packages/docs/pages/users.ru-RU.mdx new file mode 100644 index 00000000..e4764c43 --- /dev/null +++ b/packages/docs/pages/users.ru-RU.mdx @@ -0,0 +1,12 @@ +# Руководство пользователя + +Данное руководство предназначено для пользователей, заинтересованных в максимальном использовании Namada. Руководство включает в себя как самые простые операции, которые может выполнить пользователь, так и более сложные функции, к которым он может получить доступ. + +## Оглавление + +- [Прозрачные счета](prozrachnye-scheta/) +- [MASP](masp/) +- [Тарифы на Namada](tarify-namada.md) +- [Делегирование полномочий в системе Namada](delegirovanie-doli.md) +- [Управление и финансирование общественных благ](golosovanie/) +- [Использование кошелька Namada](rukovodstvo-po-rabote-s-koshelkom-namada/) \ No newline at end of file diff --git a/packages/docs/pages/users/_meta.ru-RU.json b/packages/docs/pages/users/_meta.ru-RU.json new file mode 100644 index 00000000..fec7f252 --- /dev/null +++ b/packages/docs/pages/users/_meta.ru-RU.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.ru-RU.mdx b/packages/docs/pages/users/delegators.ru-RU.mdx new file mode 100644 index 00000000..e99e02b8 --- /dev/null +++ b/packages/docs/pages/users/delegators.ru-RU.mdx @@ -0,0 +1,45 @@ +# Делегирование доли + +## Делегаторы и делегаты + +Все счета в системе 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 будет переделегирована. + +## Развязывание + +Развязывание - это процесс удаления связанного NAM из делегата. Этот процесс идентичен [снятию привязки токенов с валидатора.](../operators/validators/staking.mdx#unbonding) \ No newline at end of file diff --git a/packages/docs/pages/users/fees.ru-RU.mdx b/packages/docs/pages/users/fees.ru-RU.mdx new file mode 100644 index 00000000..b5c90fc1 --- /dev/null +++ b/packages/docs/pages/users/fees.ru-RU.mdx @@ -0,0 +1,132 @@ +# Тарифы Namada + +Для того чтобы урегулировать рынок спроса на блок-пространство Namada, с транзакциями связаны комиссии. Для того чтобы любая транзакция namada считалась действительной, должна быть уплачена соответствующая плата. Точный размер комиссии устанавливается пользователем и должен быть больше или равен установленной руководством минимальной цене на газ, которая включена в файл genesis в разделе `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-price`. Если не задано ни то, ни другое, то используется лимит газа и минимальная цена газа по умолчанию . В настоящее время лимит газа по умолчанию для любой транзакции установлен равным 20\_000. + +Минимальная цена газа задается в файле `genesis` в разделе `gas_cost`. + +## Как установить цену на газ и лимит газа + +Рекомендуется устанавливать лимит газа в зависимости от проводимой сделки. Для того чтобы оценить лимит газа для конкретной транзакции, следует указать аргумент `--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; +``` + +Это означает, что мы вполне могли бы осуществить эту передаточную операцию при лимите газа 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 +``` + +Если по каким-то причинам мы хотим оплатить более высокую стоимость газа, мы можем указать это следующим образом: + +```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` + +Также возможно использование одноразового `--gas-payer` для оплаты транзакционных комиссий. Это удобно в тех случаях, когда пользователь не хочет раскрывать личность `--gas-payer`. Для использования одноразового `--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 +``` \ No newline at end of file diff --git a/packages/docs/pages/users/governance.ru-RU.mdx b/packages/docs/pages/users/governance.ru-RU.mdx new file mode 100644 index 00000000..3c06b133 --- /dev/null +++ b/packages/docs/pages/users/governance.ru-RU.mdx @@ -0,0 +1,8 @@ +# Голосование + +Механизм управления Namada предоставляет пользователям возможность динамического обновления протокола. + +Существует два различных механизма создания предложения: + +- [Предложения на цепочке](./governance/on-chain-governance.mdx): За предложение голосуют и подсчитывают голоса на цепочке. В предложение может быть включен код предложения, который будет выполнен, если предложение будет принято. +- [Предложения вне цепи](./governance/off-chain-governance.mdx) \ No newline at end of file diff --git a/packages/docs/pages/users/governance/_meta.ru-RU.json b/packages/docs/pages/users/governance/_meta.ru-RU.json new file mode 100644 index 00000000..4959d448 --- /dev/null +++ b/packages/docs/pages/users/governance/_meta.ru-RU.json @@ -0,0 +1,4 @@ +{ + "on-chain-governance": "Предложение на цепочке", + "off-chain-governance": "Предложение за цепочкой" +} diff --git a/packages/docs/pages/users/governance/off-chain-governance.ru-RU.mdx b/packages/docs/pages/users/governance/off-chain-governance.ru-RU.mdx new file mode 100644 index 00000000..844d8404 --- /dev/null +++ b/packages/docs/pages/users/governance/off-chain-governance.ru-RU.mdx @@ -0,0 +1,49 @@ +import { Callout } from 'nextra-theme-docs' + +# Голосование вне цепочки + +Если по каким-либо причинам выпуск внутрицепочечного предложения не соответствует вашим требованиям, у вас есть возможность создать внецепочечное предложение. Внецепочечное предложение предназначено для предложений, не требующих выполнения внутрицепочечного кода. Предложение будет распространяться по какому-либо стороннему каналу (например, на форуме), а голосование будет проводиться вне цепи. Результат голосования вычисляется вне цепи и затем передается в бухгалтерскую книгу.shell copy Создание предложения + +Создайте тот же json-файл, что и в предложении для on-chain, и выполните следующую команду: + +```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` +``` + +## Подать предложение о внецепочечном голосовании + + +Для сохранения решения, принятого общественным консенсусом, сообщество может принять решение о размещении данных внецепочечного голосования на другом блокчейне, устойчивом к цензуре. + \ No newline at end of file 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 index 726bbb2b..b225ed0c 100644 --- a/packages/docs/pages/users/governance/off-chain-governance.uk-UA.mdx +++ b/packages/docs/pages/users/governance/off-chain-governance.uk-UA.mdx @@ -2,7 +2,8 @@ import { Callout } from 'nextra-theme-docs' # Пропозиції поза ланцюжком -Якщо з якихось причин створення он-лайн заявки не відповідає вашим потребам, у вас все ще є можливість створити офф-лайн заявку. Позамережеві пропозиції призначені для пропозицій, які не потребують виконання коду в мережі. Пропозиція буде поширюватися на якомусь сторонньому каналі (наприклад, на форумі), а голосування буде проводитися в автономному режимі. Результат голосування обчислюється в автономному режимі, а потім передається до реєстру. +Якщо з якихось причин створення он-лайн заявки не відповідає вашим потребам, у вас все ще є можливість створити офф-лайн заявку. Позамережеві пропозиції призначені для пропозицій, які не потребують виконання коду в мережі. Пропозиція буде поширюватися на якомусь сторонньому каналі (наприклад, на форумі), а голосування буде проводитися в автономному режимі. + Результат голосування обчислюється в автономному режимі, а потім передається до реєстру. ## Створити пропозицію diff --git a/packages/docs/pages/users/governance/on-chain-governance.en-US.mdx b/packages/docs/pages/users/governance/on-chain-governance.en-US.mdx index 53bd701b..8216aae2 100644 --- a/packages/docs/pages/users/governance/on-chain-governance.en-US.mdx +++ b/packages/docs/pages/users/governance/on-chain-governance.en-US.mdx @@ -16,7 +16,7 @@ namada wallet address find --alias `my-new-acc` Now, we need to create a json file `proposal.json` holding the content of our proposal. Copy the below text into a json file. -```json +```json copy { "proposal": { "content": { @@ -54,7 +54,7 @@ The `data` field and its structure is dependant on the type of proposal being su ### Default Proposal -```json +```json copy "data" : "" ``` @@ -66,7 +66,7 @@ will be represented as a wasm file and the path to this file will be given in th ### ETH Bridge Proposal -```json +```json copy "data" : "" ``` @@ -77,7 +77,7 @@ The encoding will be submitted as a string ### Steward Proposal -```json +```json copy "data" : [ { "action" : "add", @@ -95,7 +95,7 @@ stewards in a single proposal. ### PGF Proposal -```json +```json copy "data" : { "continuous" : [ diff --git a/packages/docs/pages/users/governance/on-chain-governance.ru-RU.mdx b/packages/docs/pages/users/governance/on-chain-governance.ru-RU.mdx new file mode 100644 index 00000000..e23474d5 --- /dev/null +++ b/packages/docs/pages/users/governance/on-chain-governance.ru-RU.mdx @@ -0,0 +1,164 @@ +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 copy +{ + "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 + } + } +} +``` + +В поле content большинство полей не требует пояснений. Поле `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`, в которую предложение, если оно принято, вступит в силу. + +Поле "данные" и его структура зависят от типа подаваемого предложения. Ниже мы приводим структуру поля "данные" для каждого типа предложения. В примере, приведенном выше, речь идет о предложении по умолчанию. + +### Предложение по умолчанию + +```json copy +"data" : "" +``` + + +Поле данных для предложений по умолчанию является необязательным. Это соответствует природе предложений по умолчанию. Если к предложениям прилагается код для изменения параметров управления, то этот код будет представлен в виде wasm-файла, а путь к нему будет указан в поле данных. + + +### Предложение по мосту ETH + +```json copy +"data" : "" +``` + + +**Примечание**: +Кодировка будет представлена в виде строки. + + +### Предложение Steward + +```json copy +"data" : [ + { + "action" : "add", + "address" : "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn" + } + ] +``` + + +Поле данных для предложений стюард представляет собой список действий, которые необходимо предпринять. Действия могут быть либо добавлением, либо удалением, а адрес - это адрес стюарда, которого необходимо добавить или удалить. Таким образом, в одном предложении можно добавить или удалить несколько стюардов. + + +### Предложение PGF + +```json copy +"data" : + { + "continuous" : [ + { + "target": { + "amount": 420, + "address": "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn" + }, + "action" : "add", + }, + ], + "retro" : [ + { + "target": { + "amount": 1337, + "address": "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn" + } + } + ] + }, +``` + +Поле данных для предложений PGF содержит как непрерывные, так и ретроактивные действия по финансированию PGF. В рамках каждого действия пользователь может включить несколько платежей в виде вектора. В рамках каждого платежа целевое поле содержит адрес получателя, а также сумму NAM, которую он получит. При непрерывном финансировании PGF указанная сумма будет отправляться в конце каждой эпохи. Существует также возможность удалить получателя из непрерывного финансирования PGF, указав уже существующий платеж непрерывного финансирования и включив действие "удалить". При ретроактивном финансировании PGF указанная сумма будет отправлена немедленно. + + +## Отправка предложения + +Как только файл `proposal.jso`n будет готов, вы можете отправить предложение с помощью (убедитесь, что он находится в той же директории, что и файл `proposal.json`): + +```shell 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` может быть либо "да"shell copy Проверка результата + +Как только сеть достигнет эпохи, определенной в json как `voting_end_epoch`, голоса больше приниматься не будут. Код, заданный в json-поле `proposal_code`, будет выполнен в начале эпохи `grace_epoch`. Для проверки статуса предложения можно воспользоваться следующими командами: + +```shell copy +namada client query-proposal --proposal-id 0 +``` + +или просто проверить результат: + +```shell copy +unamada client query-proposal-result --proposal-id 0 +``` \ No newline at end of file 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 index 769fa022..b4aab881 100644 --- a/packages/docs/pages/users/governance/on-chain-governance.uk-UA.mdx +++ b/packages/docs/pages/users/governance/on-chain-governance.uk-UA.mdx @@ -16,7 +16,7 @@ namada wallet address find --alias `my-new-acc` Тепер нам потрібно створити json-файл `proposal.json` зі змістом нашої пропозиції. Скопіюйте наведений нижче текст у json-файл. -```json +```json copy { "proposal": { "content": { @@ -54,7 +54,7 @@ namada wallet address find --alias `my-new-acc` ### Пропозиція за замовчуванням -```json +```json copy "data" : "" ``` @@ -66,7 +66,7 @@ namada wallet address find --alias `my-new-acc` ### Пропозиція мосту ETH -```json +```json copy "data" : "" ``` @@ -77,7 +77,7 @@ namada wallet address find --alias `my-new-acc` ### Пропозиція стюарда -```json +```json copy "data" : [ { "action" : "add", @@ -95,7 +95,7 @@ namada wallet address find --alias `my-new-acc` ### PGF(фінансування суспільних благ) Пропозиція -```json +```json copy "data" : { "continuous" : [ diff --git a/packages/docs/pages/users/ibc.ru-RU.mdx b/packages/docs/pages/users/ibc.ru-RU.mdx new file mode 100644 index 00000000..5e060bd3 --- /dev/null +++ b/packages/docs/pages/users/ibc.ru-RU.mdx @@ -0,0 +1,77 @@ +import { Callout } from 'nextra-theme-docs' + +# Перевод активов через IBC + +Выполнить ibc-передачу можно с помощью Namada cli, выполнив команду `namadac ibc-transfer`. Предполагается, что для этого должен быть создан канал и запущен Hermes с правильной конфигурацией на двух узлах. + +Для того чтобы выполнить IBC-передачу с помощью команды `ibc-transfer` в Namada, нам необходимо знать `base-dir` и `node` каждого экземпляра (а также другие параметры передачи). `base-dir` - это базовый каталог каждого узла, подробнее см. в разделе [базовый каталог](../operators/ledger/base-directory.mdx). `node` - это `rpc_add`r ретранслятора. Вы можете выполнить команду: + +```shell +grep "rpc_addr" ${HERMES_CONFIG} +``` + +для поиска адреса. + + +**Только для локального узла.** + +Чтобы найти адрес своей для цепочки A, можно выполнить следующую команду + +```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-0`, но по мере создания новых каналов он будет увеличиваться на индекс, возрастающий на 1. Идентификатор канала должен передаваться ретранслятором. + +Предполагая, что открытый канал - `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, ibc-передача выполняется, как описано выше. Однако при обратном переносе из цепочки на базе Cosmos, очевидно, команда `namadac ibc-transfer` работать не будет. Вместо нее следует использовать команду[`gaiad`](https://github.com/cosmos/gaia). + +```bush +gaiad tx ibc-transfer transfer transfer ${CHANNEL_ID} ${RECEIVER_RAW_ADDRESS} ${AMOUNT}${IBC_TOKEN_ADDRESS} --from ${COSMOS_ALIAS} --node ${COSMOS_RPC_ENDPOINT} --fees 5000uatom +``` + +например: + +```bush 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.ru-RU.mdx b/packages/docs/pages/users/public-goods-stewards.ru-RU.mdx new file mode 100644 index 00000000..160d1b2d --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards.ru-RU.mdx @@ -0,0 +1,12 @@ +# PGF +Финансирование общественных благ на Namada осуществляется через организацию, называемую "распорядителями общественных благ". Каждый распорядитель общественных благ представляет собой [счет с несколькими подписями](./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), а также по [предложениям о финансировании общественных благ.](golosovanie-za-styuardov-i-predlozheniya-pgf.md) \ No newline at end of file diff --git a/packages/docs/pages/users/public-goods-stewards/_meta.ru-RU.json b/packages/docs/pages/users/public-goods-stewards/_meta.ru-RU.json new file mode 100644 index 00000000..96bf0b1d --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/_meta.ru-RU.json @@ -0,0 +1,5 @@ +{ + "electing": "Как стать стюардом", + "voting": "Голосование за стюардов и PGF предложения", + "proposing": "PGF предложения (Только для стюардов)" +} diff --git a/packages/docs/pages/users/public-goods-stewards/electing.en-US.mdx b/packages/docs/pages/users/public-goods-stewards/electing.en-US.mdx index acffc73e..28e567dd 100644 --- a/packages/docs/pages/users/public-goods-stewards/electing.en-US.mdx +++ b/packages/docs/pages/users/public-goods-stewards/electing.en-US.mdx @@ -17,7 +17,7 @@ The governance proposal required to elect a new steward is `StewardProposal`. The `steward_proposal.json` file contains the information about the proposal. It is a JSON file with the following structure: -```json +```json copy { "proposal" :{ "content": { diff --git a/packages/docs/pages/users/public-goods-stewards/electing.ru-RU.mdx b/packages/docs/pages/users/public-goods-stewards/electing.ru-RU.mdx new file mode 100644 index 00000000..830f4573 --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/electing.ru-RU.mdx @@ -0,0 +1,87 @@ +import { Callout } from 'nextra-theme-docs' + +# Стать стюардом + +Управляющий общественными благами может состоять из произвольного числа людей, а может быть и одним человеком. Единственным требованием является то, что мультиподписная учетная запись стюарда должна быть избрана сообществом посредством предложения по управлению. + +Поэтому первым шагом на пути к статусу стюарда является создание учетной записи с несколькими подписями. Это можно сделать с помощью команд, приведенных в документации по [multisgnature.](../transparent-accounts/multisignature.mdx) + +После создания мультисигнатурной учетной записи стюард может подать предложение по управлению для избрания этой учетной записи в качестве стюарда. + +## Предложение по управлению + +Предложение по управлению, необходимое для избрания нового стюарда, - это `StewardProposal`. + +### Формирование файла `proposal.json` для предложения стюарда + +Файл `steward_proposal.json` содержит информацию о предложении. Он представляет собой JSON-файл со следующей структурой: + +```json copy +{ + "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"` - это адрес счета мультиподписи, который будет удален из списка стюардов. + + +В поле мотивации и аннотации важно четко указать, на каком виде финансирования общественных благ будет сфокусирована работа стюарда. + Направления финансирования общественных благ можно найти в спецификации финансирования общественных благ. + + +### Отправка предложения в сеть + +Команда CLI для отправки предложения имеет следующий вид: + +```shell copy +namadac init-proposal \ + --pgf-stewards \ + --data-path +``` + +где `` - путь к файлу `steward_proposal.json`. + +### Стать избранным + +После подачи предложения оно будет вынесено на[ голосование сообщества.](./voting.mdx) Если предложение пройдет, то аккаунт станет стюардом. Если предложение не пройдет, то аккаунт не станет стюардом. + +После того как аккаунт с несколькими подписями станет избранным (что произойдет по окончании `grace_epoch`), он сможет подавать заявки в пул финансирования общественных благ ([см. подача заявок](./proposing.mdx#proposing-funding)). + +## Потеря управления + +Существует 4 способа, с помощью которых управляющий может потерять свое управление: + +1. Снять с себя полномочия стюарда +2. Иметь значительное провальное предложение по финансированию(например из имеющихся 23 голосов сообщества все 23 проглосовали против) +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). \ No newline at end of file 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 index a5ed6a4a..0d59589c 100644 --- a/packages/docs/pages/users/public-goods-stewards/electing.uk-UA.mdx +++ b/packages/docs/pages/users/public-goods-stewards/electing.uk-UA.mdx @@ -17,7 +17,7 @@ import { Callout } from 'nextra-theme-docs' Файл `steward_proposal.json` містить інформацію про пропозицію. Це JSON-файл з наступною структурою: -```json +```json copy { "proposal" :{ "content": { diff --git a/packages/docs/pages/users/public-goods-stewards/proposing.ru-RU.mdx b/packages/docs/pages/users/public-goods-stewards/proposing.ru-RU.mdx new file mode 100644 index 00000000..e0c25c86 --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/proposing.ru-RU.mdx @@ -0,0 +1,74 @@ +import { Callout } from 'nextra-theme-docs' + +## Предложение о финансировании + +## Форматирование файла `proposal.json` + +Ниже приведен пример PGFP-предложения, которое может быть подано стюардом. Обратите внимание, что такие предложения смогут подавать только стюарды. + +```json copy +{ + "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 +``` \ No newline at end of file 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 index 02a65372..cf203f87 100644 --- a/packages/docs/pages/users/public-goods-stewards/proposing.uk-UA.mdx +++ b/packages/docs/pages/users/public-goods-stewards/proposing.uk-UA.mdx @@ -5,7 +5,7 @@ import { Callout } from 'nextra-theme-docs' ## Форматування файлу `proposal.json` Нижче наведено приклад `PGFProposal` (пропозиція фінансування суспільних благ), яку може подати стюард. Зверніть увагу, що тільки стюарди зможуть подавати ці пропозиції. -```json +```json copy { "proposal" :{ "content": { diff --git a/packages/docs/pages/users/public-goods-stewards/voting.ru-RU.mdx b/packages/docs/pages/users/public-goods-stewards/voting.ru-RU.mdx new file mode 100644 index 00000000..5718a696 --- /dev/null +++ b/packages/docs/pages/users/public-goods-stewards/voting.ru-RU.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 +``` \ No newline at end of file diff --git a/packages/docs/pages/users/shielded-accounts.ru-RU.mdx b/packages/docs/pages/users/shielded-accounts.ru-RU.mdx new file mode 100644 index 00000000..df5f5ada --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts.ru-RU.mdx @@ -0,0 +1,7 @@ +# MASP + +[Экранированный(защищенный) пул с несколькими активами (MASP)](https://medium.com/@lofingvv/%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D1%8A%D1%8F%D1%81%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-masp-cfe6fa4f4df3) - это схема с нулевым разглашением, позволяющая пользователям осуществлять переводы таким образом, чтобы не раскрывать ни отправителя, ни получателя, ни сумму. Каждый перевод сам по себе является доказательством и часто называется "банкнотой". С точки зрения пользователей, построение этих доказательств с нулевым разглашением происходит "за кулисами". + +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) \ No newline at end of file diff --git a/packages/docs/pages/users/shielded-accounts/_meta.ru-RU.json b/packages/docs/pages/users/shielded-accounts/_meta.ru-RU.json new file mode 100644 index 00000000..0d0414c7 --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/_meta.ru-RU.json @@ -0,0 +1,4 @@ +{ + "shielded-transfers": "Экранированные переводы", + "shielded-rewards": "Экранированные награды" +} diff --git a/packages/docs/pages/users/shielded-accounts/shielded-rewards.ru-RU.mdx b/packages/docs/pages/users/shielded-accounts/shielded-rewards.ru-RU.mdx new file mode 100644 index 00000000..39d97c28 --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/shielded-rewards.ru-RU.mdx @@ -0,0 +1,5 @@ +# Экранированные вознаграждения + +Экранированные вознаграждения распределяются между всеми пользователями в экранированном наборе. Пользователи получают токены `NAM` за каждую эпоху нахождения их стимулируемых активов в экранированном наборе. Неформально количество `NAM`, получаемое за конкретный актив, пропорционально количеству этого актива в щитовом пуле. Каждый актив имеет "ставку вознаграждения", определяемую руководством, которая задает константу пропорциональности для данного актива. + +Заинтересованному читателю следует обратиться [к спецификации](https://specs.namada.net/economics/proof-of-stake) для более точного объяснения того, как рассчитывается вознаграждение. \ No newline at end of file diff --git a/packages/docs/pages/users/shielded-accounts/shielded-transfers.ru-RU.mdx b/packages/docs/pages/users/shielded-accounts/shielded-transfers.ru-RU.mdx new file mode 100644 index 00000000..2bc4044f --- /dev/null +++ b/packages/docs/pages/users/shielded-accounts/shielded-transfers.ru-RU.mdx @@ -0,0 +1,178 @@ +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) +- [**Экранированные переводы**: экранированные на экранированные адреса](#shielding-transfers) +- [**Неэкранированные переводы**: от экранированных к прозрачным адресам](#shielding-transfers) + +Мы различаем два вида ключей: + +- **Spending Key(далее ключ расходов)** - это тип закрытого ключа, который позволяет любому пользователю, владеющему им, расходовать баланс связанного с ним адреса. Для экранированных адресов владение ключом расходов также позволяет пользователю просматривать баланс адреса и данные о транзакциях. +- **Viewing Key(далее ключ просмотра)** позволяет любому пользователю, владеющему им, просматривать и раскрывать информацию о транзакциях. Он является производным от ключа **Spending Key** и имеет тот же псевдоним. + +### Экранированные переводы + +Для осуществления экранированного перевода пользователь должен иметь прозрачный счет с некоторым балансом токенов. + +#### Генерация ключа траты + +Новый ключ можно сгенерировать случайным образом: + +```shell copy +namadaw masp gen-key --alias +``` + +Эта команда также сгенерирует соответствующий **Viewing Key**, имеющий тот же псевдоним. + + +#### Создание нового платежного адреса + +Для создания платежного адреса на основе своего расходного ключа можно выполнить следующие действия: + +```shell copy +namadaw masp gen-addr \ + --key \ + --alias +``` + +При выполнении этой команды каждый раз генерируется свой платежный адрес. +Платежные адреса можно использовать или отбрасывать по своему усмотрению, а любые связи между адресами не могут быть расшифрованы другим пользователем без ключа расходования средств. + + + +#### Отправить перевод на экранированный счет + +Получив платежный адрес, можно перевести остаток средств с прозрачного счета на экранированный: + +```shell copy +namadac transfer \ + --source \ + --target \ + --token btc \ + --amount +``` + +### Экранированные переводы + +После того как у пользователя появился защищенный баланс, он может быть переведен на другой защищенный адрес: + +```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-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 +``` \ No newline at end of file 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 index a86b391b..21831286 100644 --- a/packages/docs/pages/users/shielded-accounts/shielded-transfers.uk-UA.mdx +++ b/packages/docs/pages/users/shielded-accounts/shielded-transfers.uk-UA.mdx @@ -30,10 +30,10 @@ MASP - це схема з нульовим рівнем знань ([zk-SNARK](h namadaw masp gen-key --alias ``` - + Ця команда також створить відповідний спільний доступ до ключа перегляду з тим самим псевдонімом. - + #### Створення нової платіжної адреси @@ -45,9 +45,8 @@ namadaw masp gen-addr \ --alias ``` - -Ця команда буде генерувати різні платіжні адреси кожного разу, коли користувач запускає команду. -Платіжні адреси можуть бути повторно використані або відкинуті за бажанням користувача, і будь-який зв'язок + +Ця команда буде генерувати різні платіжні адреси кожного разу, коли користувач запускає команду. Платіжні адреси можуть бути повторно використані або відкинуті за бажанням користувача, і будь-який зв'язок між адресами не може бути розшифрований іншим користувачем без ключа витрат. diff --git a/packages/docs/pages/users/transparent-accounts.ru-RU.mdx b/packages/docs/pages/users/transparent-accounts.ru-RU.mdx new file mode 100644 index 00000000..8e090d88 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts.ru-RU.mdx @@ -0,0 +1,104 @@ +import { Callout } from 'nextra-theme-docs' + +# Прозрачные счета + +Все счета в Namada имеют уникальный адрес, ровно один предикат достоверности и, по желанию, любые дополнительные данные в своем динамическом подпространстве хранения. + +В настоящее время существует 3 типа адресов счетов: + +- **Implicit** (пока не полностью поддерживается): Неявный счет создается на основе вашей пары ключей и может использоваться для авторизации определенных транзакций со счета. Они могут использоваться в качестве получателей транзакций, даже если ранее счет не использовался в цепи. +- **Established**: Используется для учетных записей, позволяющих развернуть пользовательскую логику проверки. Они должны быть созданы на цепочке с помощью транзакции (например, [инициализации счета](./transparent-accounts/send-and-receive-nam-tokens.mdx#initialize-an-established-account)). Адрес генерируется на цепи и не известен до тех пор, пока не будет применена транзакция (пользователь обеспечивает случайность). +- **Internal**: Специальные внутренние счета, такие как счет параметров протокола, 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 поддерживает генерацию пары ключей с использованием мнемонического кода и пути деривации HD. + Чтобы сгенерировать пару ключей для пути по умолчанию, используйте +```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 +``` + +### Формирование адреса implicit + +Назовем его ss `accountant`: + +```shell copy +namada wallet address gen --alias keysha --hd-path default +``` + +Обратите внимание, что при этом также будет сгенерирован и сохранен ключ, на основе которого был получен адрес, и сохранен под тем же псевдонимом 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 +``` \ No newline at end of file diff --git a/packages/docs/pages/users/transparent-accounts/_meta.ru-RU.json b/packages/docs/pages/users/transparent-accounts/_meta.ru-RU.json new file mode 100644 index 00000000..3dd392a2 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/_meta.ru-RU.json @@ -0,0 +1,4 @@ +{ + "multisignature": "Мультиподпись", + "send-and-receive-nam-tokens": "Отправление и получение Nam токенов" +} diff --git a/packages/docs/pages/users/transparent-accounts/multisignature.ru-RU.mdx b/packages/docs/pages/users/transparent-accounts/multisignature.ru-RU.mdx new file mode 100644 index 00000000..032978f1 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/multisignature.ru-RU.mdx @@ -0,0 +1,172 @@ +import { Callout } from 'nextra-theme-docs' + +# Счета с несколькими подписями на Namada + +Счета с несколькими подписями (мультисигмы) - это счета в системе Namada, позволяющие использовать несколько подписей. Наличие мультисигм имеет множество преимуществ, включая, помимо прочего, следующие: + +- Повышенная безопасность +- Возможность совместного использования кошельков +- Лучшие возможности восстановления. + +По этой причине все счета в Namada по умолчанию являются счетами с несколькими подписями.shell Инициализация мультиподписного счета + +Перед созданием счета пользователь должен сгенерировать как минимум один криптографический ключ, который будет использоваться для подписания транзакций. + +Для генерации такого ключа используется следующий метод: + +```shell +namadaw key gen \ +--alias my-key1 +``` + +Может быть сгенерирован и второй ключ (что будет полезно при работе с мультисигмами): + +```shell +namadaw key gen \ +--alias my-key2 +``` + +Также может быть сформирован implicit адрес: + +```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 +``` + +## Представление транзакции с несколькими подписями + +Для того чтобы отправить транзакцию с несколькими подписями, необходимо сначала создать офлайн-транзакцию. + +### Построение автономной транзакции + + +Существуют определенные ограничения на построение автономных транзакций. Пожалуйста, будьте внимательны к возможным ошибкам. + + +Аргумент `--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 + +Существует возможность изменить открытые ключи учетной записи 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/multisignature.uk-UA.mdx b/packages/docs/pages/users/transparent-accounts/multisignature.uk-UA.mdx index 80659409..c13f2338 100644 --- a/packages/docs/pages/users/transparent-accounts/multisignature.uk-UA.mdx +++ b/packages/docs/pages/users/transparent-accounts/multisignature.uk-UA.mdx @@ -2,7 +2,7 @@ import { Callout } from 'nextra-theme-docs' # Облікові записи з мультипідписом на Namada -Облікові записи з мультипідписом(multisigs) - це облікові записи в Namada, які дозволяють використовувати декілька підписів. Використання мультипідписів має багато переваг, включаючи, але не обмежуючись ними +Облікові записи з мультипідписом(multisigs) - це облікові записи в Namada, які дозволяють використовувати декілька підписів. Використання мультипідписів має багато переваг, включаючи, але не обмежуючись ними. - Підвищена безпека - Можливість спільного використання гаманців @@ -92,7 +92,8 @@ namadac sign-tx \ ``` -Зауважте, що на цьому етапі транзакцію може бути підписано будь-якою кількістю `--signing-keys`. У результаті буде створено декілька підписів, які можна використовувати для відправлення транзакції. +Зауважте, що на цьому етапі транзакцію може бути підписано будь-якою кількістю `--signing-keys`. + У результаті буде створено декілька підписів, які можна використовувати для відправлення транзакції. @@ -110,6 +111,7 @@ export SIGNATURE_ONE="offline_signature_FB7246E3FC43F59D8AEEC234EBFDB9DF1AC9BB7B ### Відправлення транзакції Останнім кроком є відправка транзакції. Це можна зробити за допомогою наступного методу: + ```shell namadac tx \ --tx-path "tx_dumps/a45ef98a817290d6fc0efbd480bf66647ea8061aee1628ce09b4af4f4eeed1c2.tx" \ diff --git a/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.ru-RU.mdx b/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.ru-RU.mdx new file mode 100644 index 00000000..42befbe1 --- /dev/null +++ b/packages/docs/pages/users/transparent-accounts/send-and-receive-nam-tokens.ru-RU.mdx @@ -0,0 +1,57 @@ +import { Callout } from 'nextra-theme-docs' + +# Отправка и получение токенов NAM + +В Namada токены реализованы в виде счетов с [предикатом валидности токена](https://github.com/anoma/namada/blob/9b67281e359ebff5467cad57c866fbcf91eb80c8/shared/src/ledger/native\_vp/multitoken.rs#L30). +Предикат валидности (VP) проверяет, в частности, что общий запас (токена) сохраняется в любой транзакции, в которой используется данный токен. Ваш кошелек будет предварительно загружен некоторыми адресами токенов, которые инициализируются в блоке genesis. + +### Инициализация существующего счета + +Если у вас уже есть ключ в кошельке, этот шаг можно пропустить. В противном случае сгенерируйте [новую пару ключей](../transparent-accounts.mdx#generate-a-keypair) прямо сейчас. + +Затем отправьте транзакцию для инициализации нового созданного счета и сохраните его адрес с псевдонимом `establishment`. Открытый ключ `keysha` будет записан в хранилище счета для авторизации последующих транзакций. Эту транзакцию мы также подписываем ключом `keyshshell copy +```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-транзакции), можно использовать флаг `--dry-run-wrapper`, чтобы имитировать применение транзакции в блоке и посмотреть, что получится в результате. + + +### Просмотр баланса всех известных адресов + +При запросе баланса всех токенов можно увидеть адреса токенов, известных клиенту: + +```shell copy +namada client balance +``` \ No newline at end of file diff --git a/packages/docs/pages/users/wallet.ru-RU.mdx b/packages/docs/pages/users/wallet.ru-RU.mdx new file mode 100644 index 00000000..3e359cd1 --- /dev/null +++ b/packages/docs/pages/users/wallet.ru-RU.mdx @@ -0,0 +1,20 @@ +# Руководство по работе с кошельком Namada + +В данном документе описаны различные концепции и варианты кошельков, которые доступны пользователям Namada, желающим иметь возможность [отправлять, получать и взаимодействовать с токенами NAM](./transparent-accounts/send-and-receive-nam-tokens.mdx) на блокчейне 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) \ No newline at end of file diff --git a/packages/docs/pages/users/wallet/_meta.ru-RU.json b/packages/docs/pages/users/wallet/_meta.ru-RU.json new file mode 100644 index 00000000..52d5f441 --- /dev/null +++ b/packages/docs/pages/users/wallet/_meta.ru-RU.json @@ -0,0 +1,5 @@ +{ + "file-system-wallet": "Файловая система кошелька", + "web-wallet": "Веб кошелек", + "hardware-wallet": "Аппаратный кошелек" +} diff --git a/packages/docs/pages/users/wallet/file-system-wallet.ru-RU.mdx b/packages/docs/pages/users/wallet/file-system-wallet.ru-RU.mdx new file mode 100644 index 00000000..350b5717 --- /dev/null +++ b/packages/docs/pages/users/wallet/file-system-wallet.ru-RU.mdx @@ -0,0 +1,11 @@ +## Кошелек файловой системы + +По умолчанию Namada Wallet хранится в каталоге `.namada/{chain_id}/wallet.tom`l, где ключи хранятся в зашифрованном виде. Вы можете изменить путь к базовому каталогу по умолчанию с помощью параметра `--base-dir` и разрешить хранение незашифрованных пар ключей с помощью флага `--unsafe-dont-encrypt`. + +Если кошелек еще не существует, он будет создан, как только вы выполните команду, пытающуюся получить доступ к кошельку. Вновь созданный кошелек будет предварительно загружен некоторыми внутренними адресами, такими как `pos`, `pos_slash_poo`l, `masp` и др. + +В настоящее время клиент Namada может загружать пароль через: + +* **Stdin**: клиент запросит пароль. +* **Переменная Env**: путем экспорта переменной ENV с именем `NAMADA_WALLET_PASSWORD` со значением фактического пароля. +* **Файл**: путем экспорта ENV-переменной `NAMADA_WALLET_PASSWORD_FILE` со значением, содержащим путь к файлу, содержащему пароль. \ No newline at end of file diff --git a/packages/docs/pages/users/wallet/hardware-wallet.ru-RU.mdx b/packages/docs/pages/users/wallet/hardware-wallet.ru-RU.mdx new file mode 100644 index 00000000..8e846435 --- /dev/null +++ b/packages/docs/pages/users/wallet/hardware-wallet.ru-RU.mdx @@ -0,0 +1,25 @@ +## Аппаратный кошелек + +Расширение веб-кошелька Namada совместимо с аппаратным обеспечением[ Ledger](https://www.ledger.com/). В данном руководстве мы рассмотрим процесс настройки устройства Ledger для работы с Namada. + +### Необходимые условия + +Устройство Ledger с установленной последней версией прошивки. Инструкции по обновлению прошивки можно [найти здесь.](https://support.ledger.com/hc/en-us/articles/360002731113-Update-device-firmware) + +Установите пакет [javascript npm здесь](https://www.npmjs.com/package/@zondax/ledger-namada). + +Для использования устройства Ledger с веб-кошельком необходимо установить [веб-кошелек Namada](./web-wallet.mdx#install). + +### Подключение Ledger + +1. Откройте веб-расширение Namada. +2. В разделе настроек нажмите кнопку `Connect Ledger`. +3. Задайте псевдоним для учетной записи, ключами которой будет управлять ledger. +4. Вы можете выбрать подключение к устройству через `USB` (рекомендуется) или `HID` (Human Interface Devices). +5. Программа запросит подтверждение подключения. Подтвердите это соединение на устройстве ledger. +6. После этого в расширении отобразится адрес счета, ключами которого управляет устройство. +7. Теперь можно закрыть информационное окно и использовать ledger для подписания транзакций. + +### Отправка транзакций с помощью ledger + +Инструкции по отправке транзакций с помощью веб-кошелька см. в [руководстве по веб-кошельку.](./web-wallet.mdx#sending-transactions) \ No newline at end of file diff --git a/packages/docs/pages/users/wallet/web-wallet.ru-RU.mdx b/packages/docs/pages/users/wallet/web-wallet.ru-RU.mdx new file mode 100644 index 00000000..2eb7962d --- /dev/null +++ b/packages/docs/pages/users/wallet/web-wallet.ru-RU.mdx @@ -0,0 +1,34 @@ +# Веб-кошелек + +## Установка + +Когда Namada появится в `mainnet`, веб-кошелек будет доступен в большинстве веб-магазинов расширений для браузеров. Пока же вы можете установить его из исходных файлов, следуя приведенным ниже инструкциям. + +### Установка из исходного кода (для целей разработки и экспериментов) + +#### Подключитесь к тестовой сети или запустите локальный узел + +1. Для подключения к тестовой сети или создания локального узла с помощью [docker](../../networks/testnets.mdx) следуйте [инструкциям для тестовых сетей.](../../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. Перейдите в каталог `namada-interface/apps/extension` и запустите команду `yarn start:chrome`. В результате расширение будет собрано и помещено в каталог `namada-interface/apps/extension/build`. Также будет запущен dev-сервер, который будет следить за изменениями. +4. Перейдите в каталог `namada-interface/apps/namada-interface` и запустите команду `yarn dev:local` для запуска локального экземпляра веб-кошелька. +5. Добавьте расширение в браузер. Например, в Chrome можно перейти по адресу `chrome://extensions/`, нажать кнопку `Load unpacked` и выбрать папку `namada-interface/apps/extension/build/chrome/`. + +## Получение токенов + +Адрес любого счета можно увидеть, нажав кнопку `Receive` в начальном представлении на вкладке "Общий баланс". Адрес можно скопировать, нажав на значок копирования рядом с адресом. При этом также отобразится QR-код, который можно отсканировать с помощью мобильного кошелька. + +## Отправка транзакций + +Для отправки транзакций можно нажать кнопку `Send` в начальном окне на вкладке "Общий баланс". В результате откроется модальное окно, в котором можно отправить токены на любой счет, с любого счета в кошельке, имеющего положительный баланс. \ No newline at end of file diff --git a/packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx b/packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx index 80957fe9..e9b38ff0 100644 --- a/packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx +++ b/packages/docs/pages/users/wallet/web-wallet.uk-UA.mdx @@ -36,4 +36,4 @@ ## Відправлення транзакцій -Для того, щоб відправити транзакції, ви можете натиснути кнопку "Відправити" в початковому поданні на вкладці "Загальні баланси". Це відкриє модальне вікно, яке дозволить вам відправляти токени на будь-який рахунок, з будь-якого рахунку у вашому гаманці, який має позитивний баланс. +Для того, щоб відправити транзакції, ви можете натиснути кнопку `Відправити` в початковому поданні на вкладці `Загальні баланси`. Це відкриє модальне вікно, яке дозволить вам відправляти токени на будь-який рахунок, з будь-якого рахунку у вашому гаманці, який має позитивний баланс. diff --git a/packages/docs/theme.config.tsx b/packages/docs/theme.config.tsx index 9abdf0ab..4dd6deb5 100644 --- a/packages/docs/theme.config.tsx +++ b/packages/docs/theme.config.tsx @@ -38,7 +38,8 @@ const config: DocsThemeConfig = { i18n: [ { locale: 'en-US', text: 'English' }, { locale: 'uk-UA', text: 'Українська' }, - { locale: 'zh-CN', text: '中文' } + { locale: 'zh-CN', text: '中文' }, + { locale: 'ru-RU', text: 'Русский'} ] };