(翻譯) fabric1.2.1新特性-服務(wù)發(fā)現(xiàn)

服務(wù)發(fā)現(xiàn)

為什么我們需要服務(wù)發(fā)現(xiàn)?

為了在peer節(jié)點(diǎn)上執(zhí)行鏈碼坎弯,向orderer節(jié)點(diǎn)提交交易,并且更新交易的狀態(tài)译暂,應(yīng)用程序通過SDK鏈接公開的API抠忘。

但是,SDK需要大量信息才能允許應(yīng)用程序鏈接到相關(guān)的網(wǎng)絡(luò)節(jié)點(diǎn)外永。除了通道orderer節(jié)點(diǎn)和peer節(jié)點(diǎn)的CA以及TLS證書崎脉,以及orderer節(jié)點(diǎn)和peer節(jié)點(diǎn)的IP地址和端口號以外,還必須知道相關(guān)的背書策略以及哪些peer節(jié)點(diǎn)安裝了鏈碼(這樣應(yīng)用程序才能知道哪些peer節(jié)點(diǎn)可以發(fā)送鏈碼提案)伯顶。

在v1.2版本之前囚灼,這些信息是靜態(tài)編碼的。但是祭衩,此實(shí)現(xiàn)不會對網(wǎng)絡(luò)更改產(chǎn)生動態(tài)響應(yīng)(例如灶体,已安裝相應(yīng)鏈碼的新增peer節(jié)點(diǎn),或臨時離線的peer節(jié)點(diǎn))掐暮。靜態(tài)配置也不允許應(yīng)用程序?qū)Ρ硶呗员旧淼母淖龀鲰憫?yīng)(可能在新組織加入通道時發(fā)生)蝎抽。

此外,客戶端應(yīng)用程序無法知道哪些peer節(jié)點(diǎn)更新了賬本數(shù)據(jù)路克,哪些沒有更新樟结。因此,應(yīng)用程序可能會向那些沒有向網(wǎng)絡(luò)中其他peer節(jié)點(diǎn)同步賬本數(shù)據(jù)的peer節(jié)點(diǎn)發(fā)送交易提案衷戈,從而導(dǎo)致交易在提交時失效并因此浪費(fèi)資源狭吼。

發(fā)現(xiàn)服務(wù)通過讓peer節(jié)點(diǎn)動態(tài)計算所需信息并以可消費(fèi)方式將其呈現(xiàn)給SDK來改進(jìn)此過程。

發(fā)現(xiàn)服務(wù)是如何在fabric中運(yùn)作

被應(yīng)用程序開發(fā)人員/管理員信任的一組peer節(jié)點(diǎn)殖妇,提供對發(fā)現(xiàn)查詢的真實(shí)響應(yīng),從而引導(dǎo)應(yīng)用程序破花∏ぃ客戶端應(yīng)用程序使用同一組織中的好的候選peer節(jié)點(diǎn)。

應(yīng)用程序向發(fā)現(xiàn)服務(wù)發(fā)出配置查詢座每,并獲取與網(wǎng)絡(luò)的其余節(jié)點(diǎn)通信所需的所有靜態(tài)信息前鹅。通過向peer節(jié)點(diǎn)的發(fā)現(xiàn)服務(wù)發(fā)送后續(xù)查詢,可以在任何時候刷新該信息峭梳。

在peer節(jié)點(diǎn)上運(yùn)行的服務(wù)(并不是運(yùn)行在應(yīng)用程序上)舰绘,并且使用由gossip通訊層維護(hù)的網(wǎng)絡(luò)元數(shù)據(jù)信息來找出哪些peer節(jié)點(diǎn)在線蹂喻。它還從peer節(jié)點(diǎn)的狀態(tài)數(shù)據(jù)庫中提取信息,例如任意相關(guān)的背書策略捂寿。

通過發(fā)現(xiàn)服務(wù)口四,應(yīng)用程序不再需要指定他們需要背書的peer節(jié)點(diǎn)。SDK可以簡單地向發(fā)現(xiàn)服務(wù)發(fā)送查詢秦陋,詢問給定通道和鏈碼ID需要哪些peer節(jié)點(diǎn)蔓彩。然后,發(fā)現(xiàn)服務(wù)將計算由兩個對象組成的描述符:

  1. Layouts: peer節(jié)點(diǎn)組列表和從每組中選擇相應(yīng)數(shù)量的peer節(jié)點(diǎn)個數(shù)
  2. Group to peer mapping: ?Layouts中peer節(jié)點(diǎn)組與通道節(jié)點(diǎn)的映射關(guān)系驳概。在實(shí)踐中赤嚼,每個組很可能是代表單個組織中的peer節(jié)點(diǎn),但由于服務(wù)API是通用的而且對組織一無所知顺又,因此這只是一個“組”更卒。

以下是策略(AND(Org1,Org2))的示例,其中每個組織中有兩個peer節(jié)點(diǎn)稚照。

Layouts: [
     QuantitiesByGroup: {
       “Org1”: 1,
       “Org2”: 1,
     }
],
EndorsersByGroups: {
  “Org1”: [peer0.org1, peer1.org1],
  “Org2”: [peer0.org2, peer1.org2]
}

換句話說蹂空,背書策略需要來自O(shè)rg1的peer節(jié)點(diǎn)以及Org2的peer節(jié)點(diǎn)的簽名。并且它提供了那些組織中可以背書的可用peer節(jié)點(diǎn)的名稱(Org1和 Org2中的peer0和peer1節(jié)點(diǎn))锐锣。

然后SDK從列表中選擇隨機(jī)layout腌闯。在上面的示例中,背書策略是Org1以及Org2雕憔。如果它是一個OR策略姿骏,SDK將隨機(jī)選擇Org1或Org2,因此來自任一Org的peer節(jié)點(diǎn)的簽名將滿足該策略斤彼。

SDK選擇layout后分瘦,它會根據(jù)客戶端指定的條件從layout中的peer節(jié)點(diǎn)進(jìn)行選擇(SDK可以這樣做,是因?yàn)樗梢栽L問像賬本高度這樣的元數(shù)據(jù))琉苇。例如嘲玫,它可能更喜歡擁有更高賬本高度的peer節(jié)點(diǎn),或者排斥那些應(yīng)用程序發(fā)現(xiàn)已經(jīng)離線的peer節(jié)點(diǎn)并扇,根據(jù)layout中定義的每組中peer節(jié)點(diǎn)的數(shù)量去团。如果基于標(biāo)準(zhǔn)沒有一個peer可供選擇,則SDK將從最符合標(biāo)準(zhǔn)的peer節(jié)點(diǎn)中隨機(jī)選擇穷蛹。

發(fā)現(xiàn)服務(wù)的功能

發(fā)現(xiàn)服務(wù)可以響應(yīng)一下的請求:

  • Configuration query(配置查詢):返回所有組織的MSPConfig以及通道的orderer端點(diǎn)土陪。
  • Peer membership query(peer節(jié)點(diǎn)關(guān)系查詢):返回已經(jīng)加入通道的peer節(jié)點(diǎn)
  • Endorsement query(背書策略查詢):返回通道中給定鏈碼的背書策略描述符
  • Local peer membership query(本地peer節(jié)點(diǎn)關(guān)系查詢):返回響應(yīng)查詢的peer節(jié)點(diǎn)的本地成員關(guān)系信息。 默認(rèn)情況下肴熏,客戶端需要是有管理員權(quán)限的peer節(jié)點(diǎn)才能響應(yīng)此查詢鬼雀。

特殊要求

當(dāng)peer節(jié)點(diǎn)啟用了TLS認(rèn)證,那么客戶端鏈接peer節(jié)點(diǎn)的時候必須提供相應(yīng)的TLS證書蛙吏。如果peer 節(jié)點(diǎn)沒有配置驗(yàn)證客戶端的證書(core.yaml中的配置項clientAuthRequired設(shè)置為false)源哩,此TLS證書可以自簽名鞋吉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市励烦,隨后出現(xiàn)的幾起案子谓着,更是在濱河造成了極大的恐慌,老刑警劉巖崩侠,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漆魔,死亡現(xiàn)場離奇詭異,居然都是意外死亡却音,警方通過查閱死者的電腦和手機(jī)改抡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來系瓢,“玉大人阿纤,你說我怎么就攤上這事∫穆” “怎么了欠拾?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骗绕。 經(jīng)常有香客問我藐窄,道長,這世上最難降的妖魔是什么酬土? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任荆忍,我火速辦了婚禮,結(jié)果婚禮上撤缴,老公的妹妹穿的比我還像新娘刹枉。我一直安慰自己,他們只是感情好屈呕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布微宝。 她就那樣靜靜地躺著,像睡著了一般虎眨。 火紅的嫁衣襯著肌膚如雪蟋软。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天嗽桩,我揣著相機(jī)與錄音钟鸵,去河邊找鬼。 笑死涤躲,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贡未。 我是一名探鬼主播种樱,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蒙袍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嫩挤?” 一聲冷哼從身側(cè)響起害幅,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎岂昭,沒想到半個月后以现,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡约啊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年邑遏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恰矩。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡记盒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出外傅,到底是詐尸還是另有隱情纪吮,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布萎胰,位于F島的核電站碾盟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏技竟。R本人自食惡果不足惜冰肴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望灵奖。 院中可真熱鬧嚼沿,春花似錦、人聲如沸瓷患。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽擅编。三九已至攀细,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爱态,已是汗流浹背谭贪。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锦担,地道東北人俭识。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像洞渔,于是被迫代替她去往敵國和親套媚。 傳聞我的和親對象是個殘疾皇子缚态,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容