Система аккаунтов NEAR – Экспресс гайд

3 min read
To Share and +4 nLEARNs

Введение

  1. NEAR использует человекочитаемые идентификаторы аккаунтов формата name.near. Например, maria.near или jane.near.
  2. Система аккаунтов NEAR подобна системе доменных имен веб-сайтов, в том плане, что аккаунт может создать сколько угодно дочерних аккаунтов. Например, аккаунт с именем maria.near можно создать аккаунт вида sub.maria.near, а он в свою очередь может создать аккаунты first.sub.masha.near, second.sub.maria.near и т.д.
  3. Для создания аккаунта можно использовать NEAR Wallet (https://wallet.near.org/) (кошелек от NEAR Protocol), NEAR Faucet (кран для пользователей Ethereum и Metamask) или near-cli (https://github.com/near/near-cli) (интерфейс командной строки, предоставляющий функционал для взаимодействия с NEAR).
  4. В NEAR можно создать аккаунт и отправить его другу или подписчику в качестве подарка при помощи сервиса https://nearnames.com.
  5. Посмотреть информацию о аккаунте можно не только в кошельке, но и в NEAR Explorer (https://explorer.near.org/).
  6. Кроме явных аккаунтов (вида name.near), экосистема NEAR также поддерживает создание неявных аккаунтов при помощи near-cli (они выглядят подобно адресам Bitcoin или Ethereum). Подробный гайд на английском можно найти здесь (https://docs.near.org/docs/roles/integrator/implicit-accounts).
  7. Каждый аккаунт в системе может иметь только один смарт-контракт. Для приложений, в которых пользователи должны управлять несколькими смарт-контрактами можно использовать дочерние аккаунты. Например, contract_1.maria.near, contract_2.maria.near и т.д.
  8. В экосистеме NEAR существуют аккаунты для разработчиков (https://docs.near.org/docs/concepts/account#dev-accounts). Их особенность в том, что они предназначены для тестирования и отладки смарт-контрактов.

НИАР Аккунт – Ключи

 

  1. NEAR, как и большинство других блокчейнов, основан на криптографии с открытым ключом. Таким образом он полагается на пары ключей, в каждой из которых одному открытому ключу (public key) соответствует только один закрытый ключ (private key).
  2. NEAR использует открытый ключ для идентификации, а закрытый — для подписей транзакций (подтверждения контроля над аккаунтом при создании транзакций от его имени).
  3. В NEAR существует 3 типа ключей. Ключи доступа — для подписей транзакции от лица аккаунта, ключи валидатора — для обеспечения работы операций, связанных с валидированием сети, и ключи нод (узлов сети) — для обеспечения низкоуровневой коммуникации между узлами сети.
  4. Ключи могут храниться в 3-х разных хранилищах. InMemoryKeyStore — хранение в памяти, используется для временных сценариев. BrowserLocalStorageKeyStore — незашифрованное локальное хранилище браузера, используется для работы с приложениями в браузере. UnencryptedFileSystemKeyStore — незашифрованное хранилище в файловой системе, используется при работе с near-cli.
  5. Аккаунт может иметь несколько ключей доступа или не иметь ни одного.
  6. У ключей могут быть разные уровни доступа — FullAccess (полный доступ) или FunctionCall (только возможность вызывать методы контракта).
  7. Все ключи уникальные в пределах одного аккаунта, однако публичный ключ может быть назначен разным аккаунтам с различными уровнями доступа. От уровня доступа зависит какие действия в аккаунте можно выполнять с данным ключом.
  8. Для уровня доступа FullAccess доступны все 8 типов действий: CreateAccountAction (создание аккаунта), DeployContractAction (развертывание контракта), FunctionCallAction (вызов методов контракта), TransferAction (отправка токенов другому аккаунту), StakeAction (стейкинг токенов), AddKeyAction (добавление ключа аккаунту), DeleteKeyAction (удаление ключа аккаунта), DeleteAccountAction (удаление аккаунта).
  9. Для уровня доступа FunctionCall доступно только действие FunctionCallAction (вызов методов контракта). При этом для такого ключа можно указать какие именно методы контракта он может вызывать.

НИАР аккаунт ключи

Generate comment with AI 2 nL
161

Оставьте комментарий


To leave a comment you should to:


Пролистать наверх
Report a bug👀