Виртуальный блокчейн в памяти и интерфейс командной строки

Как мы используем Ganache и Ganache-CLI

Shyft Network - это блокчейн-платформа, специализирующаяся на технологиях KYC и AML, основанная на сети Ethereum с открытым исходным кодом. Платформа блокчейна Shyft стандартизирует процесс проверки KYC и AML. С тех пор, как я начал работать с Shyft Network, я многому научился за такое короткое время: я начал знакомиться с Solidity; У меня была возможность узнать, как работает компилятор и как он отправляет данные OpCode в Ethereumjs-vm Shyft для выполнения; Я могу целый день вести технический блог обо всех многочисленных компонентах экосистемы Shyft.

Сосредоточение на Ganache и Ganache-CLI

Для тех, кто еще только начинает изучать блокчейн, я хотел бы просто быстро рассказать о том, что такое блокчейн, чем он не и почему он так разрушителен с технологической точки зрения.

Что такое блокчейн?
Блокчейн - это постоянно растущий реестр, в котором хранятся постоянные записи всех произошедших транзакций в безопасном, хронологическом и неизменяемом виде. Это похоже на децентрализованную базу данных, но это не база данных. В традиционной базе данных кто-то имеет полный контроль над данными. В традиционной базе данных доступ может быть предоставлен для разрешения полномочий на создание, чтение, обновление и удаление (CRUD). Однако нет центральных владельцев реестра блокчейна, и любая транзакция имеет несколько копий. У каждого в одноранговой сети есть копия этого реестра. Однако все в сети должны будут согласиться с тем, что новая транзакция действительна. В противном случае эта транзакция будет отклонена. Каждая транзакция записывается в файл, и когда файл заполняется, он создает новый файл или блок, и каждый блок криптографически связывается вместе с использованием хешированного значения всех транзакций в блоке в сочетании с хешем предыдущего блока. Блокчейн обеспечивает единый источник истины, который поддается проверке, защищен от несанкционированного доступа и неизменен.

Блокчейн не является:

  • Деловая сеть
  • Замена базам данных
  • Решение для обмена сообщениями
  • Предназначен для высокопроизводительных транзакций
  • Предназначен для замены обработки транзакций

Технология блокчейн предоставляет следующие преимущества:

  • Блокчейн позволяет нам присваивать ценность чему угодно и может быть передан через Интернет без посредников.
  • Цифровые активы или криптовалюта, например биткойн, лайткойн или эфир, и смарт-контракты
  • Может безопасно передать право собственности на актив и знать, что это нельзя изменить, но можно безопасно передать новому владельцу
  • Блокчейн распределен, поэтому нет единой точки отказа. В отличие от традиционной базы данных, где в случае сбоя владельца вся система может быть отключена.

Для разработки смарт-контрактов рекомендуется, хотя и не обязательно, использовать фреймворк.

Чтобы записывать транзакции в блокчейн, вам понадобится пара вещей. Во-первых, у вас должно быть установлено следующее: NPM и NodeJS. Мы выбрали фреймворк Truffle. Truffle использует компилятор Solidity, поэтому вы можете компилировать и развертывать смарт-контракты. Теперь, как разработчик, вы будете очень часто развертывать свои изменения, чтобы проверить правильность работы. Вы не можете развернуть текущие изменения смарт-контрактов в общедоступной цепочке блоков, потому что это стоит денег и требует от вас дождаться завершения транзакций развертывания и вызова. Помните, что все, что вы пишете в сети блокчейнов, является постоянным и не может быть удалено, поэтому нам нужна какая-то игровая площадка или песочница, чтобы поиграть. Именно здесь становится очень полезным Ganache и, в частности, Ganache-CLI. Инструкции по настройке среды разработки, включая Ganache-CLI, см. Здесь.

Ganache - это виртуальный блокчейн в памяти.

Можете считать его своим личным блокчейном. С его помощью вы можете компилировать и переносить, чтобы проверить изменения смарт-контракта. Как только вы закроете Ganache, все эти изменения исчезнут. Ganache заменяет старый TestRPC - фактически, Ganache WAS TestRPC.

Есть две версии Ганаша. Версия пользовательского интерфейса и версия командной строки. Чтобы мы могли по-настоящему погрузиться в работу с Ganache, я сосредоточусь на Ganache-CLI. Это интерфейс командной строки. Предполагая, что вы установили Ganache, вам нужно будет открыть окно терминала. Если вы используете Windows 10, я предлагаю вам установить и использовать Powershell. Если вы пользователь Linux или MacOS, что ж, у нас есть окно терминала.

Чтобы запустить Ganache-CLI, просто выполните в командной строке следующую команду «ganache-cli». Ваш экран должен выглядеть примерно так, как на изображении ниже:

Я хочу, чтобы вы знали о трех вещах:

  • Доступные счета
  • Частные ключи и
  • Порт прослушивания.

Ganache создаст в общей сложности 10 виртуальных учетных записей каждая, начиная с 100 Ether. Это очень полезно для разработчиков, потому что нам понадобятся виртуальные учетные записи для оплаты газа при выполнении транзакций в блокчейне. Наряду с 10 виртуальными учетными записями поставляется 10 закрытых ключей. Это ключи, используемые для подписи транзакции, записываемой в цепочку блоков. Затем идет номер порта, который слушает Ганаш. Номер порта по умолчанию - 8545. Truffle должен быть направлен на запись в этот порт для работы с Ganache.

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

Используя вызов функции Truffle getTransaction, детали каждой транзакции выглядят следующим образом.

Обратите внимание на несколько полей в деталях транзакции миграции смарт-контракта:

  • хэш
  • nonce
  • блок-хэш
  • номер блока
  • transactionindex
  • из
  • to
  • ценить
  • газ
  • gasPrice
  • Вход

Обратите внимание на хэш, который представляет собой хеш-значение номера транзакции для этого развертывания. Номер блока - это блок, на котором написана транзакция или смарт-контракт. Газ, который был заплачен за развертывание смарт-контракта; в данном случае это 1 эфир. Gasprice - это стоимость газа, за которую мы были готовы платить. Поле input - это значение хэша или подписи фактического содержимого данных смарт-контракта.

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

***
Shyft строит первую в мире современную, безопасную, многостороннюю доверительную сеть на основе цепочки блоков, которая обеспечивает передачу данных с подтверждением KYC / AML. Присоединяйтесь к нашему Telegram (https://t.me/shyftnetwork), подписывайтесь на нас в Twitter (https://twitter.com/shyftnetwork), GitHub (https://github.com/ShyftNetwork) и другие каналы, найденные на https://www.shyft.network.