亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何搭建linux及ubuntu以太坊私有鏈開發環境

發布時間:2021-10-23 09:03:40 來源:億速云 閱讀:290 作者:柒染 欄目:互聯網科技

本篇文章給大家分享的是有關如何搭建linux及ubuntu以太坊私有鏈開發環境,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、安裝前的準備

1.1 查看當前CPU架構

在終端中執行以下命令,確定是32位架構還是64位架構:

~$ uname –p
x86_64

如果你看到輸出x86_64,那么就是64位系統,否則是32位。

1.2下載工具

確保你安裝了下載工具wget:

~$ wget –V
GNU Wget 1.17.1 built on linux-gnu

如果還沒有安裝wget,使用apt-get來安裝

~$ sudo apt-get install wget

如何搭建linux及ubuntu以太坊私有鏈開發環境

二、安裝DApp開發環境

##2.1 安裝Node.js 首先根據你的ubuntu是32位還是64位,分別下載不同的預編譯版本,我們使用官方長期支持的8.10.0LTS版本: 64位:~$ wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.gz 32位:~$ wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x86.tar.gz 然后解壓到當前目錄,以64位為例:

~$ tar zxvf node-v8.10.0-linux-x64.tar.gz

然后接下來修改.bashrc來設置相關的環境變量:

~$ echo "export NODE_HOME=$HOME/node-v8.10.0-linux-x64" >> .bashrc
~$ echo "export NODE_PATH=$NODE_HOME/lib/node_modules" >> .bashrc
~$ echo "export PATH=$NODE_HOME/bin:$PATH" >> .bashrc

最后重新載入.bashrc(或者重新登陸)來使node生效:

~$ source .bashrc

現在,你可以使用node了:

~$ node –v
v8.10.0

##2.2 安裝Geth 在終端執行以下命令:

~$ wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.8.3-329ac18e.tar.gz
~$ mv get-linux-amd64-1.8.3-329ac18e geth
~$ echo export PATH=$HOME/geth:$PATH >> .bashrc
~$ soure .bashrc

安裝完畢后,執行命令驗證安裝成功:

~$ geth version
Geth
Version: 1.8.3-stable

2.3 安裝solidity編譯器

~$ npm install –g solc

安裝完畢后,執行命令驗證安裝成功

~$ solcjs –version
0.40.2+commit.3155dd80.Emscripten.clang

2.4安裝web3

~$ npm install –g web3@0.20.2

安裝驗證:

~$ node –p 'require("web3")'
{[Function: Web3]
  providers:{…}}

2.5安裝truffle框架

執行以下命令安裝truffle開發框架:

~$ npm install –g truffle

驗證安裝:

~$ truffle version
Truffle v4.1.3 (core 4.1.3)

2.6安裝webpack

執行以下命令安裝webpack:

~$ npm install –g webpack@3.11.0

驗證安裝

~$ webpack –v
3.11.0

三、運行私鏈節點

3.1創世塊配置

創建一個節點目錄node1,并在其中創建私鏈的創世塊配置文件:

~$ mkdir node1
~$ cd node1
~/node1$ touch private.json

然后編輯內容如下:

