Взаимодействие со смарт-контрактом Ethereum с помощью Web3js
Ethereum - это криптовалютная платформа на рынке, такая же, как и Биткойн. Это децентрализованный блокчейн с открытым исходным кодом, работающий над смарт-контрактами. У него есть собственная криптовалюта, известная как эфир. Смарт-контракты в Ethereum написаны основательно.
TestRPC Ethereum TestRPC похож на ручной эмулятор для блокчейна. Он обеспечивает взаимодействие с блокчейном без запуска на реальном узле Ethereum. Он также предоставляет все функции, необходимые для тестирования вашей цепочки блоков. Он основан на Node.js.
Web3.js Web3.js - это основанный на Ethereum JavaScript API, который позволяет нам взаимодействовать с локальным или удаленным узлом Ethereum, используя различные серверы, такие как HTTP. Он взаимодействует с блокчейном Ethereum и может извлекать данные из блокчейна по требованию разработчика.
В этой статье описывается, как взаимодействовать с вашим смарт-контрактом Ethereum с помощью Web3.js и TestRPC. Перед тем, как продолжить, рекомендуется ознакомиться с разделом «Как работать с Remix-IDE».
Прежде чем мы приступим к шагам, установите TestRPC и Web3JS следующим образом:
1. TestRPC
Шаг 1. Откройте консоль или командную строку и выполните следующие команды, чтобы проверить, установлены ли node и npm.
$ node -v $ npm -v
Если указанная выше команда не распознается, загрузите их с Nodejs.org для Windows или с помощью следующих команд (для macOS). Пакет npm устанавливается вместе с узлом.
узел установки $ brew
Чтобы обновить эти пакеты, используйте следующие команды:
узел обновления $ brew
Шаг 2: Теперь установите ethereumjs-testrpc, используя следующую команду:
$ npm установить -g etherumjs-testrpc
Шаг 3: Теперь вы можете запустить сервер, используя следующую команду
$ testrpc
2. Web3.js
Шаг 1. Откройте консоль или командную строку и перейдите в папку, содержащую JavaScript для вашей страницы, следующим образом:
$ cd рабочий стол / myproject
Шаг 2: Теперь запустите команду npm init, чтобы создать файл package.json, в котором будут храниться зависимости проекта:
$ npm init
Шаг 3: После завершения вышеуказанной установки выполните следующую команду для установки web3.js-
$ npm install ethereum / web3.js0.20.0 –save
После установки TestRPC и Web3.js создайте смарт-контракт, который вы хотите соединить с Web3.js.
Шаг 1: Откройте Remix-IDE.
Шаг 2: Создайте образец смарт-контракта, как показано ниже, или любой другой смарт-контракт.
Твердость
pragma solidity ^0.4.26; // Creating a contract contract GFG{ // Defining a function to // print a message function get_output() public pure returns (string) { return ( "Hi, your contract ran successfully" ); } } |
Шаг 3. Скомпилируйте код и перейдите в раздел «Развертывание».
Шаг 4: Выберите среду в качестве поставщика Web3 и введите сервер TestRPC http: // localhost: 8545. Убедитесь, что TestRPC работает в вашей системе.
Шаг 5: Теперь, используя следующий код, подключите код своей веб-страницы к смарт-контракту.
Javascript
<script> if ( typeof web3 !== 'undefined' ){ web3 = new Web3(web3.currentProvider); } else { // Set the provider you want from Web3.providers } // Set the 1st account for transactions web3.eth.defaultAccount = web3.eth.accounts[0]; // Set the ABI var yourContract = web3.eth.contract( 'PASTE ABI HERE!' ); // Set the contrcat address var contract_name = yourContract.at( 'PASTE CONTRACT ADDRESS HERE' ); </script> |
Этот код взят прямо со страницы Github Web3.js.
ЗАМЕТКА: 1. Имена переменных могут быть изменены в соответствии с требованиями. 2. Вам необходимо вставить адрес контракта и ABI, как указано выше в коде. 3. Вы получите адрес контракта при развертывании смарт-контракта. 4. Вы получите ABI, когда скомпилируете свой смарт-контракт в деталях компиляции. 5. С этого момента вы можете использовать все свои контрактные функции. 6. Команда TestRPC, которую мы запустили, предоставляет нам 10 учетных записей, здесь мы используем первую.
Вывод: вывод можно настроить так, как вы хотите отобразить на своей веб-странице, но в Remix-IDE вывод будет выглядеть так после развертывания смарт-контракта.
Вот как ваш смарт-контракт взаимодействует с использованием web3.js. Продолжайте узнавать больше о блокчейне Ethereum