web 3公測バージョンチュートリアル(一)-ETH公有チェーンノード同期


ETH共有チェーンノード同期
最近、ブロックチェーン会社の多くはキャンディを出す活動をしていて、一般的に何万人ものファンを引きつけることができて、これは1つの需要が来て、人にキャンディを送ります.主流のgeth、parity、さらにimtoken財布は住所を入力して1筆の取引しかできず、数万件の取引は人工的に完成できないため、web 3スクリプトを使って群発取引を検討し始めた.
2017年7月25日、web 3はすでにweb 3 v 1を発表した.0.0-beta.9公測バージョンですが、国内や海外のほとんどのチュートリアルは初期のバージョンにとどまっています.その中の穴は言うまでもなく、これらの文章だけを見ると全然通じません.著者はその害を受けています.最後に公式サイトのドキュメントを参考にして、github issueは最終的に完成しました.
Web 3の原理
RPC呼び出しによりローカルノードと通信する.Web 3は、RPCインタフェースが露出している任意のイーサ坊ノードに接続することができる.
Web 3の種類
web 3はgithubでweb 3に分かれる.js,web3j,web3.py、それぞれnode、java、pythonの3つの言語に対応して、node starの人数が最も多くて、作者の次のチュートリアルもweb 3です.js.
web3.js使用前置条件
  • インストールnodeはv 8を使用することが望ましい.1,公測版web 3は大量の非同期操作を使用し,asyncなどの文法を使用するのが便利である.
  • npmを使用してweb 3をインストールし、npm install web 3--save
  • linuxまたはmac環境(window環境ではweb 3が間違っていて財布の問題も大きい)
  • web 3はローカルノードと通信する(リモートでも行)、イーサ坊ノード
  • を同期する必要がある.
    最初の3つの点は比較的簡単で、次に主にイーサ坊ノードを同期します.
    ETH共有チェーンノード同期
    現在、利用可能なイーサー坊ノードを作るには3つの方法があります.
  • gethノード
  • を同期
  • parityノード
  • を同期する
  • ノード
  • は、他のユーザ(ノードプロバイダを含む)が同期ノードを使用する.
    ノードの同期を最初に試みる
    まずgeth財布を使って直接同期して、結果は400 wぐらいで永遠に終点に着くことができなくて、今cpuを思い出して、メモリ、ハードディスクのネットワークはすべて問題があって、同期したいのはまるで夢のようです.その後、フォーラムが原因を探したのは、国内のノードが少なく、ネットワーク環境が悪いためで、解決方法は国内に星火ノードのリストがあることを発見した.失敗の原因:以太坊ノードはメモリ、cpu、ハードディスクの速度、ネットワークの状況に対する要求が高く、星火ノードも36ノードしかなく、多くはまだ最新のブロックに同期できていないので、みんなはもっと参加する条件があって、手を携えてブロックチェーンの美しい未来を共同で建設します.
    2回目の同期ノードの試行
    次にフォーラムをぶらぶらして財布がgethだけでなくparityの軽い財布があることを発見して国内の効果が悪くないと聞いて、台i 5プロセッサ、8 gメモリ、120 g固体のコンピュータに交換して同期して、1日ぐらいで同期に成功して、しかしずっと不安定で、しばらくするとノードは遠隔ノードに距離を開けられて、web 3に使用することができません.失敗原因:タスクマネージャを使用してcpuを99%まで見ることが多く、構成が低く、会社のネットワークも不安定です.またparityはwindows環境でも安定していない可能性があります.
    3回目の同期ノードの試行
    キャンディを出す日がだんだん来て、ノードが現地に置くのかサーバーに置くのか分からないため、サーバーは国内に置くのか国外に置くのか、gethはparityなのか、冠を突いて怒ってお金を壊して、そこでアリクラウドの上で2台のサーバーを配置して、同じ8 g 4核500 ssdの百兆帯域幅を配置するのはちょうど必要で、前の経験はまた高い計算型を選んだため、1台は華東でparityノードを配置して、もう1台はgethノードをシリコンバレーに配置します.結局、華東のparityを完成させて2日半、アメリカのgethは1日半使いました.
    使用するコマンド:
    geth --fast --cache=2048 --rpc --rpcapi personal,web3,eth,net
    --ws --wsorigins "*"
    

    --fastは高速同期モード--cache=メモリを大きくする--rpc--rpcapi personal,web 3,eth,netはrpcインタフェースやpersonalなどの操作apiを開き、後でrpcapiは必ずこれも遭遇した穴であり、後期に基礎web 3関数を使用できるが、personalなどのAPI-ws--wsorigins"*"を使用することはできない.
    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接続を使ってweb 3スクリプトを実行すれば良い特殊な需要があって国内アリクラウドも同期に成功することができます.
  • は少なくとも4コア8 g 300 Gの固体
  • を配置する.
  • gethはfastモード、parityはwarpモードを使用し、いずれも高速同期であり、web 3開発に完全に使用できる.この2つのモードのデフォルトも、保険のためにパラメータを追加するためにオンになっています.
  • 同期の時はいつもいくつかの間違いがあって、コツは死などで、geth同期が完成した後にまた1000 w以上のデータを処理して慌てないでくださいなど.gethはたまに非同期に失敗するノードが失われ、プロセスが止まらない限り死ぬなどします.parity後期は遅いです.後のブロック取引が多いので、慌てないでください.