摘要:將返回進程碼查看實時查看日志關閉殺死進程同步節(jié)點結論目前來說和都是可以同步成功節(jié)點完全可以放在國外,同步速度會很快,使用連接執(zhí)行腳本就好有特殊需求國內阿里云也可以同步成功。
ETH公有鏈節(jié)點同步
最近區(qū)塊鏈公司很多都會搞發(fā)糖果活動,一般都能吸引幾萬粉絲,這就來了一個需求,給人家發(fā)糖果。主流的geth,parity,甚至imtoken錢包只能輸入地址一筆筆交易,幾萬筆交易人工根本無法完成,于是開始研究使用web3腳本群發(fā)交易。
在2017年7月25號,web3就已經發(fā)布web3v1.0.0-beta.9公測版本,但國內甚至國外大部分教程還停留在早期的版本,其中的坑不言而喻,只看這些文章是根本跑不通的,作者就是深受其害,最后參考官網文檔,github issue才最終完成。
web3原理通過RPC 調用與本地節(jié)點通信。web3可以與任何暴露了RPC接口的以太坊節(jié)點連接。
web3種類web3在github分為web3.js,web3j,web3.py,分別對應node,java,python三門語言,要數node star人數最多,作者接下來教程也是web3.js。
web3.js使用前置條件安裝node 最好使用v8.1,公測版web3使用大量異步操作,使用async等語法比較方便。
使用npm安裝web3,npm install web3 --save
linux或者mac環(huán)境(window環(huán)境下web3一直報錯,錢包問題也很大)
web3是與本地節(jié)點通信(遠程其實也行),所以必須同步一個以太坊節(jié)點
前三點相對比較容易,接下來主要講同步一個以太坊節(jié)點。
ETH公有鏈節(jié)點同步目前來說搞一個可用的以太坊節(jié)點有三種辦法
同步一個geth節(jié)點
同步一個parity節(jié)點
使用他人(包括節(jié)點服務商)同步的節(jié)點
第一次嘗試同步節(jié)點首先使用geth錢包下載直接同步,結果400w塊左右后永遠到不了終點,現在回想cpu,內存,硬盤網絡都有問題,想同步簡直做夢。過后論壇尋找原因,是因為國內節(jié)點少網絡環(huán)境差,解決方法發(fā)現國內有個星火節(jié)點的列表,教程大家可以搜索下,也成功配置但效果并不明顯,就不多說這個。
失敗原因:以太坊節(jié)點對內存,cpu,硬盤速度,網絡狀況要求都比較高,星火節(jié)點也只有36個節(jié)點,很多還沒能同步到最新塊,所以大家有條件還要多多參與,攜手共建區(qū)塊鏈美好未來。
接下來逛論壇發(fā)現錢包不只有geth還有parity輕錢包聽說國內效果不錯,換來臺i5處理器,8g內存,120g固態(tài)的電腦去同步,一天左右就同步成功了,但一直很不穩(wěn)定,過一會節(jié)點就會被遠程節(jié)點拉開距離,無法被web3使用。
失敗原因:使用任務管理器看cpu經常到99%,配置還低,加上公司網絡也不穩(wěn)定。還有parity在windows環(huán)境下可能運行也不是很穩(wěn)定。
發(fā)糖果日期漸漸到來,由于不確定節(jié)點是放在本地還是服務器好,服務器放國內還是國外好,geth還是parity,沖冠一怒得砸錢,于是在阿里云上配置了兩臺服務器,配置同為8g 4核 500ssd 百兆帶寬是剛需,由于之前經驗還選擇了高計算型,一臺在華東部署parity節(jié)點,另一臺部署geth節(jié)點在硅谷。結果都完成了華東的parity用了2天半,美國的geth用了一天半。
所用命令:geth --fast --cache=2048 --rpc --rpcapi personal,web3,eth,net --ws --wsorigins "*"
--fast 使用快速同步模式
--cache= 增大內存使用
--rpc --rpcapi personal,web3,eth,net
開啟rpc接口和personal等操作api,后邊rpcapi一定要寫這也是遇到的一個坑,如果沒有后期能使用基礎web3函數,但不能使用personal等API
--ws --wsorigins "*" 允許所有人使用ws連接
parity 官方提供了一個配置生成器,由于最后沒有在parity上開發(fā),好用配置項目可以自行添加
問題:linux服務器geth,parity命令后如何退出ssh繼續(xù)執(zhí)行,退出自動殺死執(zhí)行的進程,使用nohup不掛斷的運行命令,同時log輸出到output.log,修改命令如下。
nohup geth --fast --cache=2048 --rpc --rpcapi personal,web3,eth,net --ws --wsorigins "*" >> output.log 2>&1 & //將返回進程碼 tail -f output.log //查看實時查看日志 kill processNum //關閉geth殺死進程同步節(jié)點結論
目前來說parity和geth都是可以同步成功
節(jié)點完全可以放在國外,同步速度會很快,使用ssh連接執(zhí)行web3腳本就好有特殊需求國內阿里云也可以同步成功。
配置至少4核 8g 300G固態(tài)
geth使用fast模式,parity使用warp模式,都是快速同步,完全可以用于web3開發(fā)。這兩個模式默認也是開啟的為了保險才加上參數。
同步時候總會有一些錯誤,訣竅就是死等,geth同步完成后還會去重頭處理1000w多的數據不要驚慌等。geth偶爾會丟失異步失敗一些節(jié)點只要進程不停就死等。parity后期會很慢因為后邊區(qū)塊交易多也不要驚慌死等。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/23975.html
摘要:最后毅然決然的選擇自己同步節(jié)點的苦逼之路。三用連接發(fā)起智能合約交易要發(fā)起交易首先要解決的就是問題一,不可以用。自己同步節(jié)點就可以先解鎖在簽名交易,然后發(fā)送交易給其他節(jié)點。 一.前言 前文提到目前有一些公司提供公共的以太坊對外服務,就是以你可以調用他的web3接口,之前一直被兩個問題困擾,一個是覺得別人的節(jié)點不安全,還有初步嘗試后發(fā)現Infura節(jié)點沒有開放賬戶相關的方法。沒法使用web...
摘要:可以解鎖,也可以將交易代碼寫函數內。簽名交易同理封裝一個異步函數,實際上簽名交易分為兩個步驟簽名一個交易發(fā)送這個簽名的交易到區(qū)塊鏈。 一.開發(fā)環(huán)境安裝及其搭建 1.安裝node 最好v8的可以使用ES6語法2.安裝ganacheganache介紹:雖說真實發(fā)布必須要使用前文說到的三種方法geth,parity,或其它服務商,但是測試開發(fā)環(huán)境下,有一款本地基于內存的錢包,不需要等待確認交...
摘要:是以太坊開發(fā)的個人區(qū)塊鏈,可用于部署合約,開發(fā)應用程序和運行測試。安裝是一個用于與以太坊交互的庫。啟動以太坊測試區(qū)塊鏈服務器要部署智能合約,我們應該啟動測試以太坊服務器。最后,你將在以太坊合約中設置調用用戶對象時獲得的值。 將數據存儲在數據庫中是任何軟件應用程序不可或缺的一部分。無論如何控制該數據庫都有一個該數據的主控。區(qū)塊鏈技術將數據存儲到區(qū)塊鏈網絡內的區(qū)塊中。因此,只要某個節(jié)點與網...
摘要:是以太坊開發(fā)的個人區(qū)塊鏈,可用于部署合約,開發(fā)應用程序和運行測試。安裝是一個用于與以太坊交互的庫。啟動以太坊測試區(qū)塊鏈服務器要部署智能合約,我們應該啟動測試以太坊服務器。最后,你將在以太坊合約中設置調用用戶對象時獲得的值。 將數據存儲在數據庫中是任何軟件應用程序不可或缺的一部分。無論如何控制該數據庫都有一個該數據的主控。區(qū)塊鏈技術將數據存儲到區(qū)塊鏈網絡內的區(qū)塊中。因此,只要某個節(jié)點與網...
閱讀 768·2021-11-23 09:51
閱讀 3646·2021-11-15 11:38
閱讀 1027·2021-10-14 09:42
閱讀 3296·2021-09-29 09:35
閱讀 2204·2021-09-03 10:33
閱讀 818·2021-07-30 16:33
閱讀 1613·2019-08-30 15:55
閱讀 1901·2019-08-30 14:04