indy-sdk tutorials数字身份认证(二)

三、在ledger保存schema和credential定义
0、
0.1 作为设置,Steward(已在分类帐中)将Trust Anchor添加到分类帐。
0.2 Steward构建SCHEMA请求以将新schema添加到分类帐。
一旦成功,Trust Anchor将使用匿名凭据为Steward添加的schema发布和存储定义。
1-8、 同(一)1-8
我们需要为SDK提供一些处理indy分类帐所需的上下文。 这要求我们将SDK指向一些创世纪交易,告诉SDK如何联系网络上的分类账,以及如何相信它所联系的节点拥有适当的密钥。 我们还需要创建一个钱包,以便SDK可以存储DID以及我们将要使用的密钥材料。 此外,我们需要创建一个信任锚标识,该标识具有创建模式和凭证定义的权限。
9、现在我们需要创建和定义一个模式schema。 indy中的模式是非常简单的JSON文档,它们指定了它们的名称和版本,并列出了将出现在凭证credential中的属性。 今天,它们没有描述数据类型,重复规则,嵌套和其他复杂的结构。
构建SCHEMA请求以将新模式作为Steward添加到分类帐

*Schema data*: 
{'attrNames': ['age', 'sex', 'height', 'name'],
 'id': '1',
 'name': 'gvt',
 'ver': '1.0',
 'version': '1.0'}
*Schema*: 
{'data': {'attrNames': ['age', 'sex', 'height', 'name'],
          'id': '1',
          'name': 'gvt',
          'ver': '1.0',
          'version': '1.0'},
 'dest': '$(Steward DID)',
 'seqNo': 1}
*Schema request*: 
{'identifier': '$(Steward DID)',
 'operation': {'data': {'attr_names': ['height', 'sex', 'age', 'name'],
                        'name': 'gvt',
                        'version': '1.0'},
               'type': '101'},
 'protocolVersion': 2,
 'reqId': 1547705470104372004}

10、将SCHEMA请求发送到分类帐

*Schema response*:
{'op': 'REPLY',
 'result': {'auditPath': ['3cQgnDAZFZLbzxrAxQLeBXDnczLBoXQebYXq6QBUY69X',
                          '3i3FMwaYKSTDRRn4M3cKZPrXQRm8XyQ9G2NcHYLTKBRm',
                          'AcctzGMWr4TrdWtcAfdr2h8NsxCepyg99k5yxkScG9F7'],
            'reqSignature': {'type': 'ED25519',
                             'values': [{'from': '$(Steward DID)',
                                         'value': 'FEPpzMFxhGLW9mzZRU1mm9DWrao5wpVEiorzVgFQh1scNHwUjfwYMFGM8sy1TpKbtM6Eymgy2ZoPd6nHEcAaAXZ'}]},
            'rootHash': 'EKLGW5YWYyW8swwEeWFkV6F9n5qXY8JNnRKkTVEEfBMJ',
            'txn': {'data': {'data': {'attr_names': ['height',
                                                     'sex',
                                                     'age',
                                                     'name'],
                                      'name': 'gvt',
                                      'version': '1.0'}},
                    'metadata': {'digest': '25929fb2becde460a365c91628c6e38e3860c4f8f333155c71d9273dfd02cf6a',
                                 'from': '$(Steward DID)',
                                 'reqId': 1547705470104372004},
                    'protocolVersion': 2,
                    'type': '101'},
            'txnMetadata': {'seqNo': 20,
                            'txnId': '$(Steward DID):2:gvt:1.0',
                            'txnTime': 1547705471},
            'ver': '1'}}

11、接下来,我们创建一个credential定义。 这引用了我们刚刚添加的模式,并宣布了谁将要发布具有该模式的凭证(在本例中为我们的信任锚标识),他们计划使用什么类型的签名方法(“CL”=“Camenisch Lysyanskya” ,indy用于零知识证明的默认方法,它们如何计划处理撤销,等等。

使用anoncred作为信任锚来创建和存储CRED DEFINITION,用于给定的Schema。

{'id': '$(Trust anchor DID):3:CL:1:cred_def_tag',
 'schemaId': '1',
 'tag': 'cred_def_tag',
 'type': 'CL',
 'value': {'primary': {'n': '793102416506061520575592669264262619281141544837290360506833135747844096520620250668068240903366020181987114586735613748661261681137821616608278769297006096154925094948764536894382613512813898022932153598214002512762114307792912276279944959741766915049964066871030682621680234755408776121927420897213714522416009658813250147
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值