Skip to content

Commit

Permalink
Merge pull request #5 from hien-p/main
Browse files Browse the repository at this point in the history
Add Move Language
  • Loading branch information
terrancrypt authored Jul 27, 2024
2 parents 20b1930 + 30b58cb commit 559b13d
Show file tree
Hide file tree
Showing 19 changed files with 275 additions and 1 deletion.
11 changes: 11 additions & 0 deletions src/data/roadmaps/algorand/content/application-binary-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,16 @@



```python
from algopy import ARC4Contract

class HelloWorld(ARC4Contract):
@abimethod()
def hello(self, name: String) -> String:
return "Hello, " + name
```



# Resources:
- [@article@ARC-4 github documentation](https://github.com/algorandfoundation/puya/blob/main/docs/lg-arc4.md)
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Smart contract aka Apps

The application Transaction communicate with Application Transactions
The application Transaction communicate with Application Transactions.


Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Aptos

Aptos labs strives towards being the safest and most scalable layer one blockchain solution

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Comparison Between EVM, Solana Runtime, MoveVM



# resources:

https://medium.com/@bucketprotocol/a-deep-dive-into-the-pros-and-cons-of-evm-solana-and-move-blockchains-879a4d942ee4
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# What is Mango ?
Mango Network is a Layer1 blockchain, written in rust, based on the Dpos consensus mechanism and supported by Move, to build a transaction-based omni-chain infrastructure network


![image](https://mangonet.io/img/img27.png)

# Resources:
- [@official@Mango Network Introduce](https://github.com/MangoNet-Labs/mango)

14 changes: 14 additions & 0 deletions src/data/roadmaps/move/content/modules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# What is Modules
Modules are libraries that define struct types along with functions that operate on these type

A module has the following syntax:
```
module <address>::<identifier> {
(<use> | <friend> | <type> | <function> | <constant>)*
}
```

where address is a [valid literal address](https://move-language.github.io/move/address.html)

# Resources
- [@article@ What is Modules? ](https://move-language.github.io/move/modules-and-scripts.html#modules-and-scripts)
Empty file.
3 changes: 3 additions & 0 deletions src/data/roadmaps/move/content/move-source-file.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# What is Move source file
A Move source file (or compilation unit) may contain multiple modules and scripts

16 changes: 16 additions & 0 deletions src/data/roadmaps/move/content/move-virtual-machine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# What is Move VM?
Move VM is developed by Libra, a blockchain platform by Facebook. The main difference from other existing virtual machines, like EVM, it's:

* Support of Move language - resource oriented-language developed for Move VM.

* Move VM is resource-oriented: developer can define a resource, place resource under an account and move resources between accounts. But resource can be never duplicated, reused or discarded.

* Bytecode verification. To be executable code must be verifiable

This document describes how Move VM works


All this makes Move VM much safer than other blockchains VMs. For example, the famous DAO hack just couldn't happen, because of the resource model and bytecode verification.

# Resources
- [@official@Move VM Specification](https://github.com/move-language/move/blob/main/language/documentation/spec/vm.md)
14 changes: 14 additions & 0 deletions src/data/roadmaps/move/content/movement-move-powered-blockchain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# What is the Movement Network?

Movement Labs is building a network of Move-based blockchains.

It will support Aptos Move, Sui Move, and also our embedded EVM interpreter MEVM—empowering both Sui, Aptos, and EVM users to use the L2.


# Resources
- [@official@Movement Docs](https://docs.movementnetwork.xyz/)
- [@official@Movement Learning Resources](https://docs.movementlabs.xyz/ecosystem/learn/learning-resources)
- [@official@Building with Movement](https://hack.movementlabs.xyz)



6 changes: 6 additions & 0 deletions src/data/roadmaps/move/content/origins-of-move-language.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

# The origin of move language

Facebook started a project called The Diem Association to build a digital payments platform using blockchain technology. They created a programming language called Move for this payment system to make it very flexible and powerful.

The Diem Association is committed to compliance, consumer protection, and fostering an open and competitive network. They also provide resources for developers to build on the Diem Blockchain.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Similarities Between Rust and Move

## Memory Safety
Both Rust and Move prioritize memory safety.

* Rust achieves this through its ownership model and borrowing rules, preventing data races and null pointer dereferencing.

* Move, while not dealing with memory management directly, ensures safety by treating resources as first-class citizens that must be explicitly created, transferred, and destroyed.


## Modular Design
* Rust's module system allows for the organization and reuse of code, making it easier to manage complex projects.

* Similarly, Move's modular design encourages the creation of reusable and composable modules, enabling developers to build complex smart contracts from simpler components.

# Resources:

- [@article@From rust to move](https://nadev.hashnode.dev/from-rust-to-move-a-guide-for-rust-developers-transitioning-to-move#heading-similarities-between-rust-and-move)

5 changes: 5 additions & 0 deletions src/data/roadmaps/move/content/sui-move-powered-blockchain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Sui by Mysten Labs
A next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model

# Reference:
- [@official@Sui](https://x.com/Mysten_Labs)
17 changes: 17 additions & 0 deletions src/data/roadmaps/move/content/the-diem asscociation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

# History
Origins Diem started in 2017 when Morgan Beller joined Facebook's secret blockchain project.

In January 2018, Facebook CEO Mark Zuckerberg shared a New Year's resolution post about wanting to learn more about cryptocurrencies.

On May 8, 2018, Facebook Vice President David Marcus announced he would lead Facebook's blockchain project instead of the Messenger division.


# **Libra Project Announcement**

On June 18, 2019, Facebook [announced](https://libra.org/en-US/updates/introducing-libra/) a new payment system called Libra. It uses blockchain technology to move money at low cost. The Libra token is a stablecoin backed by various currencies and government securities, known as the Libra Reserve. This reserve would be held by custodian banks around the world and managed by exchanges that convert it to local currencies.

Facebook planned to create a digital wallet for Libra under a new subsidiary called [Calibra](https://messari.io/organization/calibra) (now called Novi), led by Morgan Beller, David Marcus, and Kevin Weil. The project would start as permissioned, but the goal was to make it permissionless within five years.

# Resources:
- [@article@Diem project](https://messari.io/project/diem/profile)
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Key Differences Between Rust and Move

## Resource-Oriented Programming

The difference between Rust and Move is the resource-oriented programming.

In Move, resources represent assets that cannot be duplicated or discarded. This is crucial for managing digital assets on the blockchain, ensuring their integrity and security.

## Execution Model
Rust is a general-purpose programming language designed for a wide range of applications, from system programming to web development.

Move, on the other hand, is specifically designed for writing smart contracts. Move's execution model is built around transactions and scripts, allowing for secure and flexible interactions with the blockchain.

- [@article@Key Differences Between Rust and Move](https://nadev.hashnode.dev/from-rust-to-move-a-guide-for-rust-developers-transitioning-to-move#heading-key-differences-between-rust-and-move)


10 changes: 10 additions & 0 deletions src/data/roadmaps/move/content/what-is-move.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# What is Move?
Move is designed to be a platform-agnostic language to enable common libraries, tooling, and developer communities


> Move's ambition is to become the "JavaScript of web3"

# Visit the following resources to learn more:

- [@article@Move-awesome](https://github.com/MystenLabs/awesome-move/tree/main)
5 changes: 5 additions & 0 deletions src/data/roadmaps/move/content/why-move.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Why Move?

Move was created to address the specific needs of blockchain development, focusing on safety, flexibility, and resource management.

Unlike general-purpose languages, Move introduces the concept of resources that represent assets, ensuring they cannot be duplicated or discarded unintentionally. This resource-oriented programming model is designed to prevent common vulnerabilities and ensure the integrity of digital assets.
106 changes: 106 additions & 0 deletions src/data/roadmaps/move/move.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
[
{
"phase_id": "1",
"phase_name": "Move roadmap",
"topics": [
{
"topic_id": "what-is-move",
"topic_name": "What is Move?",
"subtopics": [
{
"subtopic_id": "why-move",
"subtopic_name": "Why move?"
},
{
"subtopic_id": "similarities-between-rust-and-move",
"subtopic_name": "Similarities Between Rust and Move"
},
{
"subtopic_id": "the-differences-between-rust-and-move",
"subtopic_name": "The Differences Between Rust and Move"
}
]
},
{
"topic_id": "origins-of-move-language",
"topic_name": "Origins of Move Language",
"subtopics": [
{
"subtopic_id": "the-diem asscociation",
"subtopic_name": "The Diem Asscociation"
}
]
}
,
{
"topic_id": "move-powered-blockchains",
"topic_name": "Move-Powered Blockchains",
"subtopics": [
{
"subtopic_id": "sui-move-powered-blockchain",
"subtopic_name": "Sui Blockchain"
},
{
"subtopic_id": "aptos-move-powered-blockchain",
"subtopic_name": "Aptos Blockchain"
},
{
"subtopic_id": "movement-move-powered-blockchain",
"subtopic_name": "Movement Blockchain"
},
{
"subtopic_id": "mango-move-powered-blockchain",
"subtopic_name": "Mango Network"
}
]
},
{
"topic_id": "move-virtual-machine",
"topic_name": "Move Virtual Machine (VM)",
"subtopics": [
{
"subtopic_id": "subsequent-blocks-of-transactions",
"subtopic_name": "The subsequent blocks of transactions"
},
{
"subtopic_id": "move-bytecode-verifier",
"subtopic_name": "Move bytecode verifier"
},
{
"subtopic_id": " move-intermediate-representation-compiler",
"subtopic_name": " Move intermediate representation (IR) compiler"
},
{
"subtopic_id": "comparison-EVM-Solana-movevm",
"subtopic_name": "Comparison Between EVM, Solana Runtime, MoveVM"
}
]
}
]
},
{
"phase_id": "2",
"phase_name": "Move Basics",
"topics": [
{
"topic_id": "modules-and-scripts",
"topic_name": "Modules and Scripts",
"subtopics": [
{
"subtopic_id": "modules",
"subtopic_name": "Modules"
},
{
"subtopic_id": "scripts",
"subtopic_name": "Scripts"
},
{
"subtopic_id": "move-source-file",
"subtopic_name": "Move source file"
}
]
}
]
}
]

10 changes: 10 additions & 0 deletions src/data/roadmaps/move/move.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: "Move Language Roadmap"
briefTitle: "Move"
description: "Move is a programming language for writing safe smart contracts originally developed at Facebook to power the Libra blockchain."
tags: ["skill-based"]
order: 5
isHidden: false
github: "https://github.com/move-language"
documentationLink: "https://www.openedu101.com/en/bootcamps/sui-on-move-bootcamp-2024--become-a-smart-contract-developer-from-scratch"
---

0 comments on commit 559b13d

Please sign in to comment.