January 12, 2021

SKALE — сеть, призванная популяризировать Ethereum

RU1

Сеть SKALE была задумана и создавалась с целью популяризации криптовалюты Ethereum, создания условий для доступности этой криптовалюты как минимум, одному миллиарду людей, живущих на планете.

Skale предоставит пользователям децентрализованную систему, в которой каждое приложение Ethereum dApp будет работать на собственном, полностью интегрированном в Ethereum блокчейне.

Чтобы привлечь заинтересованных пользователей, SKALE запускает программу Ambassador Gamez. Цель этой программы создать в отдельных странах сообщества SKALE, и обучить их всем тонкостям программы на их родном языке.

Проект состоит из трех миссий, которые простыми словами состоят в следующем:

  1. Под руководством старших товарищей научиться самому.
  2. Научить своих друзей, партнеров.
  3. Выйти на профессиональный уровень и начать создавать мультимедийный контент, способный привлечь пользователей в сеть SKALE.

Итогом успешного прохождения всех трех миссий будет собеседование и регистрация в команде Skale Network. При успешном прохождении трех миссий пользователь получит также денежное вознаграждение.

Урок 1: знакомство с терминологией

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

SKALE Token

Токен SKALE представляет собой криптовалюту, близкую к эфириуму, которая торгуется на биржах BINANCE, HUOBI, UNISWAP, Neironix под аббревиатурой SKL.

API

API — application programming interface. Или, если перевести на русский язык, это интерфейс прикладного программирования, то есть комплекс процедур, задач, функций, благодаря которым одна компьютерная программа взаимодействует с другой.

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

Смарт-контракты

Смарт-контракты — один из первых и важнейших терминов, связанных с Ethereum и SKALE. Они описывают, какие сведения должны храниться в цепочке блоков, какие операции должны выполняться над ними.

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

  • имя получателя перевода;
  • цифровая подпись;
  • сумма отправляемой валюты;
  • газовое ограничение на перевод;
  • цена одной единицы газа.

Код контракта выполняется на компьютере, или виртуальной машиной EVM-майнера, который получает через некоторое время комиссию, в качестве вознаграждения за выполненную операцию.

DApp

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

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

Смарт-контракты пишутся на языке — Solidity и JavaScript.

Газ

Gas — абстрактная единица измерения, которой оценивается выполнение транзакции. Фактически, газ — это плата за работу майнера.

Web3

Web3.js — это сборник библиотек, посредством которых выполняется взаимодействие с узлом Ethereum, создаваемым через протоколы HTTP, IPC или WebSocket.

Solidity

Solidity — язык программирования, который возник как неотъемлемая и составная часть экосферы эфириума. Он опирается на JavaScript, Python. Язык программирования Solidity применяется в написании смарт-контрактов.

Урок 2: что делать новичку?

На начальном этапе предстоит войти в систему SKALE и привязать к ней кошельки ethereum.

Сначала перейти на страницу https://skale.network/docs/developers/getting-started и кликнуть кнопку «новичку».

На скрине эта кнопка выделена красным. Здесь предусматриваются два варианта доступа: для тех, у кого уже настроены цепочки SKALE, и для тех, у кого их нет. Учитывая, что пользователь беспробудный новичок, сначала рассмотрим первый вариант, то есть кликнем кнопку «Запросить сеть SKALE».

На следующей вкладке кликните «продолжить» (Continue). И в выпадающих полях ввода введите:

  • адрес электронной почты;
  • имя для обращения;
  • вебсайт вашего проекта (если применимо).

Последний вопрос, который задает система, как вы узнали о SKALE. Введите свой вариант ответа. Затем кликните кнопку submit (подтвердить, или комбинацию клавиш CTPL + Enter). Этим вы завершаете первый этап регистрации и вхождения в систему. Открывшаяся страница пригласит вас начать создание децентрализованных приложений ethereum.

Урок 3: как начать сборку?

На первом этапе сборки масштабируются смарт-контракты. Это компьютерный алгоритм, посредством которого передается информация. Умные контракты обеспечивают манипулирование информацией в цепочке блоков.

Но сначала предстоит создать кошелек и интегрировать его в приложение d‘APP. Для этого необходимо иметь аккаунт в одном из кошельков. Чтобы подключить, например, управление кошельком Bitski к SKALE, предстоит предоставить провайдеру Web3 кошелька конечную точку SKALE Chain.

