Взаимодействие с блокчейном Aptos
Last updated
Last updated
Aptos Blockchain использует для выполнения операций виртуальную машину (VM). В то время как многие блокчейны реализуют набор собственных операций, Aptos делегирует все операции Move, включая: создание учетной записи, перевод средств и публикацию модулей Move. Для поддержки этих операций блокчейн, построенный на базе Move, должен предоставлять собой среду (подобно операционной системе для компьютера или минимальному набору функций) для взаимодействия с блокчейном. В этом разделе мы обсудим эти функции, открытые через функции Aptos Framework script
.
Это руководство (совместно с ) откроет минимальный объем информации, необходимый для начала создания многофункциональных приложений на базе Aptos Blockchain. Примечание: Aptos Framework находится в стадии интенсивной разработки, и этот документ может быть устаревшим. Самый последний фреймворк можно найти в исходном коде .
Основные функции, предоставляемые пользователям в рамках Aptos Framework, включают:
Отправка и получение сетевой монеты Coin<TestCoin>
Создание новой учетной записи
Публикация нового модуля Move
Примечание: в этом документе предполагается, что читатели уже знакомы с процессом отправки транзакций, как описано в руководстве «».
Coin<TestCoin>
Coin<TestCoin>
требуется для оплаты комиссий за газ при отправке и выполнении транзакций.Coin<TestCoin>
можно получить с помощью Devnet Faucet. См. руководство в качестве примера.
Полезная информация по выполнению трансфера:
Полезная информация по созданию новой учетной записи:
Полезная информация для публикации нового модуля:
Важно отметить, что в байт-коде Move должен быть указан тот же адрес, что и в учетной записи отправителя, иначе транзакция будет отклонена. Например, при условии, что адрес учетной записи0xe110
, модуль Move необходимо будет обновить, так как такой модуль module 0xe110::Message
, module 0xbar::Message
будет отклонен. В качестве альтернативы можно использовать адрес с назначенным псевдонимом, такой как module HelloBlockchain::Message
, но псевдоним HelloBlockchain
необходимо будет обновить до 0xe110
в файле Move.toml
. Мы работаем с командой Move и планируем включить компилятор в наш интерфейс REST, чтобы решить эту проблему.
Это указывает виртуальной машине выполнить script
0x1::Coin::transfer
с аргументом типа 0x1::TestCoin::TestCoin. Здесь требуется тип, так как Coin — это наш стандартный модуль, который можно использовать для создания многих типов монет. См. руководство «» для примера создания пользовательской монеты. Первый аргумент — это адрес получателя 0x737b36c96926043794ed3a0b3eaaceaf
, а второй — сумма перевода 1000
. Адрес отправителя — это адрес учетной записи, которая отправила транзакцию, запрашивающую этот script
.
Это указывает виртуальной машине Move выполнить script
0x1::AptosAccount::create_account
. Первый аргумент — это адрес создаваемой учетной записи, а второй — прообраз ключа аутентификации (который упоминается в разделе «»). Для аутентификации с одной подписью это открытый ключ, скомбинированный с байтом0
(или pubkey_A | 0x00
). Это необходимо для предотвращения захвата адреса учетной записи. Выполнение этой инструкции проверяет, что последние 16 байтов ключа аутентификации совпадают с 16-байтовым адресом учетной записи. Мы активно работаем над улучшением этого API, чтобы он поддерживал прием 32-байтового адреса учетной записи, что устранило бы проблемы, связанные с захватом или манипулированием учетной записью.
Это указывает виртуальной машине опубликовать байт-код модуля под учетной записью отправителя. Полное руководство см. в модуле «».