自我主權身份是任何人,組織或不取決於任何集中權威並且永遠無法被帶走的人的終身便攜性身份。自我主持的身份是一個兩黨關係模型,在您和組織之間沒有第三方,現在被認為是您的“同伴”。
如今,SSI可以使用DIDS和可驗證的憑證。
DID是一種新型的全球唯一標識符(URI),不需要集中式註冊機構,因為可以使用密碼學證明對標識符的控制。您可以將其視為我們更熟悉的標識符之一(一個域名或電話號碼),而沒有ICANN或NANP等中央註冊商。
可驗證的憑據(VC)是可互操作數字憑據的新格式,該格式由W3C可驗證的索賠工作組定義。可驗證的憑證符合W3C可驗證的憑據數據模型,它們可以使用稱為“信任三角形的模式”來促進交互:
發行人通常通過以特殊方式將JSON文檔數字簽名來創建憑據。持有人存儲它們,驗證者要求根據它們進行證明。持有人向驗證者提供的可驗證演示文稿是由持有人構建的證據,即憑證或從一個或多個憑證中得出的數據,以滿足驗證者的要求。驗證者可以肯定地學習發行人通過檢查可驗證的數據註冊表(通常是區塊鏈)來證明某些內容。
React MSDK是使用Evernym Mobile SDK作為ARIES兼容React本機軟件包構建的,該包裝允許快速構建自定義的數字錢包(完全在您控制的下方),代表可驗證的憑據模型中的持有人方面。
使用React-Native Mobile SDK,您的應用程序可以:
身份錢包應用程序可實現無數用例,包括證明您已經超過特定的法定年齡,而沒有透露您的確切出生日期,私下,安全地共享健康記錄,並一勞永逸地取消用戶名和password概念。
對於您的身份錢包的測試,您可以使用代表相反通信方面的Verity SDK。
在Evernym移動SDK和Verity SDK存儲庫中,您可以找到有關構建身份錢包和可驗證的憑據交換過程的許多有用信息。
要創建一個新項目,您需要仔細研究以下步驟。
創建新的React本地項目。我們將其稱為本指南的awesomeMsdkProject 。
npx react-native init awesomeMsdkProject --version 0.65.1注意:您需要使用與evernym react-native-sdk的package.json文件中指定的相同版本的react-native peerDependencies當前推薦的反應本版本為0.65.1 。通過使用不同的版本,您可能會與SDK有問題。
要在新應用程序中包括SDK,您需要設置其依賴項。
替換依賴項部分,僅留下@evernym/react-native-white-label-app依賴項到您的package.json 。
"dependencies" : {
"@evernym/react-native-white-label-app" : " https://gitlab.com/evernym/mobile/react-native-white-label-app.git " ,
},本地依賴性應放在應用程序依賴項中(請參閱問題)。它們被列為SDK中的同行依賴。
將來自@evernym/react-native-white-label-app所有同伴依賴項添加到應用程序package.json的dependencies項部分中。
"dependencies" : {
"@react-native-community/async-storage" : " x " ,
...
"react-native-zip-archive" : " x " ,
"react-native" : " 0.65.1 " ,
"rn-fetch-blob" : " x " ,
...
},將來自@evernym/react-native-white-label-app的所有devDependencies添加到應用程序package.json的devDependencies部分中。
"devDependencies" : {
...
"copyfiles" : " x "
},將以下命令添加到您的應用程序package.json的scripts部分。
"scripts" : {
...
"evernym-sdk:configure" : " yarn --cwd node_modules/@evernym/react-native-white-label-app run configure "
},此命令將通過evernym-sdk添加為將來的應用程序自定義的必要模塊。
現在,您可以安裝所有依賴項並進行自動配置,在項目目錄中運行以下命令:
yarn
yarn evernym-sdk:configure這將安裝所有依賴關係,並將所需的模塊添加到awesomeMsdkProject/app/evernym-sdk目錄中。
刪除默認的App.js ,然後將以下內容放入index.js中:
import * as EvernymSdk from '@evernym/react-native-white-label-app' ;
import { name as appName } from './app.json' ;
EvernymSdk . createApp ( appName ) ;導航到app/evernym-sdk/provision.js文件,並定義您的應用程序和函數使用的環境,以便被要求獲取配置令牌。
請注意,應用程序環境必須匹配註冊贊助商服務器的環境。
例如,如果在DEMO環境上註冊了贊助商服務器,則該應用程序必須使用DEMO。
DEFAULT_SERVER_ENVIRONMENT要使用的環境名稱。
有幾個預定義的環境:
// use default combination - DEMO for debug and PROD for releases builds
export const DEFAULT_SERVER_ENVIRONMENT = null
// use Demo env
// Agency: `https://agency.pps.evernym.com` and `Sovrin Staging Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'DEMO'
// use Production env
// Agency: `https://agency.evernym.com` and `Sovrin Live Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'PROD'
// use Staging env
// Agency: `https://agency.pstg.evernym.com` and `Sovrin Staging Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'STAGING' 您還可以使用SERVER_ENVIRONMENTS和DEFAULT_SERVER_ENVIRONMENT變量的組合提供和使用自定義環境:
export const SERVER_ENVIRONMENTS = {
'CUSTOM' : {
agencyUrl : 'ahency_url' ,
agencyDID : 'did' ,
agencyVerificationKey : 'verkey' ,
poolConfig : [ { key : 'staging' , genesis : 'genesis_transactions' } ] ,
}
}
export const DEFAULT_SERVER_ENVIRONMENT = 'CUSTOM' GET_PROVISION_TOKEN_FUNC將調用函數,以便為您的應用程序獲取代理配置令牌。
/// example
export const GET_PROVISION_TOKEN_FUNC = async (): [error: string | null, token: string | null] => {
try {
// call your sponsor server endpoint
const response = fetch_api(your_endpoint)
// process response
// return result in format [error, token]
return [null, response.token]
} catch (error) {
return [error.message, null]
}
}
恭喜!現在我們已經準備好JS的一部分。作為下一步,我們需要為目標平台配置構建。
注意:此時,您應該已經完成了基本應用程序配置部分。
為了配置Android平台的應用程序的構建,請參閱文檔。
注意:此時,您應該已經完成了基本應用程序配置部分。
為了配置iOS平台應用程序的構建,請參閱文檔。
請參閱文檔以獲取可用配置選項的概述。
這項工作是一個項目的一部分,該項目已通過我們參與Essif-Lab提供的871932協議獲得了歐盟Horizon 2020研究與創新計劃的資金,該協議旨在推動對所有人的利益的廣泛採用。