Эта же конечная точка потребуется для получения тестовых эфиров. После клика на кнопку «получить тестовый Eth» откроется вкладка, которая попросит ввести конечную точку SKALE. Для этого необходимо создать, или открыть (если есть) кошелек ethereum. К примеру, это будет кошелек на Bitski.com. Для его регистрации необходимо ввести адрес электронной почты и создать пароль.

Чтобы убедиться в том, что пользователь не робот, система попросит ввести номер телефона и пришлет на него код, который надо подтвердить. И только получив доступ к аккаунту, можно создать конечную точку (andpoint) SKALE. Подключение выполняется посредством кода:

const bitski = new Bitski("[YOUR-CLIENT-ID]", "[YOUR-REDIRECT-URL]");
const network = {
  rpcUrl: "[YOUR_SKALE_CHAIN_ENDPOINT]",
  chainId: 1
}
const provider = bitski.getProvider({ network });
let web3 = new Web3(provider);

Еще один кошелек, который можно привязать к SKALE — это Portis. Перейти на него можно по ссылке https://wallet.portis.io/. Здесь при регистрации также вводится адрес электронной почты и пароль с подтверждением. В этом кошельке все запросы отправляются по протоколу HTTPS. Таким же образом будет передаваться в кошелек Portis конечная точка цепочки SKALE.

const mySKALEChain = {
  nodeUrl: "[YOUR_HTTPS_SKALE_CHAIN_ENDPOINT]",
  chainId: 1,
  nodeProtocol: 'rpc',
};
const portis = new Portis("[YOUR_PORTIS_ID]", mySKALEChain);
let web3 = new Web3(portis.provider);

Урок 4: децентрализованное хранилище и другие сервисы, необходимые в работе

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

  1. Сначала необходимо зарегистрироваться в системе.
  2. При регистрации укажите имя (логин), адрес электронной почты, пароль.
  3. Регистрацию необходимо подтвердить через почту. Для этого зайдите в почтовый ящик и найдите письмо от сервиса https://www.npmjs.com/. Если письмо не окажется во входящих, проверяйте папки «Вся почта» или спам. Файлы Skale вы найдете на аккаунте SKALE Filestorage.js.

Что такое GitHub и для чего он нужен?

GitHub — это еще одно хранилище файлов. Этот сервис интегрирован в систему SKALE. Это портал-концентратор для программистов. На нем уже зарегистрировано 56 млн человек. На портале имеются: управление API, хранилище файлов; торговая площадка, чат для общения и другие сервисы. Здесь пользователи найдут множество документов, кодов, файлов, которые окажутся полезными в работе.

На портале имеется приложение, которое работает в компьютере независимо от браузера. Поисковый раздел облегчит нахождение требуемого контента. Разработчики SKALE используют GitHub для хранения своих файлов, которые можно загружать, скачивать, удалять, хранить, делиться с другими пользователями.

Чтобы зарегистрироваться на портале, необходимо нажать ссылку «Регистрация» в правом верхнем углу.

  1. Далее следует заполнить все поля. Имя пользователя, возможно окажется повторенным, поэтому к имени можно добавить цифру, или дополнительное слово, изменить его, чтобы оно оказалось немного уникальным.
  2. Также обязательно следует указать электронный почтовый адрес, пароль, из 8 и более символов, в котором сочетались бы буквы, цифры и другие знаки.
  3. Перед тем как создать аккаунт, предстоит решить каптчу.
  4. После клика по кнопке «Создать аккаунт» на электронную почту придет письмо с требованием подтвердить регистрацию.

Денежный перевод

Портал https://codesandbox.io/, выступающий в качестве агента для обмена сообщениями между цепочками, может использоваться с целью координации токенов ETH между Ethereum и SKALE. Это портал по созданию сайтов, вебприложений, написанию кодов.

Чтобы отправлять ETH из собственного кошелька на депозит, необходимо использовать смарт-контракт DepositBox на Ethereum. Этот смарт-контракт развернут в в testnet на странице https://rinkeby.etherscan.io/. Чтобы получить ABI, соответствующие сети SKALE, необходимо связаться ч менеджером своего аккаунта.

Урок 5: как развернуть смарт-контракты

