真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于linuxgeth命令的信息

Docker 搭建以太坊私有鏈

首先需要安裝 Docker,Docker 的安裝和使用可以參看阮一峰老師的 《Docker 入門教程》 。

創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)十載累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營(yíng)銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:小攪拌車等企業(yè),備受客戶稱譽(yù)。

Ethereum 官方是支持 docker 的,可以參看 官方文檔 。

centOS

其中 -v /home/linshan/works/block-chain/ethereum:/root 是把我們當(dāng)前的 ethereum 目錄,掛到了docker 的 /root 下。

在 Windows 環(huán)境下使用 -v /home/linshan/works/block-chain/ethereum:/root 不能啟動(dòng)容器,原因不明,所以在 Windows 下先不要使用目錄掛載。

各字段具體用途參看 官方文檔 。

Windows

Windows 不必創(chuàng)建 start-ethereum.sh 文件, genesis.json 也可以在 Docker 容器啟動(dòng)后創(chuàng)建。

centOS

Windows

運(yùn)行成功后執(zhí)行

進(jìn)入 docker 容器命令行

因?yàn)?Windows 沒(méi)有掛載共享目錄,所以 root 目錄下沒(méi)有 genesis.json 文件,我們要在這里手動(dòng)創(chuàng)建 genesis.json 文件,內(nèi)容要和 centOS 的一致。

data 用來(lái)存放區(qū)塊數(shù)據(jù)

geth 的參數(shù)參看 以太坊客戶端Geth命令用法-參數(shù)詳解

啟動(dòng)私有節(jié)點(diǎn)后進(jìn)入 geth 命令行執(zhí)行:

輸出的內(nèi)容就是節(jié)點(diǎn)信息,我們?cè)谑謩?dòng)連接節(jié)點(diǎn)是會(huì)用到,注意要把“0.0.0.0“換成你自己的IP,然后將這個(gè)信息發(fā)送給其他節(jié)點(diǎn)。手動(dòng)連接節(jié)點(diǎn)有兩種方式:

當(dāng)然不管使用哪種方法連接節(jié)點(diǎn)都要保證創(chuàng)世區(qū)塊文件 genesis.json 一致,還有在啟動(dòng)時(shí) networkid 也要一致。

至此以太坊私有鏈已搭建完畢。

geth命令

docker命令

geth的啟動(dòng)之整體及p2p服務(wù)的啟動(dòng)

geth命令的實(shí)現(xiàn)在文件

go-ethereum/cmd/geth/main.go中

調(diào)用關(guān)系

其中app在main.go的全局變量中初始化

cli的實(shí)現(xiàn)采用的是

庫(kù) 該庫(kù)的用法待學(xué)習(xí)

node中包含了rpc,ipc,http,ws,p2p等各種服務(wù)及在5中所注冊(cè)的服務(wù)

startNode如下

Geth簡(jiǎn)介

Geth 又名 go-ethereum,是 ethereum 協(xié)議的具體落地實(shí)現(xiàn),通過(guò) geth,可以實(shí)現(xiàn) ethereum 的各種功能

Geth 可以被安裝在很多操作系統(tǒng)上,包括 Windows、Linux、Mac 的 OSX、Android 或者 iOS 系統(tǒng)。

Geth客戶端主要功能:

JavaScript Console:通過(guò)后臺(tái)進(jìn)行命令操作;

Management API:管理相關(guān)的API;

JSON-RPC server:JSON-RPC相關(guān)調(diào)用API

賬號(hào)管理(創(chuàng)建賬號(hào)、鎖定賬號(hào)、解除鎖定等);

查詢賬戶信息;

查詢交易信息;

查詢gasPrice;

交易;

挖礦停止挖礦;

部署智能合約

等其他相關(guān)功能。

(歡迎打賞,一分也是愛(ài))

搭建geth私有鏈和聯(lián)盟鏈網(wǎng)絡(luò)

操作系統(tǒng):linux或Mac OS

安裝geth執(zhí)行以下命令:

linux:sudo apt-get install ethereum

Mac OS:brew install ethereum

直接創(chuàng)建兩個(gè)geth的工作目錄,用于之后的組建聯(lián)盟鏈的使用:

mkdir eth-private1

mkdir eth-private2

首先 cd eth-private1 進(jìn)入節(jié)點(diǎn)1的工作目錄該目錄下執(zhí)行下面命令

geth --datadir data --nodiscover console (data是之后geth節(jié)點(diǎn)的數(shù)據(jù)目錄,可自行修改)

使用geth自帶的工具 puppeth 用于生成創(chuàng)世區(qū)塊,過(guò)程如下:

puppeth

+-----------------------------------------------------------+

| Welcome to puppeth, your Ethereum private network manager |

| |

| This tool lets you create a new Ethereum network down to |

| the genesis block, bootnodes, miners and ethstats servers |

| without the hassle that it would normally entail. |

| |

| Puppeth uses SSH to dial in to remote servers, and builds |

| its network components out of Docker containers using the |

| docker-compose toolset. |

+-----------------------------------------------------------+

Please specify a network name to administer (no spaces, please)

輸入私鏈名稱后,會(huì)出現(xiàn)二級(jí)菜單,現(xiàn)在2:配置一個(gè)新的創(chuàng)世快

What would you like to do? (default = stats)

再次出現(xiàn)二級(jí)菜單,讓你選擇共識(shí)機(jī)制(這里采用poa共識(shí))

Which consensus engine to use? (default = clique)

Ethash - proof-of-work(PoW) :工作量證明,通過(guò)算力達(dá)成共識(shí) (以太坊就是使用這種方式)

Clique - proof-of-authority(PoA): 權(quán)威證明、通過(guò)預(yù)先設(shè)定的權(quán)威節(jié)點(diǎn)來(lái)負(fù)責(zé)達(dá)成共識(shí) (不消耗算力,一般用于私有鏈測(cè)試開(kāi)發(fā))

如果選擇Pow的共識(shí)方法,直接輸入1,回車即可。

如果選擇PoA的共識(shí)方法,輸入2后會(huì)提示讓你選擇處快的間隔時(shí)間,一般測(cè)試開(kāi)發(fā)使用可以設(shè)置相對(duì)的將處快時(shí)間設(shè)置較少5秒即可,然后會(huì)讓你選擇哪個(gè)賬戶來(lái)作為權(quán)威生成區(qū)塊(至少有一個(gè),輸入剛才創(chuàng)建的賬戶,若只是單節(jié)點(diǎn)就輸入那個(gè)節(jié)點(diǎn)目錄生成的地址,若想組建聯(lián)盟鏈就填寫(xiě)生成的兩個(gè)地址)

How many seconds should blocks take? (default = 15)

選擇好共識(shí)機(jī)制后會(huì)讓你指定給那些賬號(hào)初始化ether(至少有一個(gè)),輸入我們剛才創(chuàng)建的賬戶地址回車即可。

Which accounts should be pre-funded? (advisable at least one)

選擇輸入私有鏈的網(wǎng)絡(luò)ID,任意數(shù)字即可(不能為1,1是公鏈),也可以不輸入會(huì)給定一個(gè)隨機(jī)數(shù)作為私有鏈的網(wǎng)絡(luò)ID

Specify your chain/network ID if you want an explicit one (default = random)

選擇導(dǎo)出創(chuàng)世區(qū)塊配置文件

選擇導(dǎo)出創(chuàng)世區(qū)塊配置文件的保存路徑,可以保存到當(dāng)前目錄,直接按回車即可

Which file to save the genesis into? (default = my-private-chain.json)

INFO [02-09|14:56:33] Exported existing genesis block

這樣就完成了創(chuàng)世區(qū)塊文件的配置了,直接退出puppeth即可。

