本文轉自個人我的播客系列文章html
第2天,搭建開發環境,用 Node.js 轉帳 ETH | 5天掌握以太坊 dApp 開發node
歡迎你來,一塊兒技術討論git
本章咱們主要學習 以太坊開發環境的搭建,並運行一個 Demo --- 通代碼來轉帳 ETH。github
以太坊的開發環境分紅三大類web
通常狀況下,咱們的項目開發流程是shell
本地測試環境
--> 線上測試環境
--> 生產環境
npm
可是,本文得講解過程推薦先快速跑通 Ropsten 環境,而後跑通本地開發環境。json
緣由是按照我提供的 ethereum-demo 來跑通 Ropsten 環境會相對容易,整個過程接近咱們平時的轉帳,所以更容易瞭解以太坊的運做流程。bash
訪問 助記詞生成頁面,生成助12個助記詞,做爲測試開發使用。網絡
保存好隨機生成的助記詞
記下第一個地址 Account[0]
,下面要給 Account[0]
領取測試 ETH
在 Ropsten 網絡中得到測試 ETH 是很是的方便,只要到 Ropsten Ethereum Faucet 上填入你的以太坊地址,測試環境就會爲你提供 1ETH
。
填入 Account[0]
地址,申請 1ETH
咱們平時用的以太坊錢包,TrustWallet、Metamask、MyEtherWallet 等,都要經過發送 JSON-RPC 纔可以接入到以太坊的網絡中。 所以咱們須要一個能夠提供 RPCURL 的平臺 -- Infura。
wss://ropsten.infura.io/v3/xxxxx
這串,後面要使用。( ENDPOINTS 選擇 ROPSTEN)
我準備了一個 ethereum-demo ,來幫助你們快速 Setup;
Repo 地址:github.com/netpi/ether…;
#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.io 中申請的 RPC-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 Test Network 就跑通了,咱們成功的在以太坊網絡中經過代碼完成了一次 0.01ETH 的價值轉移。
按照上述步驟 Ropsten 環境已經配置成功,那麼接下來配置本地開發就很是容易了。
本地環境中,提供 JSON-RPC 服務的是,ganache-cli。
訪問 www.trufflesuite.com/ganache 下載 Ganache 客戶端;
運行 Ganache,在 設置
--> ACCOUNTS & KEYS
中 配置好你的助記詞,點擊右上角的 SAVE AND RESTART
這樣你就 Setup 好了一個本地的 JSON-RPC 環境了。
咱們來配置一下本地環境,拷貝 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' }
複製代碼
這時再看 Ganache,Account[0] 帳戶餘額變成了 99.99ETH,Account[1]的餘額變成了 100.01ETH,說明轉帳成功。
咱們還能夠在 Ganache TRANSACTION 中查看 TX 的細節
至此咱們在本地環境中完成了一次價值轉移,本地環境搭建成功。
經過本章的實踐,咱們成功跑通了 Ropsten Test Network
和 Local Test Network
,並用經過運行代碼完成了 ETH 交易。
下一章節中,咱們將主要學習本章中 transferEth.js
裏所涉及的知識點 --- Web3.js 工做原理
,助記詞原理詳解
。 以及智能合約的編寫、調試與發佈
等。