Основная причина, по которой технология Blockchain заняла свое место среди лучших технологий, заключается в ее децентрализованном характере. Хотя основной целью блокчейна было ведение записей транзакций без центрального органа, автоматизация этого, Смарт-контракты были представлены. Но что после ? В этом руководстве по смарт-контракту Ethereum мы увидим, как использовать Трюфель Эфириум и Частная сеть Ethereum для выполнения смарт-контракта.
Заинтересованы в разработке Ethereum? Посмотрите это в прямом эфире .
В этом руководстве по смарт-контракту Ethereum мы рассмотрим следующие темы:
- Пример использования: смарт-контракты в процессе страхования
- Преимущества смарт-контрактов
- Установка предварительных требований
- Настройка Genesis Block
- Запуск частной сети Ethereum
- Создание учетной записи Ethereum
- Создание смарт-контракта Ethereum
- Выполнение смарт-контракта Ethereum
Пример использования: смарт-контракты в процессе страхования
«Отсутствие центрального органа» - это то, чему следует блокчейн, и именно поэтому были введены смарт-контракты. Но задумывались ли вы, как можно использовать смарт-контракт? Что ж, в этом разделе смарт-контракта Ethereum я объясню пример использования смарт-контракта в процессе страхования.
Давайте рассмотрим пример страхования от задержки рейса. Предположим, вы хотите сесть на рейс из источника A в пункт назначения C, но у вас нет прямого рейса. Итак, вы решили сесть на стыковочный рейс (через B). Теперь ваш маршрут будет из A в B, а затем из B в C, где B - аэропорт, в котором вы будете менять рейсы. К сожалению, у вас не так много времени между рейсами из A в B и из B в C. Так что, если по какой-либо причине рейс из A в B задерживается, вы пропустите рейс из B в C. осознайте это и, чтобы спастись от тяжелой потери, вы оформляете страхование задержки рейса.
Теперь, если ваш рейс из A в B задерживается (из-за чего вы опоздаете на рейс из B в C), вам будет выплачена страховая сумма. Обычно это работает, если ваш рейс задерживается, вы требуете страховку. Затем кто-то там проверит и утвердит страховку, и, наконец, вы получите свою страховую сумму. Но это довольно длительный процесс.
Как можно использовать смарт-контракты для улучшения процесса страхования?
Когда дело доходит до финансовых транзакций, особенно когда вы получаете деньги, «чем быстрее, тем лучше», не так ли? Итак, давайте посмотрим, как смарт-контракты могут ускорить процесс страхования. Смарт-контракты - это цифровые контракты, которые автоматически исполняются при выполнении определенных условий. Смарт-контракт может быть составлен для выплаты страховой суммы людям, выбравшим страховку от задержки рейса, если рейс задерживается. Таким образом, если рейс задерживается и эта задержка фиксируется системой, страховка выплачивается немедленно.
Привет! страховая сумма выплачивается за несколько секунд. Вот как простые и быстрые смарт-контракты делают процесс возможным.
Преимущества смарт-контрактов
В приведенном выше примере вы видели, как смарт-контракт может ускорить финансовые процессы. Помимо быстрых транзакций, смарт-контракты имеют еще несколько преимуществ. Здесь я перечисляю некоторые другие преимущества использования смарт-контракта:
- Автоматический: Все этапы процесса со смарт-контрактами происходят автоматически.
- Без промежуточных звеньев: Когда вы используете смарт-контракты, вам не нужно промежуточное звено для выполнения работы, поскольку все будет обрабатываться смарт-контрактами.
- Экономически эффективным: Использование смарт-контрактов сэкономит вам деньги на комиссионных за транзакции, взимаемых банками, и на комиссии за услуги посредников (если таковые имеются)
Теперь, когда мы знаем, как можно использовать смарт-контракты, чтобы сделать мир более быстрым, давайте перейдем к практической части этого руководства по смарт-контрактам Ethereum.
Установка предварительных требований
Для этого руководства по смарт-контракту Ethereum нам потребуются 5 важных приложений:
- NodeJS
- NPM
- Ethereum
- Трюфель
- Компилятор Solidity
Установка NodeJS
NodeJS - это платформа JavaScript, которая используется для создания серверных приложений. Поскольку мы используем частную сеть, NodeJS упростит создание сетевого приложения.
Чтобы установить Nodejs, выполните в терминале следующую команду:
$ sudo apt-get install nodejs
Установка NPM
NPM расшифровывается как Node Package Manager и используется для запуска приложений Nodejs.
Чтобы установить NPM, выполните в своем терминале следующую команду:
$ sudo apt-get install npm
Установка Ethereum
Ethereum это платформа распределенных вычислений с открытым исходным кодом и общедоступной цепочкой блоков для создания децентрализованных приложений.
Чтобы установить Ethereum, выполните в терминале следующую команду:
$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum
Установка Truffle
Truffle - это среда разработки, среда тестирования и конвейер активов для блокчейнов Ethereum.
Чтобы установить Truffle, выполните в своем терминале следующую команду:
$ npm install -g трюфель
Установка компилятора Solidity
Solidity - это язык программирования, используемый для написания смарт-контрактов. Чтобы запускать смарт-контракты в нашей системе, мы должны установить Solidity Compiler.
Рекурсия Фибоначчи в c ++
Чтобы установить компилятор Solidity, выполните в терминале следующую команду:
$ sudo npm install -g solc
Настройка Genesis Block
Блок Genesis - это начальная точка цепочки блоков, и нам нужен файл происхождения, чтобы запустить цепочку блоков. В этом разделе смарт-контракта Ethereum мы напишем файл Genesis и настроим его, чтобы мы могли запускать смарт-контракты.
Давайте сначала создадим новый каталог, а затем в этом каталоге мы создадим файл genesis
$ mkdir ethereum-network $ cd ethereum-network $ nano genesis.json
Теперь введите следующие строки в genesis.json файл:
{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'alloc': {}, 'сложность': '200' 'gasLimit': '99999999999999'}
Сохраните это и выйдите.
Запуск частной сети Ethereum
В этом руководстве по смарт-контракту Etheruem мы развернем смарт-контракт Ethereum в частной сети. Итак, чтобы запустить эту сеть, мы будем использовать следующую команду:
$ geth --datadir ./dataDir init ./genesis.json
$ geth --port 4321 --networkid 1234 --datadir =. / dataDir --rpc --rpcport 8543 --rpcaddr 127.0.0.1 --rpcapi 'eth, net, web3, personal, miner'
Прежде чем двигаться дальше, позвольте мне объяснить некоторые важные флаги, используемые в приведенной выше команде:
datadir: Каталог, в котором хранятся данные, относящиеся к цепочке блоков.
rpc: Включает сервер HTTP-RPC.
rpcport и rpcaddr используются для установки порта и адреса сети соответственно.
rpcapi: Позволяет нам взаимодействовать с сетью Ethereum с использованием различных API.
Подключение Geth к частной цепочке блоков Ethereum
Консоль Geth - это консоль, с которой мы можем взаимодействовать с приватным блокчейном Ethereum. Чтобы подключить Geth к частной цепочке блоков Ethereum, откройте новый терминал и выполните следующую команду:
$ geth attach http://127.0.0.1:8543
Теперь мы находимся в консоли Geth, где можем запускать команды для взаимодействия с Blockchain.
Создание учетной записи Ethereum
Для совершения любой транзакции нам необходим аккаунт. В этом разделе руководства по смарт-контракту Ethereum мы увидим, как создать новую учетную запись Ethereum из консоли Geth.
Следуя приведенным выше инструкциям, мы уже находимся в консоли Geth. Чтобы создать новую учетную запись, выполните следующую команду в консоли Geth:
> personal.newAccount ('исходная фраза')
Заменить 'исходная фраза»С паролем, который вы хотите установить для этой учетной записи.
Мы создали новую учетную запись, но в ней нет эфиров.. Нам нужноэфиры для совершения любых транзакций и получения эфировна наш счет мы начнем майнить эфиры. Чтобы начать майнинг, нам нужно сначала разблокировать аккаунт. Разблокируем аккаунт и приступим к майнингу.
> personal.unlockAccount (web3.eth.coinbase, 'seedphrase')> miner.start ()
Поскольку майнинг продолжается, некоторыеэфирыбудут зачислены на этот счет.
Заметка : Эти эфиры фиктивные эфиры и не имеют реальной ценности.
Проверить балансэфирыв аккаунте запустим следующую команду:
> web3.fromWei (eth.getBalance (eth.coinbase), 'эфир')
Когда вы запускаете эту команду через регулярные промежутки времени, вы увидите, чтоэфирыувеличиваются за счет добычи.
Чтобы остановить майнинг, выполните следующую команду:
> miner.stop ()
Создание смарт-контракта Ethereum
Создание проекта Truffle
Теперь, когда у нас есть готовый частный блокчейн, мы увидим, как создать смарт-контракт Ethereum с помощью Truffle. В этом уроке мы создадим простой смарт-контракт Ethereum «Hello World».
Для начала давайте сначала создадим новый каталог для хранения проекта Truffle. А затем в этом каталоге мы создадим новый проект Truffle. Откройте новый терминал и выполните следующие команды:
$ mkdir truffle $ cd truffle $ трюфель init
В трюфель инициализация команда создаст все необходимые файлы, необходимые для проекта трюфеля.
Теперь, когда у нас есть все для развертывания смарт-контракта Ethereum, приступим к написанию смарт-контракта «Hello World».
Написание смарт-контракта «Hello World»
Все контракты должны быть записаны в справочнике «контракты». Мы переключимся в этот каталог и создадим контракт с именем «HelloWorld.sol» и добавим в этот файл следующие строки:
pragma solidity ^ 0.4.15 контракт HelloWorld {строка общедоступная функция сообщения Hello () public {message = 'Hello World!' }}
Это оно! Но этот смарт-контракт не может быть выполнен сам по себе. Нам нужно будет сделать для него некоторые настройки.
Настройка миграции Truffle
Чтобы перенести наш смарт-контракт, нам нужно будет добавить файл в «Миграции» каталог в 'трюфель' каталог. В этот каталог мы добавим файл с именем «2_deploy_contracts.js» со следующим содержанием:
var HelloWorld = artifacts.require ('./ HelloWorld.sol') module.exports = function (deployer) {deployer.deploy (HelloWorld)}
Сохранить и выйти.
Чтобы запустить трюфель в нашей сети, нам нужно отредактировать « truffle.js Файл в 'трюфель' каталог . Откройте этот файл и сделайте следующие записи:
module.exports = {rpc: {host: 'localhost', порт: 8543}, сети: {разработка: {host: 'localhost', порт: 8543, network_id: '*', от: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', gas: 20000000}}}
Заметка: Заменить 'от' адрес с адресом учетной записи, которую вы создали на предыдущем шаге.
Выполнение смарт-контракта Ethereum
В этом последнем разделе руководства по смарт-контракту Ethereum мы увидим, как развернуть наш смарт-контракт «Hello World» в нашей частной сети Ethereum.
Компиляция и развертывание смарт-контракта
Прежде чем мы сможем выполнить наш смарт-контракт, мы должны сначала скомпилировать и развернуть его в нашей частной сети Ethereum. Сделаем это с помощью следующих команд:
компилировать $ трюфель
Теперь нам нужно разблокировать нашу учетную запись и начать майнинг. Вернитесь в терминал с помощью консоли Geth и выполните следующую команду:
> personal.unlockAccount (web3.eth.coinbase) > miner.start ()
а затем вернитесь к терминалу, на котором 'трюфель' как настоящий рабочий каталог ибегатьследующая команда:
$ трюфель миграция
Дождитесь завершения развертывания.
Выполнение смарт-контракта на частном блокчейне Ethereum
Чтобы выполнить смарт-контракт «Hello World», нам нужно будет войти в консоль трюфеля. Для этого выполните следующую команду:
консоль $ трюфель
Теперь вы окажетесь в консоли трюфелей. Чтобы выполнить смарт-контракт, выполните следующую команду:
> var first_contract> HelloWorld.deployed (). then (function (instance) {first_contract = instance})> dApp.message.call ()
Поздравляю! Вы создали свой первый смарт-контракт Ethereum и выполнили его. Я надеюсь, что это руководство по смарт-контракту Ethereum было информативным и помогло вам понять, как выполнить смарт-контракт Ethereum. Теперь продолжайте и попробуйте написать другие смарт-контракты и выполнить их.
Есть вопрос к нам? Пожалуйста, разместите это на и мы свяжемся с вами.
Если вы хотите изучить Blockchain и построить карьеру в Blockchain Technologies, ознакомьтесь с нашими который включает в себя живое обучение под руководством инструктора и опыт реальных проектов. Этот тренинг поможет вам исчерпывающе понять, что такое блокчейн, и поможет вам достичь мастерства в этом предмете.