Передача Eth с помощью node.js

Node.js
Передача Eth с помощью node.js

0 Предисловие

Эта статья перепечатана из моей личной серии подкастов

На второй день создайте среду разработки и перенесите ETH с помощью Node.js | 5 дней, чтобы освоить разработку Ethereum dApp

Добро пожаловать, давайте проведем техническую дискуссию

В этой главе мы в основном изучаемСоздание среды разработки Ethereum, и запуститеDemo --- Перевести ETH через код.

1 Введение в среду разработки

Среда разработки Ethereum делится на три категории.

  • Локальная тестовая среда: Локальная тестовая сеть
  • Среда онлайн-тестирования включает в себя:
    • Ropsten Test Network
    • Rinkeby Test Network
    • Kovan Test Network
    • Goerli Test Network
  • Производственная онлайн-среда: Mainnet Network (основная сеть Ethereum)

В целом процесс разработки нашего проекта

本地测试环境 --> 线上测试环境 --> 生产环境

Тем не менее, эта статья должна объяснить процесс, рекомендуемыйСначала быстро запустите среду Ropsten, а затем запустите локальную среду разработки.

Причина в том, что я указалethereum-demoПробежать через среду Ropsten будет относительно легко, весь процесс близок к нашему обычному переводу, поэтому проще понять процесс работы Ethereum.

2 Быстрый запуск среды Ropsten

2.1 для создания случайной учетной записи

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

Сохраните случайно сгенерированную мнемонику

Запишите первый адресAccount[0], следующее дастAccount[0]ETH Прием теста

2.2 Получите тестовый ETH

Получить тестовый ETH в сети Ropsten очень удобно, достаточно зайти наRopsten Ethereum FaucetВведите свой адрес Ethereum, и тестовая среда предоставит вам1ETH.

ЗаполнитьAccount[0]адрес, заявка1ETH

领取1eth

2.3 Зарегистрироваться в Infura

Кошелек Ethereum, который мы обычно используем,TrustWallet,Metamask,MyEtherWalletПодождите, вы можете получить доступ к сети Ethereum, только отправив JSON-RPC. Поэтому нам нужна платформа, которая может обеспечить RPCURL — Infura.

  • доступу женщины A.IO/,Зарегистрировать аккаунт
  • запомнитьwss://ropsten.infura.io/v3/xxxxxЭта строка будет использоваться позже. (КОНЕЧНЫЕ ТОЧКИ выбирает ROPSTEN)

2.4 Запуск кода

я приготовил одинethereum-demo, чтобы помочь вам быстро установить;

Адрес репо:GitHub.com/netpi/эфир…;


#1
git clone https://github.com/netpi/ethereum-demo.git

#2
cd ethereum-demo

#3 
npm install

# nodejs v8.17.0 (web3.js@1.x 目前支持 NODE_MODULE_VERSION 57 )

Исправлятьropsten.config.jsфайл, помещаем сгенерированный на первом шагемнемоническийи применяется в infura.ioRPC-URLЗаполните адрес.

// ropsten.config.js

module.exports = {
  mnemonic: "你的助记词",
  rpcurl: "RPC 地址" // 格式如:wss://ropsten.infura.io/ws , 可访问 infura.io 注册申请
}

Выполнить transforEth.js

На предыдущем шаге должна была прийти полученная нами среда Ropsten 1ETH.

Что делает transforEth.js:Account[0]Переведите 0.01ETH наAccount[1]

node transferEth.js

Если вы видите, что консоль печатает следующее, передача прошла успешно.

{ blockHash: '0x47a243a7d3cf9e1a82d2dfb16bb4db65c248ebd8b5188510ae39be3ddfb80633',
  blockNumber: 8008669,
  contractAddress: null,
  cumulativeGasUsed: 412061,
  from: '0x15e35634f38f416830aaf09e35b323b516af6d36',
  gasUsed: 21000,
  logs: [],
  logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
  status: true,
  to: '0x75d60374fd1740d1bcdc033084deaaa57a7d8321',
  transactionHash: '0x2bf9563c4b094d09ad252bce7ffca5f93438ee0797b3c94be5513e9cc77422d8',
  transactionIndex: 8 }

наконец доступныйropsten.etherscan.io/Найдите transactionHash, чтобы просмотреть детали перевода

Например: адрес запроса transactionHash, который я успешно передал в демо:Нажмите, чтобы просмотреть

На данный момент тестовая сеть Ropsten прошла, и мы успешно завершили передачу стоимости 0,01ETH в сети Ethereum с помощью кода.

3 Настройте локальную среду

Согласно приведенным выше шагам, среда Ropsten успешно настроена, поэтому настроить локальную разработку очень просто.

3.1 Использование ганаша

В локальной среде служба JSON-RPC предоставляется,ganache-cli.

доступwww.trufflesuite.com/ganacheЗагрузите клиент Ganache;

Запустите Ганаш, в设置 --> ACCOUNTS & KEYSПосле настройки мнемонической фразы нажмите в правом верхнем углуSAVE AND RESTART

Таким образом, вы настроили локальную среду JSON-RPC.

3.2 Запуск кода в локальной среде

Давайте настроим локальную среду и скопируем RPC SERVER (мой адрес по умолчанию:http://127.0.0.1:7545)

Исправлятьlocal.config.jsдокумент

// local.config.js
module.exports = {
  mnemonic: "你的助记词",
  rpcurl: "http://127.0.0.1:7545" 
}

переключатьtransferEth.jsцитируетсяlocal.config.jsдокумент

const Web3 = require('web3');
// const config = require('./ropsten.config.js'); // ropsten test network
const config = require('./local.config.js'); // local test network
const HDWalletProvider = require("@truffle/hdwallet-provider");
const mnemonic = config.mnemonic; 
...

воплощать в жизньtranferEth.js

node tranferEth.js

Точно так же следующий вывод указывает на успех

{ transactionHash: '0xdd6c68c8ac4071fa1cc5f39d0954d8240b8fcf272dd2dca2765c09cfb93180b1',
  transactionIndex: 0,
  blockHash: '0x9fadfcf19571d574e03cb410e10c0c817fe76a1e4a1339ff89c2f03afcd5c14e',
  blockNumber: 1,
  from: '0x15e35634f38f416830aaf09e35b323b516af6d36',
  to: '0x75d60374fd1740d1bcdc033084deaaa57a7d8321',
  gasUsed: 21000,
  cumulativeGasUsed: 21000,
  contractAddress: null,
  logs: [],
  status: true,
  logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' }

3.3 Просмотр информации о локальной сети через Ganache

В это время посмотрите на Ganache, Account [0] баланс счета становится 99,999, баланс счета [1] становится 10001th, что указывает на то, что передача успешна.

Мы также можем увидеть детали TX в Ganache TRANSACTION.

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

Суммировать

Практикуя эту главу, мы успешно прошли черезRopsten Test Networkа такжеLocal Test Networkи завершил транзакцию ETH, запустив код.

В следующей главе мы в основном будем изучатьtransferEth.jsОчки знаний, участвующие в ---Web3.js 工作原理,助记词原理详解. так же как智能合约的编写、调试与发布Ждать.