Skip to content

Proposal of kuai project #4

@Keith-CY

Description

@Keith-CY
  • Superficial problems
    • Separate runtimes
      • Verification on chain
      • Data construct(computation) off chain
    • Fragmented devtools
  • Underlying problems
    • An dapp includes an on-chain contract state verification logic and an off-chain data management workflow
      • Functional Programming in on-chain verification
      • Functional Programming in off-chain data management
      • OOP on manipulating off-chain data when interact with dapp
    • Lack of unified development paradigm
      • Uniformity on engineering
        • project structure
        • workflow
      • Composability on logics
        • interoperable models among dapps
    • Lack of devtools
      • Local network
      • Compile/Debug/Test
      • Deploy
  • How other ecologies are solving these problems
    • Engineering
      • hardhat
    • UTXO development paradigm
      • run
  • Target
    • Unified paradigm for development
      • Data storage

        • Basic Models/data structures
          • Data: for plain data storage
          • Code: extended from Data, for running scripts
          • MultiCoin Token: extended from Code, for token management
      • Data manipulation

        • Data
          • Sync: load data from chain
          • Get/Set/Delete: update data
          • New/Destroy/Duplicate: create/destroy data model
        • Code
          • Deploy:
          • Extend:
          • Upgrade:
          • Run: call a method
          • Link:
        • Token
          • Define
            • Name
            • Symbol
            • Token URI
            • Total Supply
          • Mint/Burn
          • Send
          • Stake/Redeem
          • Lock/Unlock
          • Combine
          • Get Balance
      • Reactive Lazy Evaluation

        • const model = new Data(init_value) | action_1 | action_2 | … | action_3 =>

        Struct {
        value
        actions: Action[]
        }

        • model will be finalized on consumption
        • With lazy evaluation
          • the state of model can be traversed
          • actions can be revoked easily
          • inspector(or other dependencies) could be injected for debug
    • Fine grind devtools
      • Clear project structure
      • Compile
        • debug
        • release
      • Debug
        • break
        • console
        • inspector
      • Test
        • run specific cases
      • Deployment
      • Configuration management
        • multiple network
        • hd wallet
      • Base contracts/scripts
  • Resources
    • 6 developers
    • 6 months
  • Roadmap
    • M1 ~ M2
      • build system similar to https://nx.dev/, only for project structure, basic tasks, and plugins
      • design storage paradigm
      • design action paradigm
      • design workflow with base contracts/scripts
    • M3 ~ M4
    • M5
      • implement tasks/plugins
      • implement local network
      • implement debug/test/deploy tools
    • M6
      • Use the project to deliver a simple .bit dapp

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    ✅ Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions