2017-01-19 46 views
0

我在審查HFC SDK的示例代碼,並看到了管理用戶的方法。如何在Hyperledger Fabric Client(HFC)中註冊新用戶(帶有屬性)?

要登記現有的用戶使用下列的函數:

chain.enroll 

要註冊和登記新用戶使用下列的函數:

chain.registerAndEnroll 

然而,示例代碼沒有提供一個只有寄存器功能的例子:

chain.register 

如果我明白了corr ectly chain.enroll和chain.registerAndEnroll都會將用戶密鑰/證書保存在調用函數的機器中。

如果我想讓管理員創建一個新用戶(例如,userA),我不能使用chain.registerAndEnroll函數,因爲密鑰/證書將保存在管理員的機器而不是userA的機器中,因爲函數不僅執行一個註冊,但也是一個註冊。因此,我需要一個只有寄存器的功能。

此外,如何向使用HFC的用戶添加屬性,類似於可以在membersrvc.yaml中定義的屬性?

回答

1

不幸的是,我無法找到hfc API文檔的在線鏈接(儘管您可以根據需要在本地構建文檔)。

話雖這麼說,有一個chain.register函數,它接受一個RegistrationRequest對象,然後返回登記祕密/密碼,您以後會使用註冊新用戶:

//create some attributes 
var attributes = [{name:'foo',value:'bar'}]; 
var registrationRequest = { 
    roles: [ role ], 
    enrollmentID: name, 
    affiliation: "bank_a", 
    attributes: attributes, 
    registrar: registrar 
}; 

chain.register(registrationRequest, function(err, enrollmentPassword) { 
    //your code here 

}

+0

感謝@Gari 。這非常有幫助。我會試試這個。我想確認一下我是否正確理解了如何使用chain.register函數:該函數由admin(而不是普通用戶)使用。註冊ID和註冊密碼將由管理員通過電子郵件(或其他方式)發送給用戶。用戶將使用chain.enroll函數獲取他/她的私鑰/證書文件。在這種方法中,惡意管理員可能會嘗試代表用戶註冊,但這會被用戶檢測到,因爲chain.enroll只能被調用一次。它是否正確? –

相關問題