Ⅰ 以太坊 cd go-ethereum 、make geth超時問題
解決https://proxy.golang.org/github.com 報443 超時問題
make geth
go: github.com/Azure/[email protected]: Get "https://proxy.golang.org/github.com/%21azure/azure-storage-blob-go/@v/v0.7.0.mod": dial tcp 172.217.24.17:443: i/o timeout
make: *** [geth] Error 1
替換一個國內的代理地址
終端命令執行:
go env -w GOPROXY=https://goproxy.cn
重新執行make geth
Ⅱ 以太坊挖礦,需要什麼硬體配置
你好,根據我的經驗來說,1.首先搭機架,然後固定顯卡,再將CPU和風扇、內存、SSD硬碟插在主板的插槽內並連好電源和主板電源。
希望我的建議可以幫助到你,謝謝!
Ⅲ 以太坊多節點私有鏈部署
假設兩台電腦A和B
要求:
1、兩台電腦要在一個網路中,能ping通
2、兩個節點使用相同的創世區塊文件
3、禁用ipc;同時使用參數--nodiscover
4、networkid要相同,埠號可以不同
1.4 搭建私有鏈
1.4.1 創建目錄和genesis.json文件
創建私有鏈根目錄./testnet
創建數據存儲目錄./testnet/data0
創建創世區塊配置文件./testnet/genesis.json
1.4.2 初始化操作
cd ./eth_test
geth --datadir data0 init genesis.json
1.4.3 啟動私有節點
1.4.4 創建賬號
personal.newAccount()
1.4.5 查看賬號
eth.accounts
1.4.6 查看賬號余額
eth.getBalance(eth.accounts[0])
1.4.7 啟動&停止挖礦
啟動挖礦:
miner.start(1)
其中 start 的參數表示挖礦使用的線程數。第一次啟動挖礦會先生成挖礦所需的 DAG 文件,這個過程有點慢,等進度達到 100% 後,就會開始挖礦,此時屏幕會被挖礦信息刷屏。
停止挖礦,在 console 中輸入:
miner.stop()
挖到一個區塊會獎勵5個以太幣,挖礦所得的獎勵會進入礦工的賬戶,這個賬戶叫做 coinbase,默認情況下 coinbase 是本地賬戶中的第一個賬戶,可以通過 miner.setEtherbase() 將其他賬戶設置成 coinbase。
1.4.8 轉賬
目前,賬戶 0 已經挖到了 3 個塊的獎勵,賬戶 1 的余額還是0:
我們要從賬戶 0 向賬戶 1 轉賬,所以要先解鎖賬戶 0,才能發起交易:
發送交易,賬戶 0 -> 賬戶 1:
需要輸入密碼 123456
此時如果沒有挖礦,用 txpool.status 命令可以看到本地交易池中有一個待確認的交易,可以使用 eth.getBlock("pending", true).transactions 查看當前待確認交易。
使用 miner.start() 命令開始挖礦:
miner.start(1);admin.sleepBlocks(1);miner.stop();
新區塊挖出後,挖礦結束,查看賬戶 1 的余額,已經收到了賬戶 0 的以太幣:
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')
用同樣的genesis.json初始化操作
cd ./eth_test
geth --datadir data1 init genesis.json
啟動私有節點一,修改 rpcport 和port
可以通過 admin.addPeer() 方法連接到其他節點,兩個節點要要指定相同的 chainID。
假設有兩個節點:節點一和節點二,chainID 都是 1024,通過下面的步驟就可以從節點二連接到節點一。
首先要知道節點一的 enode 信息,在節點一的 JavaScript console 中執行下面的命令查看 enode 信息:
admin.nodeInfo.enode
" enode://@[::]:30303 "
然後在節點二的 JavaScript console 中執行 admin.addPeer(),就可以連接到節點一:
addPeer() 的參數就是節點一的 enode 信息,注意要把 enode 中的 [::] 替換成節點一的 IP 地址。連接成功後,節點一就會開始同步節點二的區塊,同步完成後,任意一個節點開始挖礦,另一個節點會自動同步區塊,向任意一個節點發送交易,另一個節點也會收到該筆交易。
通過 admin.peers 可以查看連接到的其他節點信息,通過 net.peerCount 可以查看已連接到的節點數量。
除了上面的方法,也可以在啟動節點的時候指定 --bootnodes 選項連接到其他節點。 bootnode 是一個輕量級的引導節點,方便聯盟鏈的搭建 下一節講 通過 bootnode 自動找到節點
參考: https://cloud.tencent.com/developer/article/1332424
Ⅳ Geth實現以太賬戶之間轉賬
1、打開控制台
F:\Geth>geth --datadir "data" console
2、查看目前所擁有的賬戶列表
> eth.accounts
[""]
3、新建賬戶
> personal.newAccount('123456')
""
4、查看目前所擁有的賬戶列表
> eth.accounts
["", "
efed9a8240"]
5、查看賬戶余額
> eth.getBalance(eth.accounts[0])
665000000000000000000
> eth.getBalance(eth.accounts[1])
0
6、定義變數
> var acc1=eth.accounts[0]
undefined
> acc1
""
> var acc2=eth.accounts[1]
undefined
> acc2
""
7、轉賬
> eth.sendTransaction({from: acc1 , to: acc2, value: web3.toWei(10,"ether")})
Error: authentication needed: password or unlock
at web3.js:3143:20
at web3.js:6347:15
at web3.js:5081:36
at <anonymous>:1:1
(賬戶被鎖報錯)
8、解鎖賬戶
> personal.unlockAccount(acc1,"123456")
true
9、轉賬
> eth.sendTransaction({from: acc1 , to: acc2, value: web3.toWei(10,"ether")})
INFO [11-14|14:34:24.526] Setting new local account address=0xF4f
INFO [11-14|14:34:24.551] Submitted transaction fullhash=0x98
recipient=0x1DfA2
"0x98"
10、查看賬戶余額
> eth.getBalance(acc1)
665000000000000000000
> eth.getBalance(acc2)
0
11、挖礦
>miner.start(1);admin.sleepBlocks(20);miner.stop();
12、挖礦結束查看賬戶余額
> eth.getBalance(acc2)
10000000000000000000
(歡迎打賞,一分也是愛)
Ⅳ 如何搭建公鏈
搭建以太坊公鏈,其實就是在本地運行一個以太坊節點,然後連接到以太坊主網。考慮到主網的區塊會佔用很大的硬碟空間,啟動節點的時候可以指定存放數據的目錄,運行命令:./geth --ipcpath gethdir/geth.ipc --datadir gethdir console 成功啟動節點後,進入控制台交互界面,主網的區塊信息會主動同步。
Ⅵ CentOS 6.5上搭建以太坊私有鏈,編譯時報錯: make: *** [geth] Error 1,請各位大神指教
build/env.sh go run build/ci.go install ./cmd/geth
make: *** [geth] Error 1
沒有這個目錄,或者這個目錄許可權不夠
Ⅶ ETH開發實踐——批量發送交易
在使用同一個地址連續發送交易時,每筆交易往往不可能立即到賬, 當前交易還未到賬的情況下,下一筆交易無論是通過 eth.getTransactionCount() 獲取nonce值來設置,還是由節點自動從區塊中查詢,都會獲得和前一筆交易同樣的nonce值,這時節點就會報錯 Error: replacement transaction underpriced
在構建一筆新的交易時,在交易數據結構中會產生一個nonce值, nonce是當前區塊鏈下,發送者(from地址)發出的交易(成功記錄進區塊的)總數, 再加上1。例如新構建一筆從A發往B的交易,A地址之前的交易次數為10,那麼這筆交易中的nonce則會設置成11, 節點驗證通過後則會放入交易池(txPool),並向其他節點廣播,該筆交易等待礦工將其打包進新的區塊。
那麼,如果在先構建並發送了一筆從地址A發出的,nonce為11的交易,在該交易未打包進區塊之前, 再次構建一筆從A發出的交易,並將它發送到節點,不管是先通過web3的eth.getTransactionCount(A)獲取到的過往的交易數量,還是由節點自行填寫nonce, 後面的這筆交易的nonce同樣是11, 此時就出現了問題:
實際場景中,會有批量從一個地址發送交易的需求,首先這些操作可能也應該是並行的,我們不會等待一筆交易成功寫入區塊後再發起第二筆交易,那麼此時有什麼好的解決辦法呢?先來看看geth節點中交易池對交易的處理流程
如之前所說,構建一筆交易時如果不手動設置nonce值,geth節點會默認計算發起地址此前最大nonce數(寫入區塊的才算數),然後將其加上1, 然後將這筆交易放入節點交易池中的pending隊列,等到節點將其打包進區塊。
構建交易時,nonce值是可以手動設置的,如果當前的nonce本應該設置成11, 但是我手動設置成了13, 在節點收到這筆交易時, 發現pending隊列中並沒有改地址下nonce為11及12的交易, 就會將這筆nonce為13的交易放入交易池的queued隊列中。只有當前面的nonce補齊(nonce為11及12的交易被發現並放入pending隊列)之後,才會將它放入pending隊列中等待打包。
我們把pending隊列中的交易視為可執行的,因為它們可能被礦工打包進最新的區塊。 而queue隊列因為前面的nonce存在缺失,暫時無法被礦工打包,稱為不可執行交易。
那麼實際開發中,批量從一個地址發送交易時,應該怎麼辦呢?
方案一:那麼在批量從一個地址發送交易時, 可以持久化一個本地的nonce,構建交易時用本地的nonce去累加,逐一填充到後面的交易。(要注意本地的nonce可能會出現偏差,可能需要定期從區塊中重新獲取nonce,更新至本地)。這個方法也有一定的局限性,適合內部地址(即只有這個服務會使用該地址發送交易)。
說到這里還有個坑,許多人認為通過 eth.getTransactionCount(address, "pending") ,第二個參數為 pending , 就能獲得包含本地交易池pending隊列的nonce值,但是實際情況並不是這樣, 這里的 pending 只包含待放入打包區塊的交易, 假設已寫入交易區塊的數量為20, 又發送了nonce為21,22,23的交易, 通過上面方法取得nonce可能是21(前面的21,22,23均未放入待打包區塊), 也可能是22(前面的21放入待打包區塊了,但是22,23還未放入)。
方案二是每次構建交易時,從geth節點的pending隊列取到最後一筆可執行交易的nonce, 在此基礎上加1,再發送給節點。可以通過 txpool.content 或 txpool.inspect 來獲得交易池列表,裡面可以看到pending及queue的交易列表。
啟動節點時,是可以設置交易池中的每個地址的pending隊列的容量上限,queue隊列的上容量上限, 以及整個交易池的pending隊列和queue隊列的容量上限。所以高並發的批量交易中,需要增加節點的交易池容量。
當然,除了擴大交易池,控制發送頻率,更要設置合理的交易手續費,eth上交易寫入區塊的速度取決於手續費及eth網路的擁堵狀況,發送每筆交易時,設置合理的礦工費用,避免大量的交易積壓在交易池。
Ⅷ Geth 控制台使用及 Web3.js 使用
在以太坊的DAPP開發中,需要 頁面開發 和 智能合約 開發,頁面開發需要 H5 , 智能合約 開發用 Solidity 實現。頁面和以太坊智能合約交互,就需要使用 Web3.js 。
Geth 控制台(REPL)實現了所有的 web3 API 及 Admin API ,如果你對Geth命令行不太熟悉,請參考之前的文章。
以太坊客戶端Geth常用命令詳解
重定向日誌到文件
使用geth console啟動時,會在當前的交互界面下時不時出現日誌。
可以使用以下方式把日誌輸出到文件。
可以新開一個命令行終端輸入以下命令查看日誌:
重定向另一個終端
也可以把日誌重定向到另一個終端,先在想要看日誌的終端輸入:
就可以獲取到終端編號,如:/dev/test
然後另一個終端使用:
啟動geth, 這是日誌就輸出到另一個終端。
如果不想看到日誌還可以重定向到空終端:
日誌級別控制
使用–verbosity可以控制日誌級別,如不想看到日誌還可以使用:
另外一個啟動geth的方法是連接到一個geth節點:
Ⅸ 挖礦挖以太坊(ETH)搭配什麼電源好
CPU
intel 奔騰G4560
¥390
散熱器 九州風神玄冰400 ¥60
主板 磐正B250A-BTC ¥699
內存 金士頓8G 2400 ¥364
顯卡 影馳GTX1060黑將*6 ¥8994
硬碟 影馳鐵甲戰將120G SSD ¥359
機箱 6卡挖礦機架 ¥999
電源 欣隆源Hin1600W-ATXG1 ¥425
轉接卡 PCIE X1轉X16轉接卡*6 ¥180
鍵鼠裝 用戶自選 ----
顯示器 用戶自選 ----
Ⅹ 以太坊如何挖礦
目前市場上主流的以太坊礦機大多來自比特大陸、嘉楠耘智,不過隨著以太坊價格的下跌,挖礦帶來的利潤已經十分微薄,投資者可以選擇在數字貨幣交易所進行以太坊的交易投資。目前市場上主流的數字貨幣交易所有幣安、火幣網、比特網等。