Вы здесь

Как создать дапп-портфель, не потратив ни копейки

Используйте тестовые сети и бесплатные веб-сервисы для развертывания децентрализованных приложений на платформе Ethereum.

Как создать дапп-портфель, не потратив ни копейки

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

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

В этой статье я расскажу вам, как вы можете создать, развернуть и поддерживать несколько даппов на платформе Ethereum, не платя ни копейки за хостинг и ни одной Wei в основной сети Ethereum (mainnet).

Использование тестовых сетей

Тестовые сети (testnets) - это открытые блокчейн-сети, которые являются отражением рабочей среды mainnet.
Они позволяют core-разработчикам тестировать новые функции, такие как шардинг и механизмы консенсуса, прежде чем они будут развернуты в mainnet. Они также позволяют Dapp-разработчикам тестировать приложения перед развертыванием их неизменяемого кода в mainnet.

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

Тестовая сеть Ropsten больше остальных похожа на Ethereum mainnet. MetaMask, расширение для Chrome, по умолчанию поддерживает тестовые сети Ropsten, Kovan, Rinkeby и Goerli.

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

Развертывание смарт-контрактов

Здесь предполагается, что вы знакомы с набором инструментов Truffle (т.н. Truffle Suite). Если нет, не переживайте. Существует множество пошаговых руководств и пособий, которые вы можете использовать, чтобы узнать о развертывании даппов с помощью Truffle Suite.

После того, как вы получили немного эфира в желаемой тестовой сети, вам нужен узел Ethereum, с которого можно развернуть свои контракты. Для настройки узлов требуется время и технические знания...

К счастью, существуют специальные сервисы для создания блокчейн-инфраструктуры, которые устраняют все сложности с настройкой узла. Мой фаворит – это Infura.

Заведите аккаунт на Infura и создайте новый проект. Перейдите во вкладку «Настройки» (settings), где вы сможете выбрать, с какой сетью вы хотите взаимодействовать.

1_mwZTW7zX9IXgrrbTOSu8qw.png

Рисунок 1: Страница с настройками проекта на Infura

Запишите конечную точку HTTPS для сети, в которой требуется выполнить развертывание.

Для примера я возьму файл truffle-config.js и выполню настройки для его развертывания в тестовой сети Kovan.

Убедитесь, что в репозитории имеются следующие пакеты, которые можно установить с помощью npm:

"truffle-hdwallet-provider": "1.0.4",
"truffle-hdwallet-provider-privkey": "1.0.3",
"web3": "1.0.0-beta.46"

Примечание: Здесь я использую web3 версии 1.0.0. Для успешного развертывания необходимо использовать эту или более позднюю версию.

Затем, чтобы добавить новую сеть в объект Networks, измените файл truffle-config.js. Ниже показано, как выглядит результат этого изменения.

const HDWalletProvider = require('truffle-hdwallet-provider-privkey');
const privateKey = "private-key-goes-here";
const endpointUrl = "endpoint-goes-here";
module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "5777",
    },
    kovan: {
      provider: function() {
        return new HDWalletProvider(
          //private keys array
          [privateKey],
          //url to ethereum node
          endpointUrl
        )
      },
      gas: 5000000,
      gasPrice: 25000000000,
      network_id: 42
    }
  }
}

Рисунок 2: truffle-config.js

Теперь проект настроен для переноса смарт-контрактов в тестовую сеть Kovan с помощью следующей команды:

truffle migrate --network kovan

Бесплатные веб-сервисы

Теперь, когда ваши смарт-контракты находятся в общедоступной (тестовой) сети, вам нужно выложить пользовательский интерфейс в интернет, чтобы пользователи могли «поиграть» с вашим приложением.

Есть несколько вариантов. Вы можете запустить веб-сервер из дома, что потребует времени и денег, или же вы можете воспользоваться ведущими в отрасли хостинг-сервисами, такими как DigitalOcean или AWS, которые взимают ежемесячную плату (хотя и небольшую для пакетов начального уровня).

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

Такие сервисы существуют! Я приведу два из них – Heroku и GitHub Pages.

Heroku

