三、在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': '79310241650606152057559266926426261928114154483729036050683313574784409652062025066806824090336602018198711458673561374866126168113782161660827876929700609615492509494876453689438261351281389802293215359821400251276211430779291227627994495974176691504996406687103068262168023475540877612192742089721371452241600965881325014795325558615520468904965111281665951836545184291668236073931490091706635763405289073198182463427370186634243288947077422339913068813410137392327375365792229119826406458480292427029641267299661485841793804068585892577723574727563611096133521736575509265259370186593052350456839301604021613675297',
'r': {'age': '3674668567902930915807021322736534615820675831315323804351739459471692596288402809594657678330211000400626245781110064832128430036774511173593607487989310948194720350796617940296880687418022279366243335301814402157936831163506372443844981675769382131760793890708835583215106521654781009365002040516266585611276965674491779958858540617070030758759291655891681967405840763031373949571692089701

最低0.47元/天 解锁文章
3684

被折叠的 条评论
为什么被折叠?



