Skip to content

Offchain Signing Manager Pallet #230

@arrudagates

Description

@arrudagates

We need a pallet to manage the TSS system and to give an interface for payload signature request by users + signed payload delivery by TSS nodes.

WIP architecture:

type Payload = Vec<u8>;

config {
  MinimumParticipants: u32;
}

storages {
  SignatureRequests: Hash -> Payload;
  CurrentNodes: AccountId32 -> EcdsaPubKey;
}

offchain worker {
  // get offchain storage of signature requests
  // if different from current storage, set to new one
  // get offchain storage of requests already being processed
  // if any new request not in processing storage, begin tss process

  // if any finished request still in onchain requests storage then submit deliver_signed_payload call
}

calls {
  request_signature(payload: Payload); // Submitted by user

  deliver_signed_payload(hash: Hash, signature: Signature); // Submitted by one of the TSS nodes

  set_participants_and_threshold(threshold: u32, participants: Vec<Participant>) // Root-only call
}

There has to be an automated way to signal a new node entering the set and a way to kick out nodes inactive for too long.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions