Настройка, создание и развертывание локальной программы Solana в Rust

Rust - это наиболее распространенный язык программирования для написания программ Solana . Это руководство для быстрого запуска продемонстрирует, как быстро установить, собрать и установить вашу программу на основе Rust Solana в блокчейне.

Do you have the Solana CLI installed?

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

Чему вы научитесь #

  • как установить язык Rust локально
  • как инициализировать новую программу Solana Rust
  • как написать базовую программу Solana на Rust
  • как создать и установить свою программу Rust

Установка Rust и Cargo #

Чтобы иметь возможность компилировать программы Solana на основе Rust, установите язык Rust и Cargo (менеджер пакетов Rust) с помощью Rustup:

 

Запустите валидатор на локальном хосте #

Solana CLI поставляется со встроенным валидатором тестов. Этот инструмент командной строки позволит вам запустить полный кластер блокчейна на вашей машине .

solana-test-validator
PRO TIP

Запустите тест Solana в новом/отдельном окне терминала , которое останется открытым. Эта программа командной строки должна оставаться запущенной, чтобы ваш валидатор localhost оставался в режиме онлайн и был готов к работе.

Настройте Solana CLI на использование валидатора localhost для всех будущих команд терминала и развертывания программ Solana:

solana config set --url localhost

Создайте новую библиотеку Rust с помощью Cargo #

Программы Solana, написанные на Rust, представляют собой библиотеки, которые компилируются в байткод BPF и сохраняются в формате .so.

Инициализируйте новую библиотеку Rust с именем hello_world через командную строку Cargo:

 

Добавьте solana-program в вашу новую библиотеку Rust:

 
Pro Tip

Настоятельно рекомендуется держать вашу solana-program и другие Solana Rust зависимостей в соответствии с установленной версией Solana CLI. Например, если вы используете Solana CLI 1.17.17, вы можете запускать:

 

Это гарантирует, что ваш ящик использует только 1.17.17 и ничего больше. Если у вас возникли проблемы с совместимостью зависимостей Solana, загляните в Solana Stack Exchange

Откройте файл Cargo.toml и добавьте эти необходимые параметры конфигурации библиотеки Rust, изменив при необходимости имя проекта:

 

Создайте свою первую программу Solana #

Код программы Solana на основе Rust будет отображаться в вашем файле src/lib.rs. Внутри src/lib.rs вы сможете импортировать ваш ящик Rust и определить логику. Откройте файл src/lib.rs в вашем любимом редакторе.

В верхней части lib.rs, импортируйте ящик solana-program и принесите нам необходимые элементы в локальное пространство имен:

use solana_program::{
    account_info::AccountInfo,
    entrypoint,
    entrypoint::ProgramResult,
    pubkey::Pubkey,
    msg,
};

Каждая программа Solana должна определить entrypoint, который рассказывает Solana время выполнения, где начать выполнение кода onchain. Точка входа вашей программы должна предоставлять публичную функцию с именем process_instruction:

// declare and export the program's entrypoint
entrypoint!(process_instruction);
 
// program entrypoint's implementation
pub fn process_instruction(
    program_id: &Pubkey,
    accounts: &[AccountInfo],
    instruction_data: &[u8]
) -> ProgramResult {
    // log a message to the blockchain
    msg!("Hello, world!");
 
    // gracefully exit the program
    Ok(())
}

Каждая программа в цепи должна вернуть Ok result enum со значением (). Это говорит среде выполнения Solana, что ваша программа выполнена успешно и без ошибок.

Приведенная выше программа просто отправит сообщение «Hello, world!» в блокчейн-кластер, а затем изящно завершит работу с помощью Ok(()).

Создайте программу Rust #

В окне терминала вы можете собрать программу Solana Rust, запустив ее в корне проекта (т.е. в директории с файлом Cargo.toml):

 
Info

После каждой сборки программы Solana приведенная выше команда будет выводить путь сборки файла .so вашей скомпилированной программы и ключевой файл по умолчанию который будет использоваться для адреса программы. cargo build-bpf устанавливает набор инструментов из установленных в данный момент инструментов solana CLI. Вам может понадобиться обновить эти инструменты, если вы столкнетесь с несовместимостью версий.

Развертывание программы Solana #

Используя Solana CLI, вы можете развернуть свою программу на выбранном в данный момент кластере:

 

После того как ваша программа Solana будет развернута (и транзакция finalized), приведенная выше команда выведет публичный адрес вашей программы (он же «идентификатор программы»).

 

Поздравляем! #

Вы успешно настроили, собрали и развернули программу Solana на языке Rust.

Check your wallet balance!

Проверьте баланс вашего кошелька Solana снова после установки. Узнайте, сколько будет стоить развертывание вашей простой программы?

Следующие шаги #

По ссылкам ниже вы можете узнать больше о написании программ Solana на основе Rust:

  • Обзор программ, написанных на Solana
  • Узнайте больше о разработке программ Solana с Rust
  • Отладка программ в цепочке