«Heroku – это «платформа как услуга» (PaaS), которая позволяет разработчикам полностью создавать, запускать и управлять приложениями в облаке». - Heroku.com

Сервис Heroku имеет отличную поддержку для множества технологий и особенно хорош в развертывании узловых приложений. Если предположить, что вы используете Truffle Suite для вашего проекта, у вас не будет проблем с развертыванием Heroku.

Чтобы выполнить развертывание в Heroku с помощью командной строки, сначала необходимо перейти на страницу загрузок Heroku и установить интерфейс командной строки Heroku (CLI).

Зайдите на Heroku.com, создайте учетную запись и новое приложение. После того, как вы выполнили базовые шаги, перейдите во вкладку «Настройки» (Settings) и найдите свой «Heroku git URL». На рисунке 3 показано, где его найти.

1_tlp3Bwz_zm7UW6QO5HdXcA.png

Рисунок 3: Пример вкладки настроек приложения Heroku

Откройте терминал и перейдите в корневую папку проекта. Предполагая, что для управления версиями вы уже применяете команды Git, используйте URL-адрес для репозитория Heroku Git, чтобы добавить новый удаленный репозиторий (где [heroku_git_url] – это URL-адрес из вашего приложения Heroku):

git remote add heroku [heroku_git_url]

Затем, используя недавно установленный интерфейс командной строки Heroku, войдите в свою учетную запись:

heroku login

Для подтверждения должен открыться ваш браузер. После успешного входа в систему, все, что осталось сделать, это выполнить развертывание! Запустите следующую команду, чтобы переместить главную ветвь вашего текущего исходного репозитория в главную ветвь репозитория heroku:

git push heroku master

Подождите завершения операции и вуаля: ваш дапп теперь в прямом эфире!

Heroku присваивает URL-адрес в зависимости от имени вашего проекта. Чтобы открыть его, вернитесь на Heroku.com и кликните на кнопку «Открыть приложение» (Open app), показанную на рисунке 4.

1_1oIcL_47xl_imgrQz-yHuQ.png

Рисунок 4: Общий вид приложения Heroku

Ваше приложение теперь доступно на Heroku!

GitHub Pages

«GitHub Pages – это статическая служба хостинга сайтов, которая принимает файлы HTML, CSS и JavaScript прямо из репозитория на GitHub» — Github.com

Каждый, кто использовал Git, знает о GitHub. Это самая большая платформа управления версиями с открытым исходным кодом в мире и используется множеством разработчиков каждый день.

GitHub Pages – это сервис, который позволяет размещать статические веб-сайты непосредственно из репозитория GitHub. Это означает, что до тех пор, пока ваше приложение не выполняет какие-либо вычисления на стороне сервера (например, PHP), вам дают добро!

Если вы еще не используете GitHub для своего РЕПО, я настоятельно рекомендую вам воспользоваться этим. Предположим, что вы и ваш проект используете Truffle Suite, тогда перейдите в командную строку и корневой каталог вашего проекта.

Установите пакет gh-pages , запустив следующую команду:

npm install --save gh-pages

Далее вам нужно добавить несколько деталей к вашему файлу package.json. Откройте файл пакета в своем текстовом редакторе.

Внутри основного объекта добавьте следующее, где [user-name] – это ваше имя пользователя на GitHub и [repo-name] – это название вашего РЕПО на GitHub:

"homepage": "https://[user-name].github.io/[repo-name]/",

Добавьте следующие параметры в раздел scripts файла package.json:

"predeploy": "npm run build",
"deploy": "gh-pages -d build",

Все, что осталось сделать – это запустить npm run deploy, чтобы развернуть приложение на GitHub Pages.

Ваш дапп теперь на GitHub Pages!

Заключение

Создание портфолио даппов не должно ничего стоить.

С помощью Heroku, GitHub Pages и Ethereum testnets вы можете сделать свои проекты общедоступными для людей, если у них есть браузер, совместимый с web3, или расширение, такое как MetaMask.

Категория: 
Tutorial
Голосов еще нет
285 / 0
Аватар пользователя Serg Demin
Публикацию добавил: Serg Demin
Дата публикации: ср, 04/29/2020 - 08:46

Что еще почитать:

Добавить комментарий