以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > 區塊鏈 > Info

教程 | 如何使用Rust在Internet Computer上開發一個Hello World項目_TER:DAP

Author:

Time:1900/1/1 0:00:00

在IC鏈上開發雖然Motoko可能是最擁有優勢的編程語言之一,但是在開發者層面來說Motoko作為新興編程語言對他們來說是陌生的,這時候大部分的開發者在IC鏈上開發時都會選擇自己熟悉的編程語言進行構建Dapp,而不管是Motoko、Rust、C、JavaScript等編寫的Dapps,最后都會被編譯為WebAssembly部署在InternetComputer運行。最重要的是即使Dapp的組件是由不同語言編寫的,也可以通過Candid無縫集成,這也是IC鏈上開發的魅力所在。本期文章帶各位小伙伴探討如何使用不同的語言編寫Dapp以及如何在InternetComputer上部署Dapp。

使用Rust在InternetComputer上開發

開發人員可以通過使用Cargo并編譯Dapp以使用WebAssembly作為目標輸出來創建Rust項目在InternetComputer上運行。

本字節概述將Rust程序部署為InternetComputer上的Canister所涉及的關鍵步驟,需要注意的是此處描述的步驟只是一種實現方法,也可通過其他方法實現。以下操作流程的示例項目是以下存儲庫中示例項目的其中之一。

注意:RustCDK可以提供了一些快捷方式實現更輕松的編寫查詢和更新調用的函數。

消息人士:Metalpha已從比特大陸為其基于灰度的投資基金籌集500萬美元:5月25日消息,據消息人士報道,香港資產管理公司 Metalpha 已從比特大陸為其基于 Grayscale 的基金籌集了 500 萬美元。Metalpha 希望為 Next Generation Fund I 籌集 1 億美元,該基金是它與 NextGen Digital Venture Limited 合作成立的。截至 3 月底,Metalpha 已為該目標籌集了 2000 萬美元。該基金通過結構化衍生品投資于 Grayscale 產品,以符合美國和香港法律的方式授予對數字資產投資組合支柱的訪問權。[2023/5/25 10:40:33]

最低到最高級別的RustCDK程序庫

RustCDK程序庫:https://github.com/dfinity/cdk-rs使用RustCDK快捷方式編寫查詢更新調用示例項目:https://github.com/dfinity/cdk-rs/tree/main/examples01創建項目

由于大多數開發者都是使用Cargo來處理build和packagsemanagementtask:下載和編譯Dapp所依賴的程序庫,以下是使用Cargo命令行界面創建的一個新的Rust項目示例。但使用Cargo創建一個項目代表創建Rust項目的典型工作流程如下:

Bitfinex Alpha:在比特幣的波動中,通貨膨脹再次抬頭:2月21日消息,根據Bitfinex Alpha報告,數據顯示未來美聯儲加息可能會超過25個基點。今年1月通脹加劇,盡管總體CPI同比下降,但部分消費支出類別顯示通脹依然持續。所有這些因素加起來,美聯儲可能會推遲恢復2%的目標利率。

上周BTC價格漲至25000美元,達到八個月高點。期權市場此前表現出看漲傾向,但現在維持對市場的中性展望。Bitfinex Alpha分析了25%的Delta偏差,以更好地解讀市場情緒。此外,數據表明,一年來首次有新資本流入市場。比特幣蝦米地址達到4320萬個,創歷史新高。[2023/2/21 12:19:44]

1、在本地打開一個終端窗口。

2、運行以下命令驗證是否安裝Cargo:

由于大多數開發者都是使用Cargo來處理build和packagsemanagementtask:下載和編譯Dapp所依賴的程序庫,以下是使用Cargo命令行界面創建的一個新的Rust項目示例。但使用Cargo創建一個項目代表創建Rust項目的典型工作流程如下:

1、在本地打開一個終端窗口。

2、運行以下命令驗證是否安裝Cargo:

cargo--version3、更改為用于InternetComputer或Rust示例項目的文件夾名。

4、運行以下命令來創建一個新項目:

去中心化質押協議Rocket Pool宣布獲得Coinbase Ventures投資:2月18日消息,以太坊2.0質押協議Rocket Pool創始人David Rugendyke昨日在Discord社群宣布,Coinbase Ventures已投資于該協議。此外,CoinbaseVentures還計劃利用其RPL和ETH來建立的Rocket Pool小型池。[2023/2/19 12:15:21]

cargonewmyrustdapp此命令創建一個my_rust_dapp帶有默認Crago.toml文件的新目錄和一個帶有src目錄的main.rs的默認文件。5、運行以下命令切換到項目目錄:

