Вступление

Это моя вторая попытка на Algorand. В моей предыдущей работе я использовал инструмент CLI goal для доступа к настройке частной сети. В этом я пишу сценарии на JavaScript, отправляю транзакции в Algorand TestNet. Мы пройдем через все этапы, от подготовки среды до создания учетной записи, пополнения счетов с помощью крана и передачи алгоритмов между учетными записями.

Обратите внимание, что эта демонстрация выполняется с помощью API Algod v2, выпущенного в июне этого года.

Предполагается, что у вас есть базовые знания и навыки работы с Node JS. Мы предоставим все сценарии с пояснениями.

Источник

Ссылки сделаны на некоторые статьи.

  • Документация по алгоритму: ваша первая транзакция (ссылка)
  • Учебное пособие по Algorand: создать учетную запись в TestNet с помощью JavaScript (ссылка)
  • Сервисы PureStake Developer API (ссылка)

Демонстрация

Наша демонстрация выполняется в следующих задачах

  1. Подготовить среду
  2. Создать учетные записи
  3. Получите тестовые алгоритмы из TestNet Faucet
  4. Войдите в Algorand TestNet и проверьте баланс
  5. Отправляет алгоритмы в другой аккаунт

Для выполнения этих задач мы создаем несколько js-скриптов. А во время демонстрации выделим определенные области.

Шаг 1. Подготовьте среду

Предполагается, что nodejs и npm правильно установлены в нашей среде.

Подготовьте новый каталог и инициализируйте среду Node.

Затем загрузите Algorand SDK для Javascript.

npm install algosdk -s

По завершении мы увидим, что модули загружены в node_modules/. Наша среда готова к использованию.

Шаг 2. Создайте учетные записи

Algorand также является блокчейн-платформой на основе учетных записей. Корневой элемент учетной записи - это пара ключей (открытый ключ и закрытый ключ), сгенерированная из случайного начального числа. Каждый ключ представляет собой 32-байтовый массив.

Открытый ключ не используется напрямую в реальной жизни. Вместо этого на основе открытого ключа вычисляется адрес, и в результате получается распознаваемая строка длиной 58 символов. Это адрес, обращенный к миру.

Закрытый ключ всегда представлен в виде мнемоники. Помимо удобочитаемого представления, он также служит механизмом резервного копирования. В Algorand закрытый ключ преобразован в мнемонику из 25 слов. Благодаря этому мы всегда можем восстановить закрытый ключ. Мнемоника должна храниться в безопасности в реальной жизни.

Более подробную информацию об аккаунте можно посмотреть в документации к Алгоранду.

SDK поставляется со всеми инструментами для создания учетных записей и не зависит от среды, над которой мы работаем.

Вот сценарий, который мы используем для создания учетной записи для нашей демонстрации. Сделайте это дважды и зарегистрируйте и адрес, и мнемонику.

Результат функции algosdk.generateAccount () состоит из двух частей: адреса (addr) и секретного ключа (sk ). И мы используем другую функцию algosdk.secretKeyToMnemonic () для преобразования секретного ключа в мнемонику из 25 слов.

Можно создать столько учетных записей, сколько необходимо. В нашем случае мы делаем это дважды и записываем адрес и мнемонику обоих учетных записей для нашей демонстрации.

Шаг 3. Получите тестовые алгоритмы из TestNet Faucet

Давайте сначала сделаем некоторые пояснения. Algorand управляет основной сетью, в которой для транзакций используются настоящие алгоритмы. Как и другие платформы блокчейнов, он также предоставляет TestNet, где мы можем тестировать все, что захотим, с помощью тестовых алгоритмов. Тестовые алгоритмы доступны в сборщике TestNet, и в этой демонстрации мы получим некоторые из них.

Сборщик TestNet