{
    "config": {
        "chainId": 7878,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "200",
    "gasLimit": "2100000",
    "alloc": {
        "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
        "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
    }
}
  • config.chainId:用來聲明以太坊網絡編號,選擇一個大于10的數字即可。

  • difficulty:用來聲明挖礦難度,越小的值難度越低,也就能更快速地出塊。

3.2初始化私鏈節點

執行geth的init命令初始化私鏈節點:

~/node1$ geth --datadir ./data init private.json

這會在當前目錄下創建data目錄,用來保存區塊數據及賬戶信息:

~/node1$ ls
data private.json

可以上述命令寫到一個腳本init.sh里,這樣避免每次都輸入那么多記不住的東西:

~/node1$ touch init.sh
~node1$ chmod +x init.sh

編輯內容如下:

#!/bin/bash
geth --datadir ./data init private.json

在部署下一個節點時,就可以直接執行這個腳本進行初始化了。例如,在另一臺機器上:

~/node1$ ./init.sh

3.3啟動私鏈節點

從指定的私鏈數據目錄啟動并設定一個不同的網絡編號來啟動節點:

~/node1$ geth --rpc --datadir ./data --networkid 7878 console

同樣,你可以用一個腳本console.sh來簡化啟動節點時的輸入:

~/node1$ touch console.sh
~/node1$ chmod +x console.sh

編輯內容如下:

#!/bin/bash
geth --rpc \
      --rpcaddr 0.0.0.0 \
      --rpccorsdomain "*" \
--datadir ./data \
--networkid 7878 \
console
  • rpcaddr:用來聲明節點RPC API的監聽地址,設為0.0.0.0就可以從其他機器訪問API了;

  • rpccorsdomain:用于解決web3從瀏覽器中跨域調用的安全限制問題。 以后啟動節點,只要直接執行這個腳本即可:

~/node1$ ./console.sh

3.4 賬戶管理

3.4.1 查看賬戶列表

在geth控制臺,使用eth對象的accounts屬性查看目前的賬戶列表:

> eth.accounts
[]

因為我們還沒有創建賬戶,所以這個列表還是空的。

3.4.2創建新賬戶

在geth控制臺,使用personal對象的newAccount()方法創建一個新賬戶,參數為你自己選擇的密碼:

> personal.newAccount('78787878')
0xd8bcf1324d566cbec5d3b67e6e14485b06a41d49

輸出就是新創建的賬戶地址(公鑰),你的輸出不會和上面的示例相同。geth會保存到數據目錄下的keystore文件中。密碼要自己記住,以后還需要用到。

3.4.3查詢賬戶余額

在geth控制臺,使用personal對象的getBalance()方法獲取指定賬戶的余額,參數為賬戶地址:

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

或者直接輸入賬戶地址:

> eth.getBalance('0xd8bcf1324d566cbec5d3b67e6e14485b06a41d49')
0

新創建的賬戶,余額果然為0。

3.4.4挖礦

沒錢的賬戶什么也干不了,需要挖礦來掙點錢。 在geth控制臺執行miner對象的start()方法來啟動挖礦:

> miner.start(1)

等幾分鐘以后,檢查賬戶余額:

> eth.getBalance(eth.accounts[0])
2.695e+21

錢不少了,2695ETH了,目前市值將近500萬人民幣了,哈。 執行miner對象的stop()方法停止挖礦:

> miner.stop()

3.4.5解鎖賬戶

在部署合約時需要一個解鎖的賬戶。在geth控制臺使用personal對象的unlockAccount()方法來解鎖指定的賬戶,參數為賬戶地址和賬戶密碼(在創建賬戶時指定的那個密碼):

> eth.unlockAccount(eth.accounts[0],'78787878')
true

四、構建示例項目

4.1 新建DApp項目

執行以下命令創建項目目錄并進入該目錄:

~$ mkdir demo
~$ cd demo

然后用webpack模版初始化項目骨架結構:

~/demo$ truffle unbox webpack
Downloading…
Unpacking…
Setting up…
Unbox successful. Sweet!

4.2 安裝項目依賴的NPM包

執行以下命令安裝nmp包:

~/demo$ npm install

4.3 修改truffle配置

truffle.js中,修改port為8545,因為geth默認在8545端口監聽:

module.exports = {
  networks:{
    development: {
      …
      port: 8545
      …
    }
  }
}

4.4 啟動節點

在 另一個終端,執行以下命令啟動節點軟件,以便部署合約并執行交易:

~$ cd node1
~/node1$ ./console.sh
>

注意:為了在節點上部署合約,別忘了啟動geth后先解鎖賬戶:

> personal.unlockAcount(eth.accounts[0],'78787878')
true

4.5 編譯合約

執行以下命令編譯項目合約:

~/demo$ truffle compile

4.6 部署合約

執行以下命令來部署合約:

~/demo$ truffle migrate

如果你之前忘了在geth控制臺解鎖賬戶,會看到如下錯誤,參考前面說明進行解鎖即可:

Error: authentication needed: password or unlock

如果已經正確地解鎖了賬戶,你會看到部署過程停止在如下狀態:

Replacing Migrations…
… 0x3088762a5bc9…

這是因為truffle在等待部署交易提交,但是我們在私鏈中還沒有啟動挖礦。 現在切換回geth終端窗口,查看交易池的狀態:

> txpool.status
{
  pending:1,
  queued:0
}

果然有一個掛起的交易!啟動挖礦就是了:

> miner.start(1)

稍等小會兒,再查看交易池的狀態:

> txpool.status
{
  pending:0,
  queued:0
}

交易已經成功提交了。我們可以停止挖礦了,因為它太占CPU了:

> miner.stop()

現在切換回truffle那個終端,部署過程也正確地執行完了。

4.7 啟動DApp

執行以下命令來啟動DApp:

~/demo$ npm run dev

在瀏覽器里訪問http://localhost:8080即可。 如果你希望從別的機器也可以訪問你的DApp應用,修改一下package.json:

{
  scripts:{
    "dev": "webpack-dev-server –-host 0.0.0.0"
  }
}

以上就是如何搭建linux及ubuntu以太坊私有鏈開發環境,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宾川县| 大余县| 东平县| 巴东县| 思茅市| 沂水县| 寿阳县| 合作市| 奉新县| 内丘县| 梁山县| 台中市| 龙口市| 镇原县| 余干县| 大宁县| 克什克腾旗| 大城县| 双牌县| 长顺县| 聂拉木县| 高清| 霍林郭勒市| 临湘市| 吉木萨尔县| 石台县| 克山县| 金寨县| 昌吉市| 平远县| 尉氏县| 沙坪坝区| 仙游县| 铁力市| 镇沅| 丹江口市| 沧州市| 屏山县| 承德市| 合山市| 卢湾区|