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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions