Запуск смарт-контракта и создание аккаунта EOS

avatar igorart 1 year ago

В этой статье мы запустим наш первый смарт-контракт.

EOSIO поставляется с примерами контрактов, которые могут быть загружены и запущены с целью тестирования. Одним из таких  контрактов является eosio.bios. Не будем вдаваться в подробности, что он делает. На данном этапе нас это не особо интересует. Наша задача - научиться запускать контракт. В этой статье мы создали кошелек при помощи cleos и ипортировали в него ключи. Сейчас запустим контракт. При запуске контракта у меня возникал ряд ошибок, поэтому я сразу буду писать, как их избежать.

Контракт eosio.bios можно найти в папке  /eosio.bios. Откроем любым текстовым редактором файл eosio.bios.cpp (поищите в системе) и изменим строку #include <eosio.bios/eosio.bios.hpp>  на #include <eosio.bios.hpp> . Нажимаем Save(сохраняем).

Есть обязательный и очень важный шаг. Как я уже упоминал выше,  в одной из статей  мы импортировали два ключа при помощи  cleos. Для запуска eosio.bios нам необходимо импортировать еще один private ключ. Находится он в файле config.ini, который сформировался при запуске нашего блокчейна.

  1. Откроем данный файл коммандой:
    sudo nano ~/.local/share/eosio/nodeos/config/config.ini
  2. Скопируем private ключ в любой файл и сохраняем, он нам понадобится.
  3. Нажимаем "ctrl+x" затем "n" и "Enter", чтобы выйти без сохранения
  4. Разблокируем кошелек
    cleos wallet unlock 
  5. Импортируем ранее полученный ключ в кошелек
    вместо <eosio_account_private_key> - подставляем ранее сохраненный ключ
    cleos wallet import <eosio_account_private_key> #eosio.bios private key
  6. В момент запуска контракта и создания аккаунта блокчейн должен быть у вас запущен. Поэтому, не закрывая данный терминал, открываем новый терминал и запускаем ноды (блокчейн).
    nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --contracts-console
  7. Переходим в первый терминал(не закрывая запущенного с нодами!)и вводим комманду перехода в директорию
    cd ~/eos/contracts/eosio.bios/
    Запускаем команду:
    eosiocpp -o eosio.bios.wast eosio.bios.cpp
    Запускаем контракт.
    cleos set contract eosio ~/eos/contracts/eosio.bios eosio.bios.wast eosio.bios.abi
    Результатом выполнения будет транзакция:
  8.  Создаем аккаунт:
    вместо Owner_Public_Key и Active_Public_Key подставляем значения из статьи, где мы их импортировали в кошелек.
    cleos create account eosio eoswitnessac Owner_Public_Key Active_Public_Key
    cleos get accounts Owner_Public_Key 
    Результат:
  9. Вас не должно смущать сообщение warning: transaction executed locally, but may not be confirmed by the network yet
    Так как мы работает в тестовой сети, транзакция выполняется локально.

    Резюме
    Мы запустили наш первый смарт-контракт.

    Для всех, кому инетерсен EOS присоединяйтесь в эту группу в телеграме.

    Полный список статей вы можете найти тут.