GithubHelp home page GithubHelp logo

ic-strategy-planning's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

ic-strategy-planning's Issues

Unlimited Transparent Orthogonal Peristence

We don't want to think about the 4GB limit, or having to transfer memory in and out. You don't think about multi-canisters or which type of storage. You just store stuff.

Token Standard

These are my thoughts on the ideal token standard. I don't plan on implementing my own, I just want to use this information to inform discussions around coming to consensus on a standard as a community:

  • accounts and balances
  • account identifiers (principals or addresses??)
  • transfer
  • transfer_safe
  • transfer delegations? (the ability to delegate the power to transfer to other accounts)
  • history
    • blocks?
  • verifiability
    • validity proofs?
    • blocks?
    • verifying the ledger itself and the implementation itself
  • privacy
    • should blocks be publicly exposed?
    • should blocks/transactions only be exposed to participants in a transaction?
  • DOS prevention
  • Notifications
  • Receipts (a transfer would atomically return a verifiable receipt of the transfer that could be passed along to interested parties)
  • Atomicity (this might negate the need for receipts, as transfers could occur atomically with other update calls)
  • Extensibility (this might be covered just fine by a canister's ability to extend itself)
  • Fungibility? Should we have two standards are one standard?
  • Automatic cycles top-up (cycles bonding curve?)
  • Transaction fees
  • Subnet size (we may want to agree upon the replication factors of subnets depending on the security requirements of a token)
  • Scalability (transaction throughput and storage)
  • Formal verification
  • Property-based tests
  • Multiple independent audits
  • Test suite that other implementations can use
  • Minting, burning, or fixed supply
  • Who should be allowed to pay for fees? I think fees should always be payable in the token, but perhaps the receiver should be allowed to pay the fee

Current Proposed Token Standards

  • IS20
  • DIP20
  • Extendable Token Standard
  • Deland Labs fungible-token-standard

Virtual File System

There might be use-cases where you need a file system like S3 or Object Storage.

This is more of a maybe.

Stable Subnets

Subnet finalization rates drop often, and sometimes subnets go read-only for long periods of time.

2023

These are the most important protocol features that Demergent Labs will push for in 2023.

  • Wasm binary size limit (coming ~Q2 2023)
    • Will drastically reduce Azle/Kybra compile times
    • Will remove the need for ic-cdk-optimizer (major source of compile times)
    • Will allow Python stdlib and PyPI packages in Kybra
    • Will allow larger npm packages in Azle (like Motoko JS runtime)
    • Will remove the need for gzip, which adds complexity to build process and dfx.json for the developer
    • Will remove the need to install and use ic-wasm just to put custom metadata sections back
    • Will allow us to implement (hopefully) async/await in Kybra
  • Stable data structures (especially removing max key and value sizes and recovering memory)
    • Will make development with stable structures much simpler (major source of complexity for devs)
    • Will remove the need to add many directives and extra complexity in Sudograph
    • Will allow developers to use the maximum stable memory size
  • Increases in stable memory size (100 GiB+)
    • Will make single-canister development, stable structures, and Sudograph more attractive to devs
  • DFX extensions (work beginning in Q1 2023)
    • Will allow Azle/Kybra dfx.json to be as simple as Motoko or Rust, reducing complexity for devs, improving DX
  • Remove the need for Candid file to be specified in dfx.json for Rust and custom canisters (should be coming in April 2023: https://forum.dfinity.org/t/automatically-generate-candid-from-rust-sources/5924/20)
    • Will remove 5-10 seconds from Azle/Kybra compile times
    • Will reduce Azle/Kybra build process complexity
    • Will reduce architecture complexities from having to compile for the developers' machines vs just wasm32-unknown-unknown (this has caused a bug before that was difficult to understand and fix)
  • Increased cycle threshold for queries and composite queries
    • May allow for more complex Sudograph queries
  • Message size limit increase or abstraction
  • Cycle compensation at the protocol level (instead of burning all cycles, the protocol sets aside a percentage for the libraries installed into a canister, thus providing open source projects a stream of revenue)
  • cdk public metadata standardized
    • We will be able to query any canister and know if it is an Azle or Kybra canister
    • Canister indexing services like the IC dashboard and icscan will be able to show canister totals by CDK, and could allow us to filter and sort through Azle, Kybra, Rust, Motoko and other canisters
  • Wasi support
  • WebSockets
  • zkWasm on the DFINITY roadmap

Custom Domains

As an app developer I want to deploy my app to a custom domain like sudograph.com.

Ultimate Certification

For example, it would be awesome to click the little browser URL lock button (like in Chrome) and see the following certifications:

  • DNS
  • SSL
  • All frontend assets signed by the subnet
  • Wasm binary verified
  • State changes to be verified (validity proofs)

Maybe a browser extension is a good first step.

Subnet Splitting

If a subnet gets too large, it should automatically split into multiple subnets.

Canister State Privacy/Confidentiality

We don't want node providers to be able to read the state data of canisters they host. This might be accomplished through:

  • Multi party computation
  • Secure enclaves
  • Homomorphic encryption

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.