1. 程式人生 > 實用技巧 >【react+taro做一個商品分類的元件】版本1(我願稱之為最簡版本)

【react+taro做一個商品分類的元件】版本1(我願稱之為最簡版本)

安裝Geth

通過PPA在Ubuntu上安裝

在基於Ubuntu的發行版上安裝go-ethereum的最簡單方法是使用內建的啟動板PPA(個人軟體包檔案)。我們提供的是包含了我們的穩定和開發版本的Ubuntu版本的單PPA倉庫trusty,xenial,zesty和artful。

要啟用我們的啟動板儲存庫,請執行:

sudo add-apt-repository -y ppa:ethereum/ethereum

然後安裝穩定版的go-ethereum:

sudo apt-get update
sudo apt-get install ethereum

安裝golang

sudo apt-get install
golang

搭建私鏈

建立創世區塊檔案

{
  "config": {
    "chainId": <arbitrary positive integer>,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0
  },
  "alloc": {},
  
"coinbase": "0x0000000000000000000000000000000000000000", "difficulty": "0x20000", "extraData": "", "gasLimit": "0x2fefd8", "nonce": "0x0000000000000042", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp": "0x00" }

啟動私鏈節點

下面命令的主體是geth console,表示啟動節點並進入互動式控制檯,–datadir選項指定使用data0作為資料目錄,–networkid選項後面跟一個數字,這裡是1108,表示指定這個私有鏈的網路id為1108。網路id在連線到其他節點的時候會用到,以太坊公網的網路id是1,為了不與公有鏈網路衝突,執行私有鏈節點的時候要指定自己的網路id

geth --datadir data0 --networkid 1108 console

執行上面的命令後,就啟動了區塊鏈節點並進入了Javascript Console:

這是一個互動式的Javascript執行環境,在這裡面可以執行Javascript程式碼,其中>是命令提示符。在這個環境裡也內建了一些用來操作以太坊的Javascript物件,可以直接使用這些物件。這些物件主要包括:

eth:包含一些跟操作區塊鏈相關的方法 
net:包含以下檢視p2p網路狀態的方法 
admin:包含一些與管理節點相關的方法 
miner:包含啟動&停止挖礦的一些方法 
personal:主要包含一些管理賬戶的方法 
txpool:包含一些檢視交易記憶體池的方法 
web3:包含了以上物件,還包含一些單位換算的方法

建立賬戶

賬戶預設會儲存在資料目錄的keystore資料夾中。

# 檢視賬戶
eth.accounts
# 建立新賬戶
personal.newAccount('你的密碼1')
# 可以建立多個賬戶
personal.newAccount('你的密碼2')

檢視賬戶餘額

eth.getBalance(eth.accounts[0])
eth.getBalance(eth.accounts[1])

啟動/停止挖礦

# 括號中的引數為挖礦的執行緒數,可以不設定,預設全力挖礦
miner.start(10)
# 第一次啟動挖礦會先生成挖礦所需的DAG檔案,這個過程有點慢,等進度達到100%後,就會開始挖礦,此時螢幕會被挖礦資訊刷屏。

# 停止挖礦
miner.stop()
# 輸入的字元會被挖礦刷屏資訊沖掉,沒有關係,只要輸入完整的miner.stop()之後回車,即可停止挖礦

礦工的賬戶,叫做coinbase,預設情況下coinbase是本地賬戶中的第一個賬戶

# 檢視賬戶
eth.coinbase

# 修改賬戶
miner.setEtherbase(eth.accounts[1])