0 Предисловие
Эта статья перепечатана из моей личной серии подкастов
Добро пожаловать, давайте проведем техническую дискуссию
В этой главе мы в основном изучаемСоздание среды разработки 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
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 工作原理
,助记词原理详解
. так же как智能合约的编写、调试与发布
Ждать.