cdmyrustdapp如果你列出項目目錄內容,將會看到它只包含Crago.toml文件和src目錄,要編譯此項目在InternetComputer上運行需要一些附加文件。

02修改Crago配置文件

該Crago.toml文件為每個Rust程序包提供一個清單,清單包含指定Rust程序包配置詳細信息,為了準備Rust項目在InternetComputer上運行,我們需要復制默認Crago.toml文件,然后修改項目的一些配置細節。修改Grago.toml文件:

1、運行pwd命令檢查是否位于項目的根目錄文件。

2、運行以下命令將默認Crago.toml文件復制到src目錄中:

P97 Networks與Visa達成合作,以將其代幣技術用于移動支付:2月6日消息,互聯商務和移動服務提供商P97 Networks宣布與Visa合作,以將其代幣技術用于移動支付。通過此次合作,兩家公司的目標是減少車內支付的摩擦,并在公共網絡上實現電動汽車充電支付服務。在合作的第一步,該公司將推出新的P97網絡代幣服務,旨在連接眾多數字錢包和汽車,以改善客戶體驗,同時使其更加安全和高效。(The Paypers)[2023/2/6 11:50:12]

cpCargo.tomlsrc/Cargo.toml在InternetComputer上運行的項目通常使用一個項目級Crago.toml文件來為項目Canister成員設置工作區,并使用Crago.toml源代碼目錄中的第二個文件來配置每個Canister的設置。

3、在文本編輯器中打開Crago.toml作為項目根目錄文件。默認情況下該文件包含和分區。

4、將該分區替換為類似于以下內容的分區:

members=[

"src/my\_rust\_dapp",

]

有關分區和鍵值的信息參考如下:https://doc.rust-lang.org/cargo/reference/workspaces.html有關于Crago.toml文件中配置的其它分區和鍵值的信息如下:https://doc.rust-lang.org/cargo/reference/manifest.html5、刪除分區。

馬斯克不認同《紐約時報》稱FTX事件影響巴哈馬經濟:金色財經報道,據《紐約時報》披露,SBF目前在美國已經成為不受歡迎的人,但巴哈馬本地居民卻更同情他,SBF一直努力實現巴哈馬經濟多元化,發展旅游之外的經濟模式,當地人擔心 FTX 事件導致加密投資者流失影響本地經濟。不過,有人認為《紐約時報》發布這樣的消息是在幫SBF開脫,此觀點也得到Elon Musk認同。[2022/12/27 22:10:36]

6、保存更改并關閉文件繼續以下流程。

7、在文本編輯器中打開src/Cargo.toml文件。

8、添加一個包含主源代碼路徑的分區,類似于以下內容:

path="main.rs"

9、使用任何程序包依賴項更新分區。

10、保存更改文件繼續以下操作。

03添加Canister配置文件

當你使用DFINITYCanisterSDK創建新項目時,dfxnew命令會自動將默認dfx.json配置文件添加到項目目錄中,因為以上示例是使用Cargo創建的Rust項目,所以需要在項目目錄中手動去創建這個文件。添加dfx.json配置文件流程如下:

1、運行pwd命令檢查是否在項目目錄中。

2、在項目根目錄中創建一個新的dfx.json配置文件。

3、在文本編輯器中打開dfx.json文件。

4、將具有類似以下設置的version和canisters鍵值添加到dfx.json文件中:

{"version":1,"canisters":{

"my\_rust\_dapp":{"type":"custom","candid":"src/my\_rust\_dapp.did","wasm":"target/wasm32-unknown-unknown/debug/my\_rust\_dapp.wasm","build":"cargobuild--targetwasm32-unknown-unknown--packagemy\_rust\_dapp"}

}}

以上設置解釋:

version設置用于標識創建項目的軟件版本;canisters分區指定項目Canister的名稱,在以上情況下只有一個Canister,名為my_rust_dapp;type鍵值設置為custom,因為該Canister不是當前識別的Canistertypes之一;Candid鍵值指定名稱和Candid的接口描述文件的位置用于此項目;Wasm鍵值指定由cragobuild命令生成WebAssembly文件路徑;build鍵值指定crago命令用于編譯的輸出;這些是所需的最低設置,當需要構建更復雜的程序時,需要在Cargo.toml、dfx.json這兩個文件中包含其它配置信息。

5、保存更改關閉文件繼續以下操作。

04創建Candid接口描述文件

除了dfx.json配置文件之外,還需要一個Candid接口描述文件—例如:my_rust_dapp-did—將Dapp的輸入參數和返回值格式映射到它們在Candid中與語言無關的表示。創建Candid接口描述文件流程如下:

1、運行pwd檢查是否仍在項目目錄中。