Код SKALE развертывается аналогично коду Ethereum. Создав свой образец кода, пользователь может им поделиться на сайте discord.com. На этом сайте создано сообщество SKALE, где пользователи общаются друг с другом, обмениваются скриптами, кодами и другими документами, общаются, и даже играют. На сайте имеется функция демонстрация экрана, позволяющая проводить обучающие видеоконференции, занятия.

  1. Чтобы зарегистрироваться на этом портале, необходимо ввести адрес емейл, создать ник и пароль.
  2. Регистрация подтверждается через телефон. На номер пользователя приходит смс с кодом, который необходимо ввести в отдельное поле редактора.
  3. Только после подтверждения по смс сайт откроет все возможности для полноценной работы и общения с другими участниками сообщества SKALE.

Здесь публикуются сценарии умных контрактов, которыми вы можете воспользоваться, взяв их за образец, а также можете сами публиковать свои сценарии развертывания.

Трюффельный сценарий

Сценарий (script) Truffle — один из самых популярных сценариев развертывания смартконтрактов как в Ethereum, так и в SKALE. Имея в наличии файл конфигурации truffle.js, пользователь может использовать его для развертывания смарт-контрактов в SKALE, обновив содержимое.

Для развертывания смарт-контрактов на SKALE транзакция должна иметь подпись.

Так выглядит трюффельный сценарий, согласно которому можно развернуть смарт-контракты SKALE

/*
 * This truffle script will deploy your smart contracts to your SKALE Chain.
 *
 *  @param {String} privateKey - Provide your wallet private key.
 *  @param {String} provider - Provide your SKALE endpoint address.
 */

let HDWalletProvider = require("truffle-hdwallet-provider");

//https://skale.network/developers/ for SKALE documentation
//Provide your wallet private key
let privateKey = "[YOUR_PRIVATE_KEY]";

//Provide your SKALE endpoint address
let skale = "[YOUR_SKALE_CHAIN_ENDPOINT]";

module.exports = {
    networks: {
        ganache: {
            host: "127.0.0.1",
            port: 8545,
            network_id: "*"
        },
        skale: {
            provider: () => new HDWalletProvider(privateKey, skale),
            gasPrice: 0,
            network_id: "*"
        }
    }
}

Скрипт NodeJS

Этот сценарий совместим с браузером Chrome. По сценарию NodeJS можно записать код JavaScript, и он будет встраиваться не в браузер, а в операционную систему компьютера.

Смартконтракты можно развернуть в сценарии NodeJS и web3.js.

Ремикс

Remix IDE — это интегрированная среда разработки, которая используется для написания, компиляции и отладки кода, написанного на языке Solidity. Это язык программирования для написания умных контрактов. На него повлияли популярные языки, такие как C ++, Python и JavaScript. IDE представляет собой приложение с комплектом инструментов, которыми программисты смогут выполнять разнообразные задачи по созданию программного обеспечения.

Вхождение в систему и создание узла

Чтобы оказаться добавленным в систему в качестве узла, его должен запустить представитель (демон) SKALE, который оценит насколько узел перспективен, проверит, сетевое оборудование на соответствие требованиям. Если новый узел пройдет проверку, тогда демон разрешит ему послать запрос на присоединение к сети в управление SKALE (SKALE Manager). Это тоже программное приложение, представляющее собой серию смарт контрактов.

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

Узел может быть добавлен в систему как полный или дробный. Полные узлы имеют 4 ресурса и встраиваются в одну боковую эластичную сеть. Дробные узлы встраиваются в несколько цепочек. После создания узла ему назначается группа таких же одноранговых узлов. Участники сети регулярно проверяют время простоя, задержки узла и в определенный период времени отправляют пакетные показатели SKALE Manager. Один раз для каждого сетевого периода. Это необходимо для начисления вознаграждения и своевременного выявления разрушенного узла.

Служба мониторинга узлов (NMS) устанавливается и запускается на каждом узле SKALE и упрощает контроль за производительностью каждого из равноправных узлов.

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

Показатели усредняются и передаются менеджеру SKALE, который использует их с целью определения суммы выплаты выплату каждому узлу.

При выходе узла из сети его владелец должен заявить о выходе и дождаться периода завершения. Только после того, как узел станет неактивным в течение заданного времени, можно снять свою ставку.

Если владелец узла покидает сеть, не дождавшись завершения периода, его узел объявляют мертвым, а сам владелец лишается права на вознаграждение.

Официальный сайт платформы: https://skale.network