Move Language 的靈感來源於 Rust,是當時為了開發 Diem 而開發出來的一種新的編程語言,和以太坊用的 solidity 不一樣。以太坊當時主要解決的是比特幣上編寫智能合約困難的問題,所以 solidity 是面向區塊鏈智能合約的編程語言,它把 token 當作 value(數值)來進行處理,交易通過通過將一個地址的餘額減少,和另一個地址的餘額增加,並且減少和增加的數值一定要是相等的,這個就很容易產生資產安全問題,可能會有資產憑空產生或者消失的情況。
Move 不是面向智能合約的編程語言,而是面向區塊鏈鏈上資產的編程語言,它將 token 作為 resource(資源)來處理,在底層進行封裝,而且必須要和帳戶進行綁定,一個帳戶在一個時間只能有一種類型的 resource,從帳戶中被取出時就必須被使用,取多少用多少。以及諸多安全機制,讓 Move 更適用於區塊鏈開發。也有了透過鐵人 30 來學習 Move 的想法。
從 concept 和 coding convention 起頭暖身,並陸續介紹 primitive type, expression and scope… 等等基本知識。
Advance Topic 分為 part1 和 part2 涵蓋了眾多進階知識,包含了像是 Global Storage, types with abilities, unit test… 等等。
最後,利用上述知識,帶大家完成實作項目 Creating Coins。
一天 Move 一點,讓我們 30 天成為 Move 大師吧!
建議使用 Potem 所開發的雲端編輯器直接操作即可。
https://playground.pontem.network/
點擊左邊項目欄 Projects 並建立一個新項目 “HelloWorld”。
點擊創建的項目。
點擊文件夾右邊的 + 將新文件 test_module.move
添加到 sources 區域中,並貼上下面內容。
address 0x1 {
module HelloWorld {
public fun gimme_five(): u8 {
5
}
}
}
點擊文件夾右邊的 + 將新文件 test.script.move
添加到 scripts 區域中,並貼上下面內容。
script {
use 0x1::HelloWorld;
use 0x1::Debug;
fun main() {
let res = HelloWorld::hello();
Debug::print<u8>(&res);
}
}
通過點擊左上方 Build 按鈕來建構項目。
左測菜單中選則 Run Script,並輸入 main()
按 enter 來執行腳本。
console 結過如看到下圖,代表可以 Move to Day 2。