Привет 👋, сегодня я собираюсь показать вам, как начать использовать язык Waves RIDE локально с помощью доски для серфинга. Но сначала…

Предположения

Я предполагаю, что вы не новичок в блокчейне Waves и никогда не писали dApps с помощью Waves RIDE.

Я также предполагаю, что вы использовали IDE RIDE в Интернете здесь

Итак, разобравшись с этим, давайте выясним ...

Что такое доска для серфинга

Согласно официальному репо Surfboard, это:

Surfboard - это интерфейс командной строки для работы с языком программирования RIDE. Surfboard позволяет компилировать сценарии RIDE, развертывать и запускать тесты.

Это означает, что Surfboard - это командная строка, которая позволяет использовать язык программирования Waves Ride на локальном компьютере. Довольно просто, правда? 😏

Давай серфим !! Установка доски для серфинга

Доска для серфинга - это пакет NPM. Когда этот факт установлен, чтобы начать работу с Surfboard, на вашем компьютере должны быть установлены Node и NPM. Чтобы убедиться, что на вашем компьютере установлен Node, выполните следующую команду:

node -v

если приведенная выше команда возвращает номер версии, то ура Node установлен, и вы можете приступить к установке Surfboard, запустив:

npm install -g @waves/surfboard

Чтобы также проверить установку выше, запустите:

surfboard -v

это должно вернуть что-то подобное (если у вас Mac):

@waves/surfboard/1.10.0 darwin-x64 node-v12.13.0

Чтобы увидеть команды, предоставляемые Surfboard, запустите:

surfboard -h

Вышеупомянутое выведет что-то в форме:

Surfboard =========
VERSION
  @waves/surfboard/1.10.0 darwin-x64 node-v12.13.0
USAGE
  $ surfboard [COMMAND]
COMMANDS
  compile  compile ride file
  config   change config
  help     display help for surfboard
  init     initialize new Ride project
  repl     run ride repl
  run      run js script with with blockchain context
  test     run test

Создание нового проекта езды 🏄

Я почти уверен, что вы обратили внимание на команду init, как показано выше. Эта команда используется для создания нового проекта Ride. Давай исследуем это, ладно? 😅

Итак, обо всем по порядку, перейдите в папку, в которой вы хотите разместить свои проекты Ride. Затем выполните следующую команду:

Приведенная выше команда выведет:

Если все пойдет по плану 👼, вы увидите результат, указанный выше. Давайте проанализируем это:

Изощренная доска для серфинга при создании нового проекта Ride создаст для вас новый кошелек Waves на узле Testnet блокчейна Waves.

Анатомия доски для серфинга, созданной Ride Project

Излишне говорить, что Surfboard создала для нас несколько файлов и папок, давайте взглянем на них ...

Совет от профессионалов 👼: если вы используете VS Code, вам необходимы следующие расширения:





Объяснение структуры 💁

Surfboard создала для нас 3 папки и один файл конфигурации, когда мы запускали init. Эти

  1. ride / - будет содержать все наши сценарии поездок (смарт-контракты / dApps).
  2. test / - будет содержать все наши файлы тестов (которые обычно являются файлами jest).
  3. scripts / - будет содержать скрипты, используемые для развертывания наших смарт-контрактов или dApps.
  4. surfboard.config.json - это файл конфигурации для нашего проекта Ride.

surfboard.config.json

Когда вы откроете файл surfboard.config.json, вы увидите базовую конфигурацию вашего проекта RIDE. Я хотел бы указать вам на записи envs (environment), которые являются : custom и testnet. Эти записи предназначены для установки среды развертывания по умолчанию для ваших dApps. Однако, чтобы использовать настройку по умолчанию, которая является настраиваемой, вам необходимо настроить локальный узел: Илья Смагин проделал отличную работу, пройдя процесс установки с использованием образов Docker. Смотрите это здесь. Однако для этой статьи мы будем развертывать в тестовой сети (что, я думаю, мы довольно используем при разработке на ide.wavesplatform.com)

Развертывание в тестовой сети

Вы заметили, что у нас есть wallet.ride в каталоге ride /. Давайте развернем это приложение в кошельке, созданном для нас Surfboard. Для этого запустите:

surfboard run wallet.deploy.js --env=testnet --variables dappSeed="dApp seed"

Когда вы запустите указанную выше команду, вы получите сообщение об ошибке (которое ожидается), потому что мы знаем, что для развертывания dApp нам потребуется финансирование кошелька, для которого будет создан сценарий 😏. Итак, приступим к крану Waves. Скопируйте свой адрес в dApp и отправляйтесь туда за волнами !!

Повторно запустите команду, и вы получите идентификатор транзакции в качестве вывода. В моем случае я получил:

Вы можете увидеть транзакцию для развернутого dApp здесь



Быстрый взгляд на wallet.deploy.js

Выше показано содержимое wallet.deploy.js. Что нас действительно беспокоит, так это ...

const dappSeed = env.dappSeed

… Из этой строки выше мы могли видеть, что dappSeed назначается из объекта env, который устанавливается из

--variables dappSeed="dApp seed"

в команде развертывания, которую мы выполнили…

surfboard run wallet.deploy.js --env=testnet --variables dappSeed="dApp seed"

…Надеюсь это имеет смысл?

И мы закончили ...

Поздравления 🎊. Вы успешно:

  1. Установлен интерфейс командной строки для серфинга.
  2. Создал новый проект Ride из Surfboard init
  3. Получил обзор анатомии доски для серфинга, созданной в проекте Ride.
  4. Развернул пример dApp в тестовой сети

Слава вам за выполнение этой части 1. Часть 2 будет более глубокой, поскольку мы углубимся в понимание файла wallet.deploy.js, используемого при развертывании нашего dApp.

Большое спасибо Илье Смагину (архитектор RIDE) за то, что он нашел время, чтобы прочитать эту статью.

P.S: Новичок в поездке?

Посмотрите Awesome Waves Ride от сообщества Waves Africa.



Счастливого серфинга 🏄 🏄