2、在src項目目錄中,創建一個新的Candid接口描述文件,例如my_rust_dapp_did。

3、在文本編輯器中打開Candid文件,為Dapp定義每個功能添加描述,如果my_rust_dapp是一個簡單的增量計數器Dapp使用increment、read和write功能,該my_rust_dapp.did文件是以下這樣的:

service:{

"increment":()->();

"read":()->(nat)query;

"write":(nat)->();

}

4、保存更改并改變文件繼續以下流程。

05修改默認Dapp

創建新項目時,項目的src目錄中會包含一個模版main.re文件,其中包含“HelloWorld!”程序。修改模版源代碼流程如下:

1、在文本編輯器中打開src/main.rs模版文件并刪除現有內容。

2、編寫要在InternetComputer上部署的程序,編寫程序時,請注意有兩種類型的調用—查詢調用和更新調用—并且更新函數使用異步消息傳遞。

3、保存更改并關閉src/main.rs文件操作以下流程。

06部署Dapp

在部署和測試Dapp之前,需要執行以下操作:

連接本地Canister執行環境或InternetComputer主網;為Dapp注冊特定于網絡的標識符;使用WebAssembly的目標輸出編譯Dapp;由于以上示例使用可編譯為WebAssembly的Cargobuild命令配置了自定義dfx.json文件,因此可以使用dfx命令行界面和標準工作流程來完成所有剩余步驟。在本地構建和部署Dapp流程如下:

1、運行pwd檢查是否在項目目錄中。

2、在本地計算機打開新的終端窗口或Tab,然后導航到項目目錄中。如果是在macOS上運行終端,可以執行以下任一操作:

單擊shell,然后在NewTab在當前工作目錄中打開一個新終端;單擊shell并選擇NewWindow,然后在新終端中運行cd-ic-projects/locationhello;3、通過運行以下命令啟動本地Canister執行環境:運行結束后會根據平臺和本地安全設置提示警告,如果系統提示允許或拒絕傳入網絡連接點擊Allow。

4、讓顯示網絡操作的終端保持打開狀態,然后將焦點切換到創建項目的原始終端。

5、通過運行以下命令為Dapp注冊唯一的Canister標識符:

dfxcanistercreate--all

6、運行以下命令構建Dapp:

dfxbuild

7、運行以下命令在本地Canister執行環境上部署Dapp:

dfxcanisterinstall--all

8、從命令行或瀏覽器測試Dapp中的功能。

以上是使用Rust在InterputerComputer上開發一個HelloWorld項目的流程。

Tags:TERUSTAPPDAPFireStarterCUST區塊鏈dapp開發合法嗎dapp幣怎么從錢包提到交易所

區塊鏈
Facebook為其VR平臺Horizon Worlds推出1000萬美元創作者基金_BOOK:CEB

據TheVerge10月8日消息,Facebook宣布推出新的1000萬美元創作者基金,以鼓勵人們在其VR平臺HorizonWorlds上構建體驗,目前該平臺仍處于測試階段.

1900/1/1 0:00:00
新華社:組織“買手”、平臺撮合、出售套現……斬斷虛擬貨幣“洗白”贓款的“黑手”_520:買比特幣的平臺

新華社“新華視點”記者吳雨、吳光于、朱國亮 來源:新華社 近日,中國人民銀行等十部門發文,進一步防范和處置虛擬貨幣交易炒作風險.

1900/1/1 0:00:00
NEST博弈分析_Genesis:Genesis Finance

Genesis Global CEO:特斯拉轉向BTC是比特幣發展的必然結果:2月12日消息,Genesis Global Trading首席執行官Michael Moro表示.

1900/1/1 0:00:00
七國集團領導人發布央行數字貨幣準則,稱CBDC要符合嚴格標準_數字貨幣:BDC

七國集團(G7)本周一直在討論央行數字貨幣(CBDC),認為它們應“不帶來損害”,并符合嚴格的標準.

1900/1/1 0:00:00
美財政部發布2021制裁審查報告:數字資產的日益采用可能損害制裁效力_HAT:CHA

美國財政部周一發布了2021年制裁審查報告。雖然它強調了加密貨幣是一種威脅,但也強調了該部門與加密社區接觸的必要性.

1900/1/1 0:00:00
快時尚品牌H&M和lablaco推出首個由SPIN支持的基于區塊鏈的物聯網租賃服務_LINK:dome幣沒救了嗎

據Businesswire10月19日消息,歐洲循環經濟社交電商平臺lablaco與快時尚品牌H&M在柏林的一家店鋪H&MMitteGarten達成合作.

1900/1/1 0:00:00
ads