Нам нужно получить доступ к крану (https://bank.testnet.algorand.network/) и вставить туда адрес нашей учетной записи. Каждый раз сборщик отправляет на аккаунт 100 алгоритмов.

Здесь мы вставляем адрес account_1, чтобы получить 100 алгоритмов.

После того, как мы увидим сообщение Успешный код 200 с идентификатором транзакции, алгоритмы будут отправлены на account_1.

Проверьте баланс с помощью Algorand Explorer

Конечно, мы можем использовать нашу среду для проверки баланса. На данный момент давайте сначала проверим баланс обоих аккаунтов с помощью исследователей Algorand. Есть несколько исследователей Algorand, а здесь мы используем goalseeker. Не забудьте изменить его на TestNet перед проверкой аккаунтов.

Это для account_1. Мы видим 100 депонированных Algos. Мы также видим транзакцию, когда сборщик отправляет 100 тестовых алгоритмов (обратите внимание на идентификатор транзакции).

Для сравнения также проверяем account_2. Как и ожидалось, мы пока не видим баланса.

Шаг 4: доступ к Algorand TestNet и проверка баланса

Получите доступ к Algorand TestNet через сервис API

Если вы не запускаете узел Algorand, присоединяющийся к TestNet, единственный способ получить доступ к Algorand TestNet - через стороннюю службу. Вот доступные API-сервисы, а мы используем PureStake.

Что вам нужно, так это пройти регистрацию (если еще нет). Вы получите свой API-ключ. Этот ключ API необходим при доступе к TestNet через эту службу API.

И вы продолжаете прокручивать вниз и видите шлюз API. Мы воспользуемся этим позже.

Проверить баланс

Теперь мы можем подготовить наш скрипт для проверки баланса. Для простоты мы проверим обе учетные записи одним скриптом.

Некоторые моменты, которые следует отметить в этом сценарии.

Чтобы получить доступ к Algorand TestNet через поставщика услуг API, нам нужно создать оболочку. Вы можете видеть его как клиента, обращающегося к указанной службе. В результате он получил название клиент. Нам нужна следующая информация:

  • API-шлюз или сервер: https://testnet-algorand.api.purestake.io/ps2. Обратите внимание, что мы используем API v2.
  • Оставьте пустой порт.
  • Ключ API (токен): определяется как объект. Используйте свой собственный ключ API, полученный от поставщика услуг API.

При этом клиент создается с помощью algosdk.Algodv2 (). Теперь мы можем использовать клиент для доступа к Algorand TestNet. Мы вызываем функцию accountInformation () с заданным адресом. Результатом является объект (account1_info и account2_info). Внутри объекта мы можем получить баланс от ключевой суммы.

Вы можете видеть, что нам нужен только адрес (а не закрытый ключ или мнемоника) для проверки баланса. Теоретически баланс счета - это открытая информация, и любой может просмотреть баланс любого адреса. Возможно, вы помните, что мы проверяем баланс с помощью Algorand Explorer, к которому должен получить доступ любой пользователь (шаг 3).

Вот результат, который мы получаем после запуска этого скрипта. Мы видим, что в аккаунте 1 у нас есть 100 алгоритмов (показаны в microAlgos, 100 Algos = 100 x 10⁶ microAlgos) и ни одного в аккаунте 2. Подобно тому, что мы наблюдаем в Algorand Explorer (шаг 3).

Для информации, вот полный результат accountInformation (), и вы можете найти сумму.

Шаг 5. Отправьте алгоритмы в другую учетную запись

Algorand следует тому же шаблону, что и другие платформы блокчейнов. Передача алгоритмов в национальной валюте осуществляется посредством транзакции, подписанной отправителем и отправленной в Algorand TestNet. После включения транзакции в блок транзакция считается обработанной.

Вот сценарий, который мы используем, и мы рассмотрим эти шаги.

Скрипт Walk-through

(a) Подготовьте ключ подписи для отправителя (строки 10–11)

Логично, что «деньги» тратят с одобрения. В мире блокчейнов эта отправка осуществляется транзакцией, требующей подписи отправителя. В результате нам понадобится секретный ключ отправителя. Секретный ключ получается путем предоставления мнемоники и использования algosdk.mnemonicToSecretKey (). Теперь результат сохраняется в account1. И мы можем получить секретный ключ в account1.sk позже в процессе подписания (d).

Обратите внимание: нам не нужен секретный ключ получателя (у вас его никогда не бывает). Нам нужен только адрес учетной записи получателя, который является общедоступным.

(b) Получить последние параметры транзакции из Algorand TestNet (строка 14)

Если мы взглянем на (c), определенная информация в транзакции опирается на некоторую последнюю информацию из Algorand TestNet. Мы используем client.getTransactionParams (). Do () для чтения этой информации и сохранения объекта результата в params.

Вот пример вывода после использования этой функции.

(c) Создание сделки (строки 15–25)

Теперь мы готовы построить транзакцию. Как видно из кода, нам нужно указать те элементы, которые требуются в транзакции.

  • from и to: адрес учетной записи отправителя и получателя (вы можете использовать фактический адрес для отправителя. Поскольку у нас есть объект account1, содержащий его, мы используем account1.addr вместо этого.)
  • Комиссия: комиссия за единицу (микроАлгоритмы за байт) для этой транзакции, минимум 1000 микроалгоритмов.
  • сумма: сумма в микроальгоне, которую отправляет отправитель.
  • firstRound, lastRound, genesisID и genesisHash: все получены из (b).
  • примечание: любую произвольную информацию для этой транзакции, и мы оставляем ее здесь пустой.

Подробнее о сделках можно узнать здесь.

Теперь у нас есть объект транзакции. Мы можем перейти к этапу подписания отправителем.

(d) Подпишите транзакцию секретным ключом отправителя (строка 26).

Отправитель подписывает транзакцию собственным секретным ключом отправителя. Функция подписи транзакции - algosdk.signTransaction () с секретным ключом транзакции. Обратите внимание, что это подписание не предполагает какого-либо взаимодействия с TestNet, и поэтому мы не используем клиент для этого процесса. Результат сохраняется в объекте signedTxn.

(e) Отправьте транзакцию в Algorand TestNet (строка 27).

Теперь подписанная транзакция signedTxn готова для отправки в качестве необработанной транзакции в Algorand TestNet. Эта транзакция отправляется функцией client.sendRawTransaction (). Получен объект, и в этом скрипте мы просто показываем идентификатор транзакции.

Вот результат.

Процесс завершен. После того, как Algorand TestNet завершит обработку этой транзакции, баланс обоих аккаунтов обновится.

Проверить баланс

Мы используем сценарий из шага 4, чтобы проверить баланс обеих учетных записей.

Перевод сделан. Мы видим, что account_2 теперь имеет 10 алгоритмов, а account_1 на 10 алгоритмов меньше комиссии (1000 microAlgos).

Наблюдайте за обеими учетными записями в Algorand Explorer

Мы можем использовать Algorand Explorer (шаг 3), чтобы снова проверить две учетные записи.

Для account_1 мы также видим транзакцию, которую мы только что сделали, отправив 10 алгоритмов путем перекрестной ссылки на TxID (3KK…).

А в account_2 мы видим баланс с той же информацией о транзакции.

На этом наша демонстрация завершена.

Резюме

Мы продемонстрировали, как использовать JavaScript SDK для взаимодействия с Algorand TestNet. Мы просто показываем, как создаются учетные записи и как алгоритмы передаются между учетными записями. С помощью этого шаблона мы можем выполнять более сложные транзакции, такие как создание токенов (Algorand Standard Asset, ASA). Надеюсь, этого хватит для тех, кто плохо знаком с этой платформой и готов создать что-то интересное в Algorand.