Skip to content

Instantly share code, notes, and snippets.

@AlexxNica
Last active March 22, 2023 22:45
Show Gist options
  • Save AlexxNica/0bc792e10ec6307b1daeb4496a21ffc4 to your computer and use it in GitHub Desktop.
Save AlexxNica/0bc792e10ec6307b1daeb4496a21ffc4 to your computer and use it in GitHub Desktop.
Filecoin Plus reference documentation

Filecoin Plus - Reference

This is a draft while we consolidate information from multiple sources into a single and concise reference document.

Workflows

Common Workflow (Client & Notary)

Client-specific Workflow

  1. DataCap allocation requested
  2. Answers any requests for more information
  3. Receives notaries' decision if approved or not approved
    • Approved
      • Receives on-chain DataCap allocation
    • Not approved

Notary-specific Workflow

  1. DataCap allocation request received
  2. Performs risk assessment (e.g., due diligence, KYC)
  3. Asks for more information if needed
  4. Decide to approve or not approve
    • Approved
      1. Create transaction proposal on-chain

        with threshold set to 2+1 (1 for the proposer bot?)

        The extra required signer is there because the proposer automatically approves its own proposals, so we discard that. (reference)

      2. Execute upon reaching required number of approvals
      3. DataCap allocated to client
    • Not approved

GitHub Workflow

Repositories

Labels: Notary Governance

Labels: Client Onboarding

Label Description
bot:lookingGood
bot:reviewNeeded
state:Further info needed
state:Granted
state:Verifying
status:Error

Labels: Large Datasets

Label Description
Application:AddressNotValid
bot:lookingGood
bot:readyToSign
bot:reviewNeeded
issue:TotalDcReached
state:Approved
state:Further info needed
state:Granted
state:StartSignDatacap
state:Verifying
status:Error
status:needsDiligence
warn:checkTransaction

Notes

The following are notes with information that needs to be confirmed before publishing.

Addresses

Addresses are wallets (reference)

  • Public Key
    • f1: secp256k1
    • f3: bls12-381
  • Random SHA-256 Hash
    • f2: actor address

Actors


Types of Information

  • Artifacts
    • DataCap
    • Dataset (Stored data)
    • Infringements
  • Roles
    • Root Key Holder
    • Notary
    • Client
    • Storage Provider
    • Community Member
  • Processes
    • DataCap-related
      • Application
        • Application submission
        • Application review
      • Allocation
        • Allocation
        • Allocation batch (LDN-specific)
      • Verification (due diligence)
        • Notary pool selection
    • Other
      • Monitoring
      • Auditing
      • Dispute
      • Risk scoring
    • Statuses
    • Community Engagements

Message Pool

  • Can be checked on-chain for pending messages (reference)

Multisig Wallet

Can be inspected on-chain (reference)

Proposals

Can be inspected on-chain (reference)

  • Generates a message ID
  • Generates a transaction ID
  • Pending proposals can be cancelled

Received approvals

Required approvals threshold

Wallet members (reference)

Role: Signer

  • Can approve proposal messages
  • Can propose a transaction
  • Can have addresses swapped (reference)
    • All approvals get automatically cancelled
  • If removed from the wallet, gets all approvals automatically cancelled

Role: Proposer

  • Automatically approves its own proposal messages
  • Can cancel its own transaction proposals

Transaction

  • Can have list of addresses responsible for the approval decision
  • Transaction ID can change under chain re-orgs (reference)

Constraints

  • Verifier cannot be added as a verified client
  • DataCap is an integer number of bytes (reference)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment