天天看點

ETH geth主網錢包linux安裝(以太坊是一個用于分散式應用程式的全球性開源平台)

一.下載下傳對應系統的geth包

https://ethereum.github.io/go-ethereum/downloads/               

二.下載下傳安裝包

https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.9.18-f5382591.tar.gz               

三.解壓安裝包

tar -zxvf geth-linux-amd64-1.9.18-f5382591.tar.gz            

四.進入檔案夾

cd geth-linux-amd64-1.9.18-f5382591           

五.啟動參數詳細介紹

以太坊用戶端Geth指令用法-參數詳解
指令用法
geth [選項] 指令 [指令選項] [參數…]
指令:
account    管理賬戶
attach     啟動互動式JavaScript環境(連接配接到節點)
bug        上報bug Issues
console    啟動互動式JavaScript環境
copydb     從檔案夾建立本地鍊
dump       Dump(分析)一個特定的塊存儲
dumpconfig 顯示配置值
export     導出區塊鍊到檔案
import     導入一個區塊鍊檔案
init       啟動并初始化一個新的創世紀塊
js         執行指定的JavaScript檔案(多個)
license    顯示許可資訊
makecache  生成ethash驗證緩存(用于測試)
makedag    生成ethash 挖礦DAG(用于測試)
monitor    監控和可視化節點名額
removedb   删除區塊鍊和狀态資料庫
version    列印版本号
wallet     管理Ethereum預售錢包
help,h     顯示一個指令或幫助一個指令清單
ETHEREUM 配置選項:
--config value          TOML 配置檔案
--datadir “xxx”         資料庫和keystore密鑰的資料目錄
--keystore              keystore存放目錄(預設在datadir内)
--nousb                 禁用監控和管理USB硬體錢包
--networkid value       網絡辨別符(整型, 1=Frontier, 2=Morden (棄用), 3=Ropsten, 4=Rinkeby) (預設: 1)
--testnet               Ropsten網絡:預先配置的POW(proof-of-work)測試網絡
--rinkeby               Rinkeby網絡: 預先配置的POA(proof-of-authority)測試網絡
--syncmode "fast"       同步模式 ("fast", "full", or "light")
--ethstats value        上報ethstats service  URL (nodename:secret@host:port)
--identity value        自定義節點名
--lightserv value       允許LES請求時間最大百分比(0 – 90)(預設值:0) 
--lightpeers value      最大LES client peers數量(預設值:20)
--lightkdf              在KDF強度消費時降低key-derivation RAM&CPU使用
開發者(模式)選項:
--dev               使用POA共識網絡,預設預配置設定一個開發者賬戶并且會自動開啟挖礦。
--dev.period value  開發者模式下挖礦周期 (0 = 僅在交易時) (預設: 0)
交易池選項:
--txpool.nolocals            為本地送出交易禁用價格豁免
--txpool.journal value       本地交易的磁盤日志:用于節點重新開機 (預設: "transactions.rlp")
--txpool.rejournal value     重新生成本地交易日志的時間間隔 (預設: 1小時)
--txpool.pricelimit value    加入交易池的最小的        gas               價格限制(預設: 1)
--txpool.pricebump value     價格波動百分比(相對之前已有交易) (預設: 10)
--txpool.accountslots value  每個帳戶保證可執行的最少交易槽數量  (預設: 16)
--txpool.globalslots value   所有帳戶可執行的最大交易槽數量 (預設: 4096)
--txpool.accountqueue value  每個帳戶允許的最多非可執行交易槽數量 (預設: 64)
--txpool.globalqueue value   所有帳戶非可執行交易最大槽數量  (預設: 1024)
--txpool.lifetime value      非可執行交易最大入隊時間(預設: 3小時)
性能調優的選項:
--cache value                配置設定給内部緩存的記憶體MB數量,緩存值(最低16 mb /資料庫強制要求)(預設:128)
--trie-cache-gens value      保持在記憶體中産生的trie node數量(預設:120)
帳戶選項:
--unlock value              需解鎖賬戶用逗号分隔
--password value            用于非互動式密碼輸入的密碼檔案
API 和控制台選項:
--rpc                       啟用HTTP-RPC伺服器
--rpcaddr value             HTTP-RPC伺服器接口位址(預設值:“localhost”)
--rpcport value             HTTP-RPC伺服器監聽端口(預設值:8545)
--rpcapi value              基于HTTP-RPC接口提供的API
--ws                        啟用WS-RPC伺服器
--wsaddr value              WS-RPC伺服器監聽接口位址(預設值:“localhost”)
--wsport value              WS-RPC伺服器監聽端口(預設值:8546)
--wsapi  value              基于WS-RPC的接口提供的API
--wsorigins value           websockets請求允許的源
--ipcdisable                禁用IPC-RPC伺服器
--ipcpath                   包含在datadir裡的IPC socket/pipe檔案名(轉義過的顯式路徑)
--rpccorsdomain value       允許跨域請求的域名清單(逗号分隔)(浏覽器強制)
--jspath loadScript         JavaScript加載腳本的根路徑(預設值:“.”)
--exec value                執行JavaScript語句(隻能結合console/attach使用)
--preload value             預加載到控制台的JavaScript檔案清單(逗号分隔)
網絡選項:
--bootnodes value    用于P2P發現引導的enode urls(逗号分隔)(對于light servers用v4+v5代替)
--bootnodesv4 value  用于P2P v4發現引導的enode urls(逗号分隔) (light server, 全節點)
--bootnodesv5 value  用于P2P v5發現引導的enode urls(逗号分隔) (light server, 輕節點)
--port value         網卡監聽端口(預設值:30303)
--maxpeers value     最大的網絡節點數量(如果設定為0,網絡将被禁用)(預設值:25)
--maxpendpeers value    最大嘗試連接配接的數量(如果設定為0,則将使用預設值)(預設值:0)
--nat value             NAT端口映射機制 (any|none|upnp|pmp|extip:<IP>) (預設: “any”)
--nodiscover            禁用節點發現機制(手動添加節點)
--v5disc                啟用實驗性的RLPx V5(Topic發現)機制
--nodekey value         P2P節點密鑰檔案
--nodekeyhex value      十六進制的P2P節點密鑰(用于測試)
礦工選項:
--mine                  打開挖礦
--minerthreads value    挖礦使用的CPU線程數量(預設值:8)
--etherbase value       挖礦獎勵位址(預設=第一個建立的帳戶)(預設值:“0”)
--targetgaslimit value  目标gas限制:設定最低gas限制(低于這個不會被挖?) (預設值:“4712388”)
--gasprice value        挖礦接受交易的最低gas價格
--extradata value       礦工設定的額外塊資料(預設=client version)
GAS 價格選項:
--gpoblocks value      用于檢查gas價格的最近塊的個數  (預設: 10)
--gpopercentile value  建議gas價參考最近交易的gas價的百分位數,(預設: 50)
虛拟機的選項:
--vmdebug        記錄VM及合約調試資訊
日志和調試選項:
--metrics            啟用metrics收集和報告
--fakepow            禁用proof-of-work驗證
--verbosity value    日志詳細度:0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3)
--vmodule value      每個子產品詳細度:以 <pattern>=<level>的逗号分隔清單 (比如 eth/*=6,p2p=5)
--backtrace value    請求特定日志記錄堆棧跟蹤 (比如 “block.go:271”)
--debug                     突出顯示調用位置日志(檔案名及行号)
--pprof                     啟用pprof HTTP伺服器
--pprofaddr value           pprof HTTP伺服器監聽接口(預設值:127.0.0.1)
--pprofport value           pprof HTTP伺服器監聽端口(預設值:6060)
--memprofilerate value      按指定頻率打開memory profiling    (預設:524288)
--blockprofilerate value    按指定頻率打開block profiling    (預設值:0)
--cpuprofile value          将CPU profile寫入指定檔案
--trace value               将execution trace寫入指定檔案
WHISPER 實驗選項:
--shh                        啟用Whisper
--shh.maxmessagesize value   可接受的最大的消息大小 (預設值: 1048576)
--shh.pow value              可接受的最小的POW (預設值: 0.2)
棄用選項:
--fast     開啟快速同步
--light    啟用輕用戶端模式
其他選項:
–help, -h    顯示幫助           

六.下載下傳火星節點配置檔案

由于國内以太坊節點非常稀少,并且國内外網絡不通暢等原因導緻國内伺服器同步區塊資料非常緩慢還容易丢包,由EthFans發起的星火節點計劃可以幫助我們加快同步速度。

下載下傳節點清單:        https://upyun-assets.ethfans.org/uploads/doc/file/b0c5266be42f43f1baf7207c432bede6.json?_upd=static-nodes.json               

下載下傳後将static-nodes.json檔案放在區塊存儲目錄下即可。

7.生成配置檔案

geth --datadir '/ethereum' --networkid 1  --syncmode fast --cache 1024 --rpc --rpcaddr '0.0.0.0' --rpcport 8545 --rpcapi 'web3,eth,net,personal,db,admin' --rpccorsdomain '*' dumpconfig > /ethereum/geth_config           

--networkid指定網絡ID 1代表主網絡 2代表測試網絡 沒有提供則預設測試網絡,亂寫代表建立私有鍊

8.背景啟動編寫啟動檔案

nohup geth --config /ethereum/geth_config  >> /var/log/geth.log  2>&1  &           

9.監控區塊同步日志

tail -f /var/log/geth.log           

10.進入控制台

geth attach /ethereum/geth.ipc           

11.使用指令檢視目前同步情況

eth.syncing
如果傳回的是false,證明同步完成了,可以使用目前節點。
否則會傳回同步狀态           

currentBlock為目前下載下傳到的區塊高度,請注意,下載下傳塊不等于同步資料了,下載下傳塊是一個簡單快速的過程,隻驗證相關的工作量證明,在下載下傳塊的同時geth也在一直下載下傳所有的區塊資料,當資料下載下傳完成後屆時才會處理曾經發生過的所有交易,重新組裝整個鍊。

12.api調用推薦位址

各程式設計語言現成類庫
Java:        https://github.com/web3j/web3j               
Python:        https://github.com/ethereum/web3.py               
PHP:        https://github.com/sc0Vu/web3.php               
NodeJs:        https://github.com/ethereum/we               
https://ethereum.github.io/go-ethereum/downloads/               
https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.9.18-f5382591.tar.gz               
tar -zxvf geth-linux-amd64-1.9.18-f5382591.tar.gz            
cd geth-linux-amd64-1.9.18-f5382591           
以太坊用戶端Geth指令用法-參數詳解
指令用法
geth [選項] 指令 [指令選項] [參數…]
指令:
account    管理賬戶
attach     啟動互動式JavaScript環境(連接配接到節點)
bug        上報bug Issues
console    啟動互動式JavaScript環境
copydb     從檔案夾建立本地鍊
dump       Dump(分析)一個特定的塊存儲
dumpconfig 顯示配置值
export     導出區塊鍊到檔案
import     導入一個區塊鍊檔案
init       啟動并初始化一個新的創世紀塊
js         執行指定的JavaScript檔案(多個)
license    顯示許可資訊
makecache  生成ethash驗證緩存(用于測試)
makedag    生成ethash 挖礦DAG(用于測試)
monitor    監控和可視化節點名額
removedb   删除區塊鍊和狀态資料庫
version    列印版本号
wallet     管理Ethereum預售錢包
help,h     顯示一個指令或幫助一個指令清單
ETHEREUM 配置選項:
--config value          TOML 配置檔案
--datadir “xxx”         資料庫和keystore密鑰的資料目錄
--keystore              keystore存放目錄(預設在datadir内)
--nousb                 禁用監控和管理USB硬體錢包
--networkid value       網絡辨別符(整型, 1=Frontier, 2=Morden (棄用), 3=Ropsten, 4=Rinkeby) (預設: 1)
--testnet               Ropsten網絡:預先配置的POW(proof-of-work)測試網絡
--rinkeby               Rinkeby網絡: 預先配置的POA(proof-of-authority)測試網絡
--syncmode "fast"       同步模式 ("fast", "full", or "light")
--ethstats value        上報ethstats service  URL (nodename:secret@host:port)
--identity value        自定義節點名
--lightserv value       允許LES請求時間最大百分比(0 – 90)(預設值:0) 
--lightpeers value      最大LES client peers數量(預設值:20)
--lightkdf              在KDF強度消費時降低key-derivation RAM&CPU使用
開發者(模式)選項:
--dev               使用POA共識網絡,預設預配置設定一個開發者賬戶并且會自動開啟挖礦。
--dev.period value  開發者模式下挖礦周期 (0 = 僅在交易時) (預設: 0)
交易池選項:
--txpool.nolocals            為本地送出交易禁用價格豁免
--txpool.journal value       本地交易的磁盤日志:用于節點重新開機 (預設: "transactions.rlp")
--txpool.rejournal value     重新生成本地交易日志的時間間隔 (預設: 1小時)
--txpool.pricelimit value    加入交易池的最小的        gas               價格限制(預設: 1)
--txpool.pricebump value     價格波動百分比(相對之前已有交易) (預設: 10)
--txpool.accountslots value  每個帳戶保證可執行的最少交易槽數量  (預設: 16)
--txpool.globalslots value   所有帳戶可執行的最大交易槽數量 (預設: 4096)
--txpool.accountqueue value  每個帳戶允許的最多非可執行交易槽數量 (預設: 64)
--txpool.globalqueue value   所有帳戶非可執行交易最大槽數量  (預設: 1024)
--txpool.lifetime value      非可執行交易最大入隊時間(預設: 3小時)
性能調優的選項:
--cache value                配置設定給内部緩存的記憶體MB數量,緩存值(最低16 mb /資料庫強制要求)(預設:128)
--trie-cache-gens value      保持在記憶體中産生的trie node數量(預設:120)
帳戶選項:
--unlock value              需解鎖賬戶用逗号分隔
--password value            用于非互動式密碼輸入的密碼檔案
API 和控制台選項:
--rpc                       啟用HTTP-RPC伺服器
--rpcaddr value             HTTP-RPC伺服器接口位址(預設值:“localhost”)
--rpcport value             HTTP-RPC伺服器監聽端口(預設值:8545)
--rpcapi value              基于HTTP-RPC接口提供的API
--ws                        啟用WS-RPC伺服器
--wsaddr value              WS-RPC伺服器監聽接口位址(預設值:“localhost”)
--wsport value              WS-RPC伺服器監聽端口(預設值:8546)
--wsapi  value              基于WS-RPC的接口提供的API
--wsorigins value           websockets請求允許的源
--ipcdisable                禁用IPC-RPC伺服器
--ipcpath                   包含在datadir裡的IPC socket/pipe檔案名(轉義過的顯式路徑)
--rpccorsdomain value       允許跨域請求的域名清單(逗号分隔)(浏覽器強制)
--jspath loadScript         JavaScript加載腳本的根路徑(預設值:“.”)
--exec value                執行JavaScript語句(隻能結合console/attach使用)
--preload value             預加載到控制台的JavaScript檔案清單(逗号分隔)
網絡選項:
--bootnodes value    用于P2P發現引導的enode urls(逗号分隔)(對于light servers用v4+v5代替)
--bootnodesv4 value  用于P2P v4發現引導的enode urls(逗号分隔) (light server, 全節點)
--bootnodesv5 value  用于P2P v5發現引導的enode urls(逗号分隔) (light server, 輕節點)
--port value         網卡監聽端口(預設值:30303)
--maxpeers value     最大的網絡節點數量(如果設定為0,網絡将被禁用)(預設值:25)
--maxpendpeers value    最大嘗試連接配接的數量(如果設定為0,則将使用預設值)(預設值:0)
--nat value             NAT端口映射機制 (any|none|upnp|pmp|extip:<IP>) (預設: “any”)
--nodiscover            禁用節點發現機制(手動添加節點)
--v5disc                啟用實驗性的RLPx V5(Topic發現)機制
--nodekey value         P2P節點密鑰檔案
--nodekeyhex value      十六進制的P2P節點密鑰(用于測試)
礦工選項:
--mine                  打開挖礦
--minerthreads value    挖礦使用的CPU線程數量(預設值:8)
--etherbase value       挖礦獎勵位址(預設=第一個建立的帳戶)(預設值:“0”)
--targetgaslimit value  目标gas限制:設定最低gas限制(低于這個不會被挖?) (預設值:“4712388”)
--gasprice value        挖礦接受交易的最低gas價格
--extradata value       礦工設定的額外塊資料(預設=client version)
GAS 價格選項:
--gpoblocks value      用于檢查gas價格的最近塊的個數  (預設: 10)
--gpopercentile value  建議gas價參考最近交易的gas價的百分位數,(預設: 50)
虛拟機的選項:
--vmdebug        記錄VM及合約調試資訊
日志和調試選項:
--metrics            啟用metrics收集和報告
--fakepow            禁用proof-of-work驗證
--verbosity value    日志詳細度:0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3)
--vmodule value      每個子產品詳細度:以 <pattern>=<level>的逗号分隔清單 (比如 eth/*=6,p2p=5)
--backtrace value    請求特定日志記錄堆棧跟蹤 (比如 “block.go:271”)
--debug                     突出顯示調用位置日志(檔案名及行号)
--pprof                     啟用pprof HTTP伺服器
--pprofaddr value           pprof HTTP伺服器監聽接口(預設值:127.0.0.1)
--pprofport value           pprof HTTP伺服器監聽端口(預設值:6060)
--memprofilerate value      按指定頻率打開memory profiling    (預設:524288)
--blockprofilerate value    按指定頻率打開block profiling    (預設值:0)
--cpuprofile value          将CPU profile寫入指定檔案
--trace value               将execution trace寫入指定檔案
WHISPER 實驗選項:
--shh                        啟用Whisper
--shh.maxmessagesize value   可接受的最大的消息大小 (預設值: 1048576)
--shh.pow value              可接受的最小的POW (預設值: 0.2)
棄用選項:
--fast     開啟快速同步
--light    啟用輕用戶端模式
其他選項:
–help, -h    顯示幫助           
下載下傳節點清單:        https://upyun-assets.ethfans.org/uploads/doc/file/b0c5266be42f43f1baf7207c432bede6.json?_upd=static-nodes.json               

下載下傳後将static-nodes.json檔案放在區塊存儲目錄下即可。

geth --datadir '/ethereum' --networkid 1  --syncmode fast --cache 1024 --rpc --rpcaddr '0.0.0.0' --rpcport 8545 --rpcapi 'web3,eth,net,personal,db,admin' --rpccorsdomain '*' dumpconfig > /ethereum/geth_config           
nohup geth --config /ethereum/geth_config  >> /var/log/geth.log  2>&1  &           
tail -f /var/log/geth.log           
geth attach /ethereum/geth.ipc           
eth.syncing
如果傳回的是false,證明同步完成了,可以使用目前節點。
否則會傳回同步狀态           

currentBlock為目前下載下傳到的區塊高度,請注意,下載下傳塊不等于同步資料了,下載下傳塊是一個簡單快速的過程,隻驗證相關的工作量證明,在下載下傳塊的同時geth也在一直下載下傳所有的區塊資料,當資料下載下傳完成後屆時才會處理曾經發生過的所有交易,重新組裝整個鍊。

各程式設計語言現成類庫
Java:        https://github.com/web3j/web3j               
Python:        https://github.com/ethereum/web3.py               
PHP:        https://github.com/sc0Vu/web3.php               
NodeJs:        https://github.com/ethereum/we