ブロックチェーン注:契約は例Nodejsに基づくインテリジェントな契約、RPC / IPC呼び出し、オブジェクトweb3上のRPCコール、共通のフレームワークと呼ばれ、

契約と呼ばれます

  • 契約は3通りの方法で呼び出します
    • IPC方式
      • 通常、コンソールを介して、
      • イーサネットノードで実行した後は、コンソールを開くことができます
      • 入力コマンドによって、その中にコンソールでスマート契約法の一部を取得することができます
      • IPCはまた、方法とすることができるパイプ通信
      • 主な方法のプロセスとの間の通話
    • HTTP的方式
      • これは、何らかの方法で、より一般的です
      • 通常、JSON形式のデータのシリアライズとデシリアライズを行います
      • これは、HTTP JSON RPCの方法です。
    • websocket的方式
      • 広場には、内部イーサネットプロトコル用WebSocketの使用は直接、いくつかの契約コールの内部ノードとのインタフェースをサポートしています
  • これらの三つの方法で、私たちはクライアントによって後者の二つを調整することであれば、方法およびマナーのWebSocketのHTTP JSON RPC
  • そして、より多くのIPC第一の方法は、プロセス間の通信のパイプライン、機械のアクセスノードに、いくつかのデバッグを行うことです

RPC / IPCコール

  • 上記の言語バージョンゴーは、フルノードのイーサネット広場です
  • ノードの優先順位が最も高いのバージョンもあるGETH呼ばれるイーサネット・スクエアの公式メンテナンス、ETHノードゴー言語であります
  • それが実行した後、あなたは$を命令することができるgeth consoleので、完全なノードを実行して、コンソールに入りますサブコマンドを持って来るので、後に、コンソールが入ることができるようになります、
  • それは、接続に関連付けられているいくつかの情報を出力しますコンソールには、ここで我々はそれが持っていることがわかりますIPC endpoint、それは、IPCの接続アドレスであります
  • これはにあるMACシステム、実行するために使用される/Users/mac/Library/Ethereum/geth.ipcようなAファイルの生成デフォルト場所をgeth.ipc
  • IPC通信接続は、共有文書その介して接続することです
  • また、IPCできるファイルにだけポイントに別のコンソールを開くことができます
  • 他には、HTTPリンクアドレス、それは127.0.0.1であるので、我々は、ローカルにある、ポート番号8545であります
  • コンソールのノードを入力した後、エーテルにアクセスするためのコマンドの多くすることができ
  • 出口までコンソール型の出口

一般的なRPC呼び出しフレームワーク

  • ノードが懸念されているイーサネットの場合は、社内のサポートRPCサーバーノードであります
  • クライアントが関係しているために、現在では、このバージョンでは、最も一般的に使用されるバージョンであるweb3.jsと呼ばれ、このようなJavascriptをの言語バージョンのサポートなど、多くの言語のバージョンを、サポートしてきました
  • さらに、Java指向言語のweb3jがあります
  • C#の場合Nethereum
  • Ruby言語サポートイーサリアム、ルビー
  • 発展に伴い、また、他の言語バージョンが行くサポートすることが可能
  • もちろん、あなたがカプセル化するために、所有することができ、これは、RPCがサポートするイーサネットインターフェイスは、オープンソースであるため、我々は必要に応じて、独自のパッケージを行うに来ることができるかもしれ
図書館 言語 プロジェクトページ
web3.js JavaScriptを https://github.com/ethereum/web3.js
web3j ジャワ https://github.com/web3j/web3j
Nethereum C#.NET https://github.com/Nethereum/Nethereum
イーサリアム、ルビー ルビー https://github.com/DigixGlobal/ethereum-ruby

web3オブジェクトについて

  • web3.jsオブジェクト
    • イーサネット・スクエアのJavaScript API
      • これはweb3 githubのリポジトリで見ることができhttps://github.com/ethereum/web3.js/tree/1.x/packagesこのディレクトリ
      • これは、ライブラリの呼び出しのセットがパッケージ化されているクライアントが含まれている、それはSDK広場のJsのイーサネットバージョンです
      • 輸入、Web3というクラスがあると、各サブの上部にあるライブラリを呼び出すあなたが表示できるようにパッケージを実装するために、このライブラリをweb3 ネットワーク例の役員を
    • 普通のJSON RPC
      • パラメータと戻り値はJSONとデシリアライズによってシリアライズされています
    • イーサネットノードスクエアを満たす必要があります
      • メインのネットワーク・ノードは、正式なことができるだけでなく、プライベートまたはシミュレートされたノードの展開をテストします
  • コールテストコードweb3オブジェクト
    var Web3 = require('web3');
    if(typeof web3 !== 'undefined') {
        web3 = new Web3(web3.currentProvider);
    } else {
        // set the provider you want from Web3.providers
        web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
    }
    var Version = web3.version;
    console.log("client version: " + version);
    

ベースのNodejs例

var Web3 = require('web3');
if(typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
} else {
    // set the provider you want from Web3.providers
    web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

web3.eth.getAccounts(console.log);

10の出力生成されたアドレス

null [
  '0x437615686191efF890C7cCa136cfbf21Cb6451E6',
  '0xe4a56746DAfDf247BF125d5809B2D6168722Eb37',
  '0x23604b6563d63D5f3b4C9a09ADe681F5f2811DB6',
  '0x4900AEeA7CC7F76E473805c50E8F0e49c1F99D8E',
  '0x1A32509bC3DAA2AC5493AE212064e59ebeaED34c',
  '0x7c0c971814dBA35D5c53E5650b71E91ecb8C31fa',
  '0x2DB7594e84DC79EE782f3962C1ea9cC2912c3EF1',
  '0x9D86096d38B4460Be319dA56265499D863ccB5c4',
  '0xD03cbC188201EB3AB61aC465Dc1e3A2fa517245C',
  '0x77238F0407aF96Fd26Fe22A9996B2349F1ebb91f'
]
发布了450 篇原创文章 · 获赞 254 · 访问量 72万+

おすすめ

転載: blog.csdn.net/Tyro_java/article/details/104987954