方偉的博客
          j2ee技術(shù)、網(wǎng)絡(luò)、web等,同名的人真多,我的QQ是20025404
          posts - 21,comments - 14,trackbacks - 0

          隨筆分類(27)

          最新隨筆

          搜索

          •  

          最新評(píng)論

          java源碼示例,bitcoin解析助記詞(或私鑰):
          1.BIP44,P2PKH,xpub
          即1開(kāi)頭的地址。

          2.BIP49,P2SH-P2WPKH,ypub
          即3開(kāi)頭的地址。

          3.BIP84,P2WPKH,zpub
          即bc1開(kāi)頭的地址。

          網(wǎng)上代碼大都只能正常獲取1開(kāi)頭和bc1開(kāi)頭的地址,但3開(kāi)頭的地址大部分參考算法都是錯(cuò)的。
          這個(gè)示例是跟tokenpocket和imtoken對(duì)比過(guò)都一致的。

          https://download.csdn.net/download/henry14760002630/61932972
          posted @ 2021-12-13 17:32 方偉的博客 閱讀(643) | 評(píng)論 (0)編輯 收藏
          java源碼示例,bitcoin解析助記詞(或私鑰):
          1.BIP44,P2PKH,xpub
          即1開(kāi)頭的地址。

          2.BIP49,P2SH-P2WPKH,ypub
          即3開(kāi)頭的地址。

          3.BIP84,P2WPKH,zpub
          即bc1開(kāi)頭的地址。

          網(wǎng)上代碼大都只能正常獲取1開(kāi)頭和bc1開(kāi)頭的地址,但3開(kāi)頭的地址大部分參考算法都是錯(cuò)的。
          這個(gè)示例是跟tokenpocket和imtoken對(duì)比過(guò)都一致的。

          https://download.csdn.net/download/henry14760002630/61932972
          posted @ 2021-12-13 17:32 方偉的博客 閱讀(643) | 評(píng)論 (0)編輯 收藏

           1.服務(wù)器

          需要300G SSD(建議NVMe)硬盤(pán),最好是裸硬盤(pán),不建議用機(jī)械盤(pán)。

          2.帶寬

          建議國(guó)外服務(wù)器,10M以上,不需要cn2線路

          3.操作系統(tǒng)

          建議centos7/8,或ubuntu,這里均以centos為例

          4.準(zhǔn)備環(huán)境:

          yum update -y

          yum install screen iftop iotop -y

          4.1.安裝golang

          yum install golang -y

          或編譯安裝


          *注意:如果使用的 Go 版本是 1.13 及以上 (推薦),如果不設(shè)置以下命令編譯源碼時(shí)可能會(huì)出錯(cuò)
          go env -w GO111MODULE=on
          go env -w GOPROXY=https://goproxy.io,direct
           

          5.創(chuàng)建一個(gè)screen

          screen -S heco

          *注意1:最后退出時(shí)用ctrl+ad(順序按a和d字母即可),不要用exit或ctrl+d退出會(huì)話。

          *注意2:退出會(huì)話后,可以用screen -x heco重新連接到會(huì)話。

          6.安裝heco客戶端

          #這里我的數(shù)據(jù)目錄,可以根據(jù)需要自行更改

          mkdir -p /data/heco/data

          #下載最新版本并編譯

          cd /root
          wget -O heco-chain-1.2.1.tar.gz https://github.com/stars-labs/heco-chain/archive/refs/tags/v1.2.1.tar.gz
          tar -xvf heco-chain-1.2.1.tar.gz
          rm -fr heco-chain-1.2.1.tar.gz
          cd heco-chain-1.2.1
          make all


          7.檢查安裝是否成功

          /root/heco-chain-1.2.1/build/bin/geth  console


          8.設(shè)置防火墻
          firewall-cmd --permanent --zone=public --add-port=32668/tcp
          firewall-cmd --permanent --zone=public --add-port=8545/tcp
          firewall-cmd --reload
          不懂防火墻配置的,可以先禁用防火墻,關(guān)于firewalld的使用技巧,之后會(huì)單獨(dú)寫(xiě)一篇教程

           

          9.啟動(dòng)節(jié)點(diǎn)

          ulimit -n 65535

          /root/heco-chain-1.2.1/build/bin/geth --datadir /data/heco/data --syncmode "fast" --cache=8096 --maxpeers 50 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,debug,personal,net,admin,eth" --http.corsdomain "*" --allow-insecure-unlock
           

          *然后按ctrl+ad回到主會(huì)話即可


          10.測(cè)試驗(yàn)證

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545

          (如果已經(jīng)追上最新高度,result會(huì)返回false)

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545

          (節(jié)點(diǎn)未同步完成可能會(huì)返回0)

          11.停止節(jié)點(diǎn)

          方式1:(建議,畢竟停止后還要啟動(dòng)不是)

          screen -r heco

          按ctrl+c,等待一會(huì)即可看到節(jié)點(diǎn)停止

           

          12.接口文檔參考(HECO的文檔與以太坊基本相同)

          RPC接口文檔,如:

          以太坊JSON RPC手冊(cè) / eth_call - 匯智網(wǎng)


          其它參考:

          HECO鏈github地址:GitHub - stars-labs/heco-chain: Huobi Eco Chain client based on the go-ethereum fork

          主網(wǎng)瀏覽器:HecoInfo (HT) Blockchain Explorer


          13.注意事項(xiàng)

          *同步到最高區(qū)塊所需時(shí)間:

          需要看網(wǎng)絡(luò)帶寬和磁盤(pán)io性能,用NVMe的硬盤(pán),讀寫(xiě)1000到2000左右,100M的國(guó)外非cn2帶寬,從0開(kāi)始同步,大概需要小半天左右。

          *如果2天還沒(méi)有追上,或者最后100個(gè)塊始終追不上,極有可能是服務(wù)器磁盤(pán)io存在瓶頸,不建議用機(jī)械盤(pán),不建議用虛擬機(jī)(磁盤(pán)不建議做虛擬化),否則io速度不夠用。

          *硬盤(pán)目前實(shí)際會(huì)占用211G左右。

          *相比eth,bsc,heco的資源消耗和空間占用非常低,一般可以與eth節(jié)點(diǎn)部署在同一臺(tái),以節(jié)省成本。

          posted @ 2021-11-14 23:37 方偉的博客 閱讀(1009) | 評(píng)論 (0)編輯 收藏

          前言:zilliqa開(kāi)發(fā)用的RPC節(jié)點(diǎn)只需要啟動(dòng)個(gè)seed節(jié)點(diǎn)即可,非常方便,40多G空間,幾十分鐘就可以同步完,資源占用極小。否則如果部署full節(jié)點(diǎn)就不是這么簡(jiǎn)單了。

           

          1.服務(wù)器

          zilliqa的seed節(jié)點(diǎn) 需要100G SSD(建議NVMe)硬盤(pán),實(shí)際數(shù)據(jù)占用40多G,docker占用1.3G多。cpu內(nèi)存均不需要太高,4核8G足夠。

          2.帶寬

          建議國(guó)外服務(wù)器,10M以上,不需要cn2線路

          3.操作系統(tǒng)

          建議centos7/8,或ubuntu,這里均以centos為例

          4.準(zhǔn)備環(huán)境:

          yum update -y

          yum install screen iftop iotop -y

          4.1.安裝docker

          略,不會(huì)的可以搜索或參考:

          CentOS Docker 安裝 | 菜鳥(niǎo)教程

          5.創(chuàng)建一個(gè)screen

          screen -S zil

          *注意1:最后退出時(shí)用ctrl+ad(順序按a和d字母即可),不要用exit或ctrl+d退出會(huì)話。

          *注意2:退出會(huì)話后,可以用screen -x heco重新連接到會(huì)話。

          6.docker模式安裝

          mkdir /root/seed
          cd /root/seed
          wget https://mainnet-join.zilliqa.com/seed-configuration.tar.gz
          tar -xvf seed-configuration.tar.gz

          7.設(shè)置防火墻
          firewall-cmd --permanent --zone=public --add-port=33133/tcp
          firewall-cmd --permanent --zone=public --add-port=4201/tcp
          firewall-cmd --reload
          不懂防火墻配置的,可以先禁用防火墻,關(guān)于firewalld的使用技巧,之后會(huì)單獨(dú)寫(xiě)一篇教程

          8.啟動(dòng)seed節(jié)點(diǎn)(docker模式)

          cd /root/seed
          sh /root/seed/launch_docker.sh

          按提示輸入,注意ip要填寫(xiě)下(盡量服務(wù)器本機(jī)具備ipv4的公網(wǎng)ip)

          成功后,會(huì)提示:

          Use 'docker ps' to check the status of the docker
          Use 'docker stop zilliqa' to terminate the container
          Use 'tail -f zilliqa-00001-log.txt' to see the runtime log

          If you have successfully completed the above steps, 
          you should have a functioning seed node that exposes an RPC API on localhost:4201. 
          You may further check the logs at zilliqa-00001-log.txt.

          注意,默認(rèn)4201端口暫時(shí)沒(méi)有打開(kāi),這里翻譯為人話,就是必須等同步完所有區(qū)塊數(shù)據(jù),才會(huì)開(kāi)放4201端口。

          9.查看日志

          tail -f /root/seed/zilliqa-00001-log.txt

          tail -f /root/seed/py_download_incr_DB.log

          這里可以看到下載的日志


          10.測(cè)試驗(yàn)證

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetNetworkId","params":[],"id":1}' http://127.0.0.1:4201

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetBlockchainInfo","params":[],"id":1}' http://127.0.0.1:4201

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetLatestDsBlock","params":[],"id":1}' http://127.0.0.1:4201

           

          11.停止節(jié)點(diǎn)

          docker stop zilliqa

          注意,重啟docker可能不會(huì)自動(dòng)啟動(dòng)zilliqa的服務(wù),可以通過(guò):

          docker exec -it zilliqa /bin/bash

          進(jìn)入docker的shell,執(zhí)行:

          ps -ef

          查看是否有zilliqa的進(jìn)程,如果重啟服務(wù)器后,端口一直沒(méi)有偵聽(tīng),要注意下是否真的有啟動(dòng)起來(lái)zilliqa進(jìn)程。

           

          12.接口文檔參考

          RPC接口文檔,如:

          Introduction | Zilliqa Developer Portal

          Introduction | Zilliqa Developer Portal

          Introduction | Zilliqa Developer Portal

          其它參考:

          Zilliqa鏈github地址:

          GitHub - Zilliqa/Zilliqa: Zilliqa is the world's first high-throughput public blockchain platform - designed to scale to thousands ​of transactions per second.主網(wǎng)瀏覽器:

          https://viewblock.io/zilliqa
          https://devex.zilliqa.com/
          https://explorer.zilliqa.com/

          ZilLab Explorer -- Mainnet

          13.注意事項(xiàng)

          *同步到最高區(qū)塊大概最快20分鐘左右。

          *相比來(lái)說(shuō),seed節(jié)點(diǎn)的資源和空間消耗非常低,一般可以與eth等節(jié)點(diǎn)部署在同一臺(tái),以節(jié)省成本。

          posted @ 2021-11-14 23:37 方偉的博客 閱讀(266) | 評(píng)論 (0)編輯 收藏

          1.服務(wù)器

          需要1T NVMe 硬盤(pán),最好是裸硬盤(pán),云盤(pán)io性能太差,建議物理機(jī)(裸金屬主機(jī))+本地SSD。

          2.帶寬

          越高越好,建議國(guó)外服務(wù)器,1G帶寬不限流量

          3.操作系統(tǒng)

          建議centos7/8,或ubuntu,這里均以centos為例

          4.準(zhǔn)備環(huán)境:

          yum update -y

          yum install screen iftop iotop -y

          5.創(chuàng)建一個(gè)screen

          screen -S btc

          *注意1:最后退出時(shí)用ctrl+ad(順序按a和d字母即可),絕對(duì)不要用exit或ctrl+d退出會(huì)話。

          *注意2:退出會(huì)話后,可以用screen -r btc重新連接到會(huì)話。這樣可以保持在shell下運(yùn)行,網(wǎng)絡(luò)中斷不會(huì)影響。

          6.安裝bitcoin客戶端

          #這里我的數(shù)據(jù)目錄,可以根據(jù)需要自行更改

          mkdir -p /data1/btc/data

          #下載最新版本,今天的最新版本是22.0

          cd /root
          wget -O bitcoin-22.0.tar.gz https://bitcoincore.org/bin/bitcoin-core-22.0/bitcoin-22.0-x86_64-linux-gnu.tar.gz
          tar -zxvf bitcoin-22.0.tar.gz

          7.編輯并上傳配置文件:/data1/btc/bitcoin.conf

          datadir=/data1/btc/data
          wallet=btc20211107    #隨便取個(gè)名字,其實(shí)用不到這個(gè)
          testnet=0    # 0 - 主網(wǎng) 1 - 測(cè)試網(wǎng)
          regtest=0    # 是否以私有鏈模式運(yùn)行:0 - 否 1 - 是
          #gen=0        # 設(shè)置 gen=1 以嘗試比特幣挖礦
          #daemon=1    # 后臺(tái)執(zhí)行

          #proxy=127.0.0.1:9050 # 是否使用socks5代理,默認(rèn)關(guān)閉
          #bind=<addr>   # 注釋此行,表示使用默認(rèn)監(jiān)聽(tīng)地址
          #whitebind=<addr>
          #addnode=69.164.218.197  # 可添加多個(gè)
          #addnode=10.0.0.2:8333
          #connect=69.164.218.197
          #listen=1
          #maxconnections=10    #入站/出站最大連接數(shù)

          server=1    # 是否啟動(dòng)JSON-RPC接口: 0 - 不啟動(dòng) 1 - 啟動(dòng)
          txindex=1
          rpcbind=0.0.0.0
          rpcport=8432        #端口可以自行修改
          rpcuser=admin        #用戶名自行修改
          rpcpassword=123456    #密碼自行修改,但最好不要有特殊字符,像@
          rpcallowip=0.0.0.0/0    #可以添加多個(gè)
          #rpcallowip=0.0.0.0/0    #可以添加多個(gè)
          #rpcallowip=192.168.0.0/16
          #rpcconnect=127.0.0.1

          #txconfirmtarget=6    #交易最小確認(rèn)數(shù),默認(rèn)值:6
          #paytxfee=0.000x    #paytxfee:每次發(fā)送比特幣時(shí)的交易費(fèi)

          #txconfirmtarget=n
          #paytxfee=0.000x
          #keypool=100
          #prune=550

          #min=1                #是否啟動(dòng)后最小化
          #minimizetotray=1    #是否最小化到系統(tǒng)托盤(pán)
          8.設(shè)置防火墻
          firewall-cmd --permanent --zone=public --add-port=8432/tcp
          firewall-cmd --permanent --zone=public --add-port=8433/tcp
          firewall-cmd --reload
          不懂防火墻配置的,可以直接先禁用防火墻,關(guān)于firewalld的使用技巧,之后會(huì)單獨(dú)寫(xiě)一篇教程

          9.啟動(dòng)客戶端

          ulimit -n 65535
          cd /root/bitcoin-22.0
          /root/bitcoin-22.0/bin/bitcoind -port=8433 -conf=/data1/btc/bitcoin.conf

          *然后按ctrl+ad回到主會(huì)話即可
          10.測(cè)試驗(yàn)證(以下列出幾種方式,可以看自己喜好)

          curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id": "1", "method": "getindexinfo", "params": []}' -H 'content-type: text/plain;' http://127.0.0.1:8432/

          curl --data-binary '{"jsonrpc":"1.0","id":"1","method":"getindexinfo","params":[]}' -H 'content-type:text/plain;' http://admin:123456@127.0.0.1:8432/

          或:

          /root/bitcoin-22.0/bin/bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=admin -rpcpassword=123456 -rpcport=8432 getindexinfo

          11.停止節(jié)點(diǎn)

          方式1:(建議,畢竟停止后還要啟動(dòng)不是)

          screen -r btc

          按ctrl+c,等待一會(huì)即可看到節(jié)點(diǎn)停止

          方式2:

          任意會(huì)話中輸入命令:

          /root/bitcoin-22.0/bin/bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=admin -rpcpassword=123456 -rpcport=8432 stop

          12.接口文檔參考

          https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
          https://developer.bitcoin.org/reference/rpc/index.html

          太多了,大家可以搜下,網(wǎng)上有很多

          13.注意事項(xiàng)

          同步到最高區(qū)塊所需時(shí)間:

          需要看網(wǎng)絡(luò)帶寬和磁盤(pán)io性能,我用NVMe的裸盤(pán),讀寫(xiě)1500到2000左右,1G的國(guó)外帶寬,大概同步幾個(gè)小時(shí)即可(沒(méi)有具體去算,應(yīng)該5、6個(gè)小時(shí),最高不到12個(gè)小時(shí))。

          帶寬最高使用到100MB/s左右。

          如果花了一天以上沒(méi)有同步到最新,有可能是服務(wù)器存在瓶頸,還是建議用國(guó)外物理機(jī),10M帶寬基本上不怎么夠用,建議至少100M的帶寬,不需要cn2線路,成本并不高。

          posted @ 2021-11-14 23:36 方偉的博客 閱讀(1049) | 評(píng)論 (0)編輯 收藏

          1.服務(wù)器

          需要3T(建議4T) NVMe 硬盤(pán),最好是裸硬盤(pán),云盤(pán)io性能太差,建議物理機(jī)(裸金屬主機(jī))+本地SSD。

          *注意,bsc節(jié)點(diǎn)對(duì)硬件要求是我見(jiàn)過(guò)的所有鏈中最高的,強(qiáng)烈建議獨(dú)立使用一臺(tái)高配置服務(wù)器。

          2.帶寬

          越高越好,建議國(guó)外服務(wù)器,1G帶寬不限流量

          3.操作系統(tǒng)

          建議centos7/8,或ubuntu,這里均以centos為例

          4.準(zhǔn)備環(huán)境:

          yum update -y

          yum install screen iftop iotop -y

          4.1.安裝golang

          yum install golang -y

          或編譯安裝:

          cd /root/
          wget https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz
          tar zxvf go1.4-bootstrap-20170531.tar.gz
          cd /root/go/src/
          ./all.bash
           

          5.創(chuàng)建一個(gè)screen

          screen -S bsc

          *注意1:最后退出時(shí)用ctrl+ad(順序按a和d字母即可),絕對(duì)不要用exit或ctrl+d退出會(huì)話。

          *注意2:退出會(huì)話后,可以用screen -r bsc重新連接到會(huì)話。這樣可以保持在shell下運(yùn)行,網(wǎng)絡(luò)中斷不會(huì)影響。

          6.安裝bsc客戶端

          #這里我的數(shù)據(jù)目錄,可以根據(jù)需要自行更改

          mkdir -p /data/bsc/data

          #下載最新版本

          cd /root
          wget -O binance-chain-v1.1.4.tar.gz https://github.com/binance-chain/bsc/archive/refs/tags/v1.1.4.tar.gz
          tar -xvf binance-chain-v1.1.4.tar.gz
          rm -fr binance-chain-v1.1.4.tar.gz

          編譯:

          cd /root/bsc-1.1.4
          make all
          6.1.檢查安裝是否成功

          /root/bsc-1.1.4/build/bin/geth version

           

          7.編輯并上傳配置文件:

          bsc-mainnet配置文件.zip-以太坊文檔類資源-CSDN下載

          config.toml和genesis.json兩個(gè)文件放到/data/bsc/目錄下。(該目錄可以自行修改)


          8.設(shè)置防火墻
          firewall-cmd --permanent --zone=public --add-port=30311/tcp
          firewall-cmd --permanent --zone=public --add-port=8575/tcp
          firewall-cmd --permanent --zone=public --add-port=8576/tcp
          firewall-cmd --reload
          不懂防火墻配置的,可以先禁用防火墻,關(guān)于firewalld的使用技巧,之后會(huì)單獨(dú)寫(xiě)一篇教程

          9.1.下載最新的snapshot數(shù)據(jù),以加快同步實(shí)際

          #最新snapshots參加:https://github.com/binance-chain/bsc-snapshots
          cd /data/bsc/data
          wget -O geth.tar.gz 'https://s3.ap-northeast-1.amazonaws.com/dex-bin.bnbstatic.com/geth-20211031.tar.gz?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO&Signature=ESK5xmr5f1AIK4Mr6our%2FALXzQk%3D&Expires=1638310885'

          tar zxvf geth.tar.gz

          *這里要下載很久,所以帶寬要盡可能高。
          *解壓后,注意目錄結(jié)構(gòu)可能要調(diào)整下,保持chaindata和keystore那一級(jí)目錄直接在/data/bsc/data/目錄下,如果不在的話,自己mv到那個(gè)目錄下。

           

          9.2.啟動(dòng)客戶端

          #先init,很多人沒(méi)有執(zhí)行這一步,導(dǎo)致下面啟動(dòng)節(jié)點(diǎn)同步出錯(cuò)

          /root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=10240 init /data/bsc/genesis.json
           

          #啟動(dòng)節(jié)點(diǎn)(上面的init只要執(zhí)行一次,之后啟動(dòng)節(jié)點(diǎn)不要再執(zhí)行了)

          ulimit -n 65535
          /root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=8192 --rpc.allow-unprotected-txs --txlookuplimit 0 --allow-insecure-unlock

          *然后按ctrl+ad回到主會(huì)話即可


          10.測(cè)試驗(yàn)證

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8575

          (如果已經(jīng)追上最新高度,result會(huì)返回false)

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8575

           

          11.停止節(jié)點(diǎn)

          方式1:(建議,畢竟停止后還要啟動(dòng)不是)

          screen -r bsc

          按ctrl+c,等待一會(huì)即可看到節(jié)點(diǎn)停止

           

          12.接口文檔參考

          RPC接口文檔同eth文檔,如:

          以太坊JSON RPC手冊(cè) / eth_call - 匯智網(wǎng)


          其它參考:

          BSC鏈github地址:https://github.com/binance-chain/bsc

          主網(wǎng)瀏覽器:https://bscscan.com/

          主網(wǎng)鏈官方部署文檔:https://docs.binance.org/smart-chain/developer/fullnode.html
          私有鏈官方部署文檔:https://docs.binance.org/smart-chain/developer/deploy/local.html


          13.注意事項(xiàng)

          *最大文件打開(kāi)數(shù)必須修改,很多人遇到bsc客戶端經(jīng)常被kill,就是達(dá)到了最大文件打開(kāi)數(shù)限制,導(dǎo)致被操作系統(tǒng)自動(dòng)kill。

          *同步到最高區(qū)塊所需時(shí)間:

          需要看網(wǎng)絡(luò)帶寬和磁盤(pán)io性能,我用NVMe的裸盤(pán),讀寫(xiě)1500到2000左右,1G的國(guó)外帶寬,基于最新snapshot同步,大概需要3天左右。

          *帶寬需要100M,建議1G,磁盤(pán)io越高越好,如果5天還沒(méi)有追上,或者高度經(jīng)常落后,極有可能是服務(wù)器磁盤(pán)io存在瓶頸

          *硬盤(pán)最好4T空間,否則區(qū)塊數(shù)據(jù)都要1.9個(gè)T,如果只有2T空間根本不夠用。

          *雖然用snapshot+fast模式同步,但同步到最新高度后,依然會(huì)自動(dòng)切換為full node模式,這是正常現(xiàn)象,不用疑惑,也不要?jiǎng)h除重新同步。

          *再次強(qiáng)調(diào)bsc非常耗資源,aws和阿里云的云盤(pán)性能根本不夠,除非使用本地ssd才可以,而且bsc同步到最新高度后,對(duì)帶寬的使用依然很高,建議網(wǎng)絡(luò)不要按流量付費(fèi)的,否則費(fèi)用會(huì)高到無(wú)法承受。

          *建議服務(wù)器先做io測(cè)試,可以用dd,或者安裝個(gè)寶塔面板做跑分測(cè)試,磁盤(pán)讀寫(xiě)低于500MB/s的就別安裝了,建議1000MB/s以上,這個(gè)非常關(guān)鍵。

          posted @ 2021-11-14 23:36 方偉的博客 閱讀(4206) | 評(píng)論 (0)編輯 收藏

          1.服務(wù)器

          需要1T SSD(建議NVMe)硬盤(pán),最好是裸硬盤(pán),不可以用機(jī)械盤(pán),否則會(huì)永遠(yuǎn)無(wú)法同步完成。

          2.帶寬

          建議國(guó)外服務(wù)器,100M非cn2線路即可

          3.操作系統(tǒng)

          建議centos7/8,或ubuntu,這里均以centos為例

          4.準(zhǔn)備環(huán)境:

          yum update -y

          yum install screen iftop iotop -y

          4.1.安裝golang

          yum install golang -y

          或編譯安裝


          *注意:如果使用的 Go 版本是 1.13 及以上 (推薦),如果不設(shè)置以下命令編譯ETH源碼時(shí)可能會(huì)出錯(cuò)
          go env -w GO111MODULE=on
          go env -w GOPROXY=https://goproxy.io,direct
           

          5.創(chuàng)建一個(gè)screen

          screen -S eth

          *注意1:最后退出時(shí)用ctrl+ad(順序按a和d字母即可),不要用exit或ctrl+d退出會(huì)話。

          *注意2:退出會(huì)話后,可以用screen -x eth重新連接到會(huì)話。

          6.安裝eth客戶端

          #這里我的數(shù)據(jù)目錄,可以根據(jù)需要自行更改

          mkdir -p /data/eth/data

          #下載最新版本并編譯

          cd /root
          wget -O go-ethereum-1.10.12.tar.gz https://github.com/ethereum/go-ethereum/archive/refs/tags/v1.10.12.tar.gz
          tar -xvf go-ethereum-1.10.12.tar.gz
          cd /root/go-ethereum-1.10.12
          make all

          7.檢查安裝是否成功

          /root/go-ethereum-1.10.12/build/bin/geth version


          8.設(shè)置防火墻
          firewall-cmd --permanent --zone=public --add-port=30303/tcp
          firewall-cmd --permanent --zone=public --add-port=8545/tcp
          firewall-cmd --reload
          不懂防火墻配置的,可以先禁用防火墻,關(guān)于firewalld的使用技巧,之后會(huì)單獨(dú)寫(xiě)一篇教程

           

          9.啟動(dòng)節(jié)點(diǎn)

          ulimit -n 65535

          /root/go-ethereum-1.10.12/build/bin/geth --datadir /data/eth/data --syncmode "fast" --cache=2048 --maxpeers 200 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,eth,debug,personal,net,admin" --http.corsdomain "*" --allow-insecure-unlock
           

          *然后按ctrl+ad回到主會(huì)話即可


          10.測(cè)試驗(yàn)證

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545

          (如果已經(jīng)追上最新高度,result會(huì)返回false,這樣以后就不用受infura調(diào)用頻率的限制了)

          curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545

          (節(jié)點(diǎn)未同步完成會(huì)返回0)

          11.停止節(jié)點(diǎn)

          方式1:(建議,畢竟停止后還要啟動(dòng)不是)

          screen -r eth

          按ctrl+c,等待一會(huì)即可看到節(jié)點(diǎn)停止

           

          12.接口文檔參考

          RPC接口文檔,如:

          以太坊JSON RPC手冊(cè) / eth_call - 匯智網(wǎng)


          其它參考:

          ETH鏈github地址:https://github.com/ethereum/go-ethereum

          主網(wǎng)瀏覽器:https://etherscan.io


          13.注意事項(xiàng)

          *同步到最高區(qū)塊所需時(shí)間:

          需要看網(wǎng)絡(luò)帶寬和磁盤(pán)io性能,用NVMe的硬盤(pán),讀寫(xiě)1000到2000左右,100M的國(guó)外非cn2帶寬,從0開(kāi)始同步,大概需要半天到一天。

          *如果2、3天還沒(méi)有追上,或者最后100個(gè)塊始終追不上,極有可能是服務(wù)器磁盤(pán)io存在瓶頸,再次強(qiáng)調(diào),不可以用機(jī)械盤(pán),不建議用虛擬機(jī)(磁盤(pán)不能做虛擬化),否則io速度不夠,就永遠(yuǎn)無(wú)法同步完成,因?yàn)樽詈筮€有一步需要很高的IO速度才可以完成。

          *硬盤(pán)最好1T空間,目前實(shí)際會(huì)占用584G左右。

          posted @ 2021-11-14 23:36 方偉的博客 閱讀(2428) | 評(píng)論 (0)編輯 收藏
          yum install centos-release-scl -y
          yum install llvm-toolset-7 -y
          scl enable llvm-toolset-7 bash
          clang --version
          這樣就可以安裝最新版本了,記得舊的先刪除
          posted @ 2021-11-14 23:35 方偉的博客 閱讀(289) | 評(píng)論 (0)編輯 收藏

          編輯/etc/sysctl.conf:

          vi /etc/sysctl.conf

          增加如下兩行:

          net.ipv6.conf.all.disable_ipv6 = 1
          net.ipv6.conf.default.disable_ipv6 = 1

          :wq保存退出后,執(zhí)行

          sysctl -p

          將立即生效。


          posted @ 2021-11-14 23:35 方偉的博客 閱讀(80) | 評(píng)論 (0)編輯 收藏

          curl --silent --location https://rpm.nodesource.com/setup_14.x | bash -
          yum update -y
          yum remove nodejs npm -y
          yum install nodejs npm -y

          這樣就可以安裝到14的版本了,需要什么版本可以自己指定。

          posted @ 2021-11-14 23:33 方偉的博客 閱讀(404) | 評(píng)論 (0)編輯 收藏
          真是服了做12306網(wǎng)站的這些二貨,目測(cè)就是一些自以為是的java程序員搞的,是不是大學(xué)里一些研究生搞的就不知道了,難道他們根本就不知道ssl證書(shū)到底是怎么回事?自己生成個(gè)證書(shū)算哪門(mén)子?

          而且要https的話,那就全程https不得了,搞的http跟https混用,訪問(wèn)起來(lái)一遍又一遍的警告,我點(diǎn)信任的話誰(shuí)來(lái)保證我的訪問(wèn)不被釣魚(yú)?

          這么搞簡(jiǎn)直是讓人無(wú)語(yǔ)了,難道花個(gè)幾千塊買(mǎi)個(gè)證書(shū)有多難嗎?
          posted @ 2013-09-25 14:10 方偉的博客 閱讀(527) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  下一頁(yè)
          主站蜘蛛池模板: 壤塘县| 喜德县| 白城市| 建水县| 淮南市| 电白县| 万盛区| 闵行区| 比如县| 阜城县| 静安区| 乳山市| 安化县| 长兴县| 九龙坡区| 崇信县| 昭平县| 葵青区| 陇西县| 九龙县| 翁源县| 四会市| 蒙城县| 平遥县| 乌苏市| 东兰县| 克东县| 伊宁县| 新密市| 报价| 博罗县| 东乡| 新安县| 深泽县| 咸宁市| 称多县| 前郭尔| 吉林省| 巨野县| 米易县| 双峰县|