Hyperledger Fabric SDK Nodejs

6156 ワード

SDKは何ができますか
  • チャネル
  • を作成します.
  • は、peerノードをチャネル
  • に参加させる.
  • は、peerノードにスマート契約
  • をインストールする.
  • チャネルでの例示的な化学結合は約
  • である.
  • 契約実行取引を呼び出します.
  • 取引クエリ、ブロッククエリ
  • fabricの安全性はデジタル証明書で保証されています.すべてのfabricにおける操作要求はCA証明書でなければならない.
    Node.js SDKの機能
    Hypeledger Fabric SDKは対象に向けたプログラミングスタイルで設計されています.モジュール化された構造は、暗号化モジュール、ステータス記憶モジュール、ログモジュールなどのキー機能に対して、抜き差し可能な代替実装を可能にする.SDKの機能リストには、
  • fabric-client:
  • 新しいチャネルを作成します.
  •  //        json    json     
     loadFromConfig(config) 
    
     addTlsClientCertAndKey(opts)
    
     //  channel     promise
     //     ChannelRequest
     ![image.png](https://upload-images.jianshu.io/upload_images/5659111-b8fb4a5a46e7842c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
     createChannel(request)
      
    //  User     UserOpts    promise
    ![image.png](https://upload-images.jianshu.io/upload_images/5659111-02aa7111abac01ca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
     createUser(opts) 
    
     extractChannelConfig(config_envelope)
    
     getCertificateAuthority(name)
      
     getChannel(name, throwError)
     ![image.png](https://upload-images.jianshu.io/upload_images/5659111-b81d7f0755cb7d5f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
     getClientConfig()
    
     getCryptoSuite()
    
     getEventHub(peer_name)
    
     getEventHubsForOrg(org_name)
    
     getMspid()
    
     getOrderer(name)
    
     getPeer(name)
    
     getPeersForOrg(org_name)
    
     getStateStore()
    
     getUserContext(name, checkPersistence)
    
     initCredentialStores()
    
     installChaincode(request, timeout)
     ![image.png](https://upload-images.jianshu.io/upload_images/5659111-dafc384213581ff6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
      
     isDevMode()
    
     loadFromConfig(config)
     
     loadUserFromStateStore(name)
    
     newChannel(name)
    
     newEventHub()
      
     newOrderer(url, opts)
    
     newPeer(url, opts)
    
     newTransactionID(admin)
    
     queryChannels(peer, useAdmin)
    
     queryInstalledChaincodes(peer, useAdmin)
    
     saveUserToStateStore()
      
     setAdminSigningIdentity(private_key, certificate, mspid)
    
     setCryptoSuite(cryptoSuite)
    
     setDevMode(devMode)
    
     setStateStore(keyValueStore)
    
     setTlsClientCertAndKey(clientCert, clientKey)
    
     setUserContext(user, skipPersistence)
    
     signChannelConfig(config)
    
     updateChannel(request)
    
  • は、チャンネルでノード
  • に加入する.
    addOrderer(orderer)
    
    addPeer(peer, roles)
    
    close()
    
    compareProposalResponseResults(The)
    
    executeTransaction(request)
    
    getChannelConfig(target)
    
    getChannelConfigFromOrderer()
    
    getChannelEventHub(name)
    
    getChannelEventHubsForOrg(org_name)
    
    getChannelPeer(name)
    
    getGenesisBlock(request)
    
    getMSPManager()
    
    getName()
    
    getOrderer(name)
    
    getOrderers()
    
    getOrganizations()
    
    getPeer(name)
    
    getPeers()
    
    getPeersForOrg(org_name)
    
    initialize(config)
    
    joinChannel(request, timeout)
    
    newChannelEventHub(peer)
    
    queryBlock(blockNumber, target, useAdmin)
    
    queryBlockByHash(block, target, useAdmin)
    
    queryBlockByTxID(tx_id, target, useAdmin)
    
    queryByChaincode(request)
    
    queryInfo(target, useAdmin)
    
    queryInstantiatedChaincodes(target, useAdmin)
    
    queryTransaction(tx_id, target, useAdmin)
    
    removeOrderer(orderer)
    
    removePeer(peer)
    
    sendInstantiateProposal(request, timeout)
    
    sendTransaction(request)
    
    sendTransactionProposal(request, timeout)
    
    sendUpgradeProposal(request, timeout)
    
    setMSPManager(msp_manager)
    
    toString()
    
    verifyProposalResponse(proposal_response)
    
  • インテリジェント契約
  • をインストールします.
    installChaincode(request, timeout)
    
  • インテリジェント契約を初期化する
  • sendInstantiateProposal(request, timeout)//
    
    sendTransaction(request) //https://fabric-sdk-node.github.io/Channel.html#sendInstantiateProposal
    
  • 取引を提出します.
     sendTransactionProposal(request, timeout)//https://fabric-sdk-node.github.io/Channel.html#sendTransactionProposal
    
     sendTransaction(request)//https://fabric-sdk-node.github.io/Channel.html#sendTransaction
    
  • 契約を調べます.
     queryByChaincode(request)
    
  • 各種クエリ機能:
  • ブロック高
  •  queryInfo(target, useAdmin)
    
  • ブロックIブロックDとブロックハッシュクエリ
  • を介して
    queryBlock(blockNumber, target, useAdmin)//https://fabric-sdk-node.github.io/Channel.html#queryBlock
    queryBlockByTxID(tx_id, target, useAdmin)//https://fabric-sdk-node.github.io/Channel.html#queryBlockByHash
    
  • は、1つのpeerノードに属するすべてのチャネル
  • を照会する.
    queryChannels(peer, useAdmin)
    
  • は、1つのpeerノードにインストールされているすべてのスマート契約
  • を照会する.
    queryInstalledChaincodes(peer, useAdmin)
    
  • は、チャネル内のすべてのスマート契約を調べます.
    queryInstantiatedChaincodes(target, useAdmin)
    
  • は、IDによって取引
  • を照会する.
    queryTransaction(tx_id, target, useAdmin)
    
  • クエリチャネルの構成
  • getChannelConfig(target)
    
  • イベント:
  • は、1つのpeerノードを接続するイベントフロー
  • を有する.
    connect()
    
  • ブロックイベントを傍受する
  • registerBlockEvent(onEvent, onError)
    
  • 取引事件を傍受し(取引が正常に帳簿に提出されたかどうかを確認し、無効と表記した)
  • registerTxEvent(txid, onEvent, onError)
    
  • 契約上のカスタムイベントを傍受する
  • registerChaincodeEvent(ccid, eventname, onEvent, onError)
    
  • Userオブジェクトプログレッシブ署名
    fromString()
    getAffiliation()
    getCryptoSuite()
    getIdentity()
    getName()
    getRoles()
    getSigningIdentity()
    isEnrolled()
    setAffiliation(affiliation)
    setEnrollment(privateKey, certificate, mspId)
    setRoles(roles)
    toString()
    
  • 多様な構成導入方式:ファイル、環境変数、プログラムパラメータ、メモリ設定
  • はログモジュール(wiston)を内蔵しており、logs 4 jsやbunyanなどの他のログモジュールを使って
  • を交換することができます.
  • 挿抜可能なCryptSuiteインターフェースは、Fabricとの対話に成功するために必要な暗号化動作を記述しています.
  • Software-based ECDSA
  • PKCSヒドラ11-copliant ECDSA
  • 挿抜可能な状態記憶インターフェースは、ユーザの状態キャッシュなどを保存するためのものである.
  • ファイル記憶
  • CouchDB
  • カスタム暗号化
  • TLS(grpcs:/)または非TLS(grpc:/)をサポートしながら、peerとorderに接続します.Remoteを参照してください.これは同じクラスと注文者の超クラス
  • です.
    //https://fabric-sdk-node.github.io/Remote.html
    
    //https://fabric-sdk-node.github.io/Orderer.html
    
    //https://fabric-sdk-node.github.io/Peer.html
    
    //https://fabric-sdk-node.github.io/Orderer.html
    
    
  • fabric-ca-client:
  • 登録ユーザ
  • CA証明書
  • を取得する.
  • 破棄証明書
  • 証明書恒久化メモリ