fabricnodesdk中的身份標識怎么配置

本篇內(nèi)容介紹了“fabric node sdk中的身份標識怎么配置”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有洮北免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1、fabric node sdk 工作原理

在hyperledger Fabric區(qū)塊鏈架構(gòu)中,應(yīng)用是通過節(jié)點的RPC協(xié)議API接口訪問安裝在peer節(jié)點上的鏈碼:

fabric node sdk中的身份標識怎么配置

類似于shim api對鏈碼通信協(xié)議的封裝,F(xiàn)abric Node SDK提供了對節(jié)點RPC協(xié)議接口的封裝,其入口類為Client,通道操作則封裝在Channel類中:

fabric node sdk中的身份標識怎么配置

2、fabric node sdk中的身份標識

由于hyperledger fabric是許可制(Permissioned)區(qū)塊鏈,每一個參與fabric區(qū)塊鏈的成員都需要有明確的身份標識,因此fabric node sdk中的Client實例需要使用一個User實例來表征其訪問Fabric區(qū)塊鏈網(wǎng)絡(luò)的身份。例如,下面的node.js代碼載入本地msp目錄中的PEM編碼的用戶證書與相應(yīng)的密鑰并生成User對象,然后設(shè)置為Client實例的當前身份:

let client = new Client
let keyPem = fs.readFileSync('.msp/keystore/user-key.pem','utf-8')
let certPem = fs.readFileSync('./msp/signcerts/user-cert.pem','utf-8')
let user = await client.createUser({        //創(chuàng)建User對象
  username: 'user',                         //用戶名稱
  mspid: 'SampleOrg',                       //所屬MSP的ID
  cryptoContent: {
    privateKeyPEM: keyPem,                  //用戶私鑰
    signedCertPEM: certPem                  //用戶證書
  },
  skipPersistence: true                     //不計入緩存
})
client.setUserContext(user,true)            //設(shè)置為client的當前身份

2、fabric node sdk通道配置

使用Client實例的newChannel()方法可以創(chuàng)建一個空的通道對象,我們還需要添加PeerOrderer實例,以便該通道對象了解要訪問的fabric網(wǎng)絡(luò)的拓撲結(jié)構(gòu)。例如,下面的node.js代碼為通道對象配置 部署在本機的peer對等節(jié)點和orderer排序節(jié)點,在默認配置下,對等節(jié)點在7051端口監(jiān)聽,而排序節(jié)點在7052端口監(jiān)聽:

let channel = client.newChannel('ch2')
channel.addPeer(client.newPeer('grpc://127.0.0.1:7051'))
channel.addOrderer(client.newOrderer('grpc://127.0.0.1:7050'))

3、fabric node sdk查詢鏈碼狀態(tài)

在fabric node sdk中,通道對象的queryByChaincode()方法用于鏈碼狀態(tài)查詢。例如,下面的node.js代碼調(diào)用鏈碼counter-cc中定義的value()方法,以獲取計數(shù)器的當前值:

let req = {
  chaincodeId: 'counter-cc',
  fcn: 'value',
  args: []
}
let ret = await channel.queryByChaincode(req)

4、fabric node sdk提交鏈碼交易

在fabric node sdk中,向鏈碼提交交易則復雜一些,需要依次使用sendTransactionProposal()sendTransaction()這兩個方法,這是因為hyperledger fabric引入了背書(endorsement)機制,在應(yīng)用向排序節(jié)點提交交易之前,需要按照既定的策略首先獲取對等節(jié)點的背書。

提交鏈碼交易的時序表示如下:

fabric node sdk中的身份標識怎么配置

下面的代碼展示了在fabric node sdk中鏈碼交易的兩階段提交過程:

let req = {
  chaincodeId: 'counter-cc',
  fcn: 'inc',
  args: ['10'],
  txId: client.newTransactionID()
}
let prsp = await channel.sendTransactionProposal(req)  //獲取peer背書
let rsp = await channel.sendTransaction({              //提交交易
  proposalResponses: prsp[0],
  proposal: prsp[1]
})

“fabric node sdk中的身份標識怎么配置”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站名稱:fabricnodesdk中的身份標識怎么配置
網(wǎng)站路徑:http://muchs.cn/article2/jpceoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、建站公司、品牌網(wǎng)站制作企業(yè)建站、ChatGPT、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)