輸入命令 geth --datadir data init private.json 其中data自己制定,private.json就是剛才生成的創(chuàng)世區(qū)塊

若出現(xiàn)如圖錯(cuò)誤:

輸入命令:

geth --datadir data --syncmode full --port 2001 --networkid 1234 --rpc --rpcport "8545" --rpccorsdomain "*" --rpcaddr "0.0.0.0" --rpcapi "db,eth,net,web3,personal,admin,clique" --nodiscover console 進(jìn)入控制臺(tái)

--datadir data:節(jié)點(diǎn)的數(shù)據(jù)目錄

--syncmode full:塊同步的方式(若只是單節(jié)點(diǎn)可不填)

--port 2001: 網(wǎng)卡監(jiān)聽(tīng)端口

--networkid 1234:網(wǎng)絡(luò)標(biāo)識(shí)符

--rpc:開(kāi)啟rpc服務(wù)

--rpcport "8545":rpc服務(wù)的端口

--rpccorsdomain "*":允許跨域請(qǐng)求的域名列表(逗號(hào)分隔)(瀏覽器強(qiáng)制)

--rpcaddr "0.0.0.0" :HTTP-RPC服務(wù)器接口地址(默認(rèn)值:“l(fā)ocalhost”)

--rpcapi "db,eth,net,web3,personal,admin,clique":基于HTTP-RPC接口提供的API(私有鏈可以任意開(kāi)發(fā),公有鏈需要謹(jǐn)慎)

--nodiscover:不允許節(jié)點(diǎn)自動(dòng)加入

若想搭建聯(lián)盟鏈,必須保證創(chuàng)世區(qū)塊一致,進(jìn)入到剛才創(chuàng)建的eth-private2的目錄

將之前生成的創(chuàng)世區(qū)塊拷貝過(guò)來(lái),初始化創(chuàng)世區(qū)塊,然后使用啟動(dòng)命令啟動(dòng)分別啟動(dòng)兩個(gè)節(jié)點(diǎn),進(jìn)入控制臺(tái),使用 admin.nodeInfo 命令獲取節(jié)點(diǎn)的信息

總結(jié):

兩個(gè)服務(wù)器部署兩個(gè)節(jié)點(diǎn)是可以聯(lián)通的,但是只能使用兩個(gè)節(jié)點(diǎn)對(duì)應(yīng)的地址進(jìn)行挖礦,所以只能是兩個(gè)節(jié)點(diǎn)對(duì)應(yīng)兩個(gè)地址進(jìn)行挖礦,使用poa共識(shí),當(dāng)一個(gè)節(jié)點(diǎn)掛掉,挖礦停止,因?yàn)閜oa共識(shí)挖礦必須超過(guò)50%的節(jié)點(diǎn)進(jìn)行錢增,現(xiàn)在只是兩個(gè)節(jié)點(diǎn),掛掉一個(gè)節(jié)點(diǎn)挖礦就會(huì)停止等待另一個(gè)節(jié)點(diǎn)的確認(rèn),停掉的節(jié)點(diǎn)可以通過(guò)正常運(yùn)作的節(jié)點(diǎn)信息重新連接到網(wǎng)絡(luò)中。

問(wèn)題:

同步塊有可能報(bào)錯(cuò)情況:

1:Synchronisation failed "retrieved hash chain is invalid" 解決目前找到的方法是removedb 數(shù)據(jù)目錄 ,重新init創(chuàng)世區(qū)塊

2:內(nèi)存溢出初步確認(rèn)為開(kāi)啟rpc服務(wù)造成的,有可能服務(wù)器惡意被黑,暴力破解密碼,占有內(nèi)存,解決,將服務(wù)器的ip設(shè)置一條防火墻

若存在問(wèn)題可給本人留言或訪問(wèn)本人的github: 記錄了一些本人搭建使用的命令


分享題目:關(guān)于linuxgeth命令的信息
本文來(lái)源:http://weahome.cn/article/ddjhggi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部