Skip to content

Conversation

@apenzk
Copy link
Contributor

@apenzk apenzk commented Jan 21, 2025

Summary

MIP-92

@apenzk apenzk changed the title [draft] MIP-x: [draft] MIP-92: Move Stack Jan 21, 2025
@apenzk apenzk changed the title [draft] MIP-92: Move Stack [review] MIP-92: Move Stack Jan 21, 2025
@franck44 franck44 added Ready to Review Needs reviewing MD Contains an MD MIP Contains an MIP Committee review To review at next committee labels Jan 27, 2025

The Move Stack is organized into first-order and second-order categories:

```mermaid
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still think the second order distinction between logic and services is the clearest in my mind. This might actually be something that is good to talk to marketing or BD a bit about, to be honest.

1. **Move Stack Core (protocol units)**: Core components required for the operation of a Move-based Chain, as well as principal components.
1. **Move Stack Binder (protocol units)**: Components to which the Move-based chains can connect and that provide a greater environment for the chains to operate in. Such as cross-chain communication, FFS Validators, and decentralized shared sequencing:
1. **Services**: Modular components providing network or dApp remote APIs.
1. **Clients**: Interfaces for low-level interaction and components providing network or dApp remote APIs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some challenges here:

  1. core and binder likely are not going to have particularly neat lines during dev and maybe never. If we want to actually achieve this ontology, we are going to have to be quite strict and clear in our specifications.
  2. Clients are going to be so tightly involved in parts of core and binder that it won't make sense to distinguish them unless we have a set of clients that are essentially SDK-type. That is, clients that are the entrypoints we intend for users of the Move Stack. Is that the intent here?

Copy link
Contributor Author

@apenzk apenzk Feb 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. yes, i also lake clarity on how to separate this meaningful. The separation was decided in SF. What is your impression from our discussion in SF how to separate this better?
  2. no intent. this is RFC1 and i have not introduced anything new here. if clients are sdk tooling maybe they should be classed under sdk? is your proposal to remove the subclass clients from RFC-1?


**Movement SDK**

1. **CLI**: Command-line interfaces.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the intent for this to be a living MIP wherein we are constantly updating the list? Otherwise, the challenge as always would be splitting the universe via a clear ontology that actually covers all subcategories. There are some things I can suggest, but they're not really worth it if we want this to be more of a living document.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I think this MIP has to evolve with the stack. We may migrate certain content lateron to a different location and use this as a summary, but currently the MIP seems the best public place.

1. **Compiler**: Smart contract compilers for the Move language (e.g., Move LLVM).
1. **Execution**: Virtual machines and block executors (e.g., Aptos Block Executor).

**Move Stack Binder (protocol units)**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Binder is a little interesting to me here. I would suggest that as a DLT company consensus and related components are really core. I would think instead, if anything makes sense for binder, it's units that allow you to plug one abstract subsystem into another.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's an example:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So would the following be correct?
Shared Sequencers --> Binder
DA --> Binder
Consensus --> Core
Networking --> Core
Settlement: Settlement mechanisms (e.g., R0M ETH Settlement). --> Binder

Or are you suggesting to go into the subfolders? (which would seem a bit extreme to me)


The Movement SDK provides:

1. A unified interface for interacting with Movement technologies.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, so insofar as "Clients" are distinct, I think they should be brought up here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Committee review To review at next committee MD Contains an MD MIP Contains an MIP Ready to Review Needs reviewing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants