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