Web3 : 多签方案设计

1. 用户场景

      1. 用户可以选择提取或者兑换的时候启用多签验证

      2. 用户在安全设置里面设置多签,主要是开通多签,配置多签账户和签名通过比例

      3. 当用户触发多签时候,创建针对交易的一次多签,创建成功并自自动为创建用户做一次签名

     4. 其他成员打开我们应用(不需要系统登录)根据钱包获取待签名列表,发起签名

     5. 签名通过之后,根据签名结果,关联到交易,运营人员可以审核通过并且执行下一步动作

     6. 多签未通过的时候可以取消,确定以后不能取消

2.用例分析

    2.1 用例


  2.2 时序图

3.领域划分

  3.1 分析用例

    3.1.1 实体

  • 多签(Multisig):由多个参与用户组成的多重签名机制,包括多签地址、多签钱包、多签状态等属性。
  • 交易(Transaction):包括交易编号、交易金额、交易状态等属性。
  • 用户(User):包括用户ID、用户名、密码等属性。

   3.1.2 值对象

  • 待签列表(PendingList):包括待签交易的交易编号、交易金额、交易状态等属性。
  • 交易详情(TransactionDetail):包括交易描述、交易时间、交易类型等属性。

    3.1.3 聚合

  • 多签聚合(Multisig Aggregate):由多签、交易、待签列表等构成,表示一个完整的多重签名机制。

    3.1.4 服务

  • 多签服务(MultisigService):提供创建多签、启用关闭多签、发起交易、上传多签到合约、查看目前交易中的多签等操作。
  • 参与用户服务(ParticipantService):提供查看待签列表、发起同意签名、发起取消交易签名等操作。
  • 钱包系统服务(WalletSystemService):负责监听合约事件,获取多签结果并通知交易系统。

  3.1.5 领域事件

   

  • 多签创建事件(MultisigCreatedEvent):当多签创建成功时触发,包含多签地址、多签钱包等信息。
  • 多签启用事件(MultisigEnabledEvent):当多签启用成功时触发,包含多签地址、多签钱包等信息。
  • 多签关闭事件(MultisigDisabledEvent):当多签关闭成功时触发,包含多签地址、多签钱包等信息。
  • 多签交易事件(MultisigTransactionEvent):当多签交易发起时触发,包含交易信息和多签地址等信息。
  • 待签交易事件(PendingTransactionEvent):当有待签交易时触发,包含待签交易信息和多签地址等信息。
  • 同意签名事件(AgreeSignatureEvent):当参与用户同意签名时触发,包含交易信息和多签地址等信息。
  • 取消签名事件(CancelSignatureEvent):当参与用户取消签名时触发,包含交易信息和多签地址等信息。
  • 交易创建事件(TransactionCreatedEvent):当交易创建成功时触发,包含交易信息和用户信息等。
  • 交易状态变更事件(TransactionStatusChangedEvent):当交易状态发生变化时触发,包含交易信息和状态变更原因等信息。

    3.2 划分域

        3.2.1  核心域

         

  • 多签管理域:包括多签聚合、多签服务等,是整个系统的核心业务领域。
  • 交易管理域:包括交易实体、交易服务等,是整个系统的核心数据领域。

       3.2.2 支撑域

     

  • 钱包系统管理域:包括钱包系统服务等,为多签管理域和交易管理域提供支持。

       3.2.3 通用域

   

  • 用户管理域:包括用户实体、用户服务等,为整个系统提供通用的用户管理功能。
  • 待签列表管理域:包括待签列表值对象、参与用户服务等,为整个系统提供通用的待签列表管理功能。

4.应用架构

 

    5.数据库设计