You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hyperledger Indy中降级TRUST_ANCHOR并移除其权限?

Hyperledger Indy 中TRUST_ANCHOR角色降级实现方案

可行性说明

可以将TRUST_ANCHOR角色降级并移除其权限。根据Indy账本的权限规则,**只有拥有足够权限的账号(如原创建该TRUST_ANCHOR的Steward)**能发起角色修改的NYM交易,将其调整为无特殊权限的普通DID身份。

Python实现步骤

实现逻辑与创建TRUST_ANCHOR的流程一致,核心是构建修改角色的NYM请求,将role参数设为None(表示移除特殊角色权限),再由有权限的账号签名提交到账本。

代码示例

# 1. 构建降级TRUST_ANCHOR的NYM请求
print_log('\n构建NYM请求以降级TRUST_ANCHOR角色\n')
nym_downgrade_request = await ledger.build_nym_request(
    submitter_did=user.steward_did,  # 使用原Steward的DID作为提交者(需具备权限)
    target_did=actor_did,            # 目标为要降级的TRUST_ANCHOR的DID
    ver_key=None,                    # 无需修改验证密钥,留空表示保留原密钥
    alias=None,
    role=None                        # 设置为None,移除TRUST_ANCHOR角色权限
)

print_log('降级NYM请求内容: ')
pprint.pprint(json.loads(nym_downgrade_request))

# 2. 签名并提交降级请求到账本
print_log('\n提交NYM降级请求到账本\n')
nym_downgrade_response = await ledger.sign_and_submit_request(
    pool_handle=pool_handle,
    wallet_handle=wallet_handle,
    submitter_did=user.steward_did,
    request_json=nym_downgrade_request
)

关键说明

  • 权限验证:提交请求的账号必须具备修改TRUST_ANCHOR角色的权限,通常只有Steward或更高级别的角色(如Trustee)能执行此操作,否则会被账本拒绝。
  • 角色参数:将role设为None会把目标DID的角色重置为普通身份,不再拥有TRUST_ANCHOR的权限(如创建其他DID、提交特定账本交易等)。
  • 结果验证:提交成功后,可通过ledger.get_nym接口查询目标DID的信息,确认其role字段已变为None。

内容的提问来源于stack exchange,提问作者brenodacosta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:29:55