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