在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可以提供了一些快捷方式實現更輕松的編寫查詢和更新調用的函數。
0x840共售出57.2萬枚BONE,賺取了54萬美元:金色財經報道,據The Data Nerd監測數據,4小時前,0x840共售出57.2萬枚BONE(876K美元),單價為1.53美元。他總共賺取了54萬美元(60%)利潤,仍持有406,000枚BONE。不久之后,他還從binance中提取了826億枚SHIB(85.3萬美元)。[2023/8/14 16:24:58]
最低到最高級別的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項目的典型工作流程如下:
1、在本地打開一個終端窗口。
2、運行以下命令驗證是否安裝Cargo:
由于大多數開發者都是使用Cargo來處理build和packagsemanagementtask:下載和編譯Dapp所依賴的程序庫,以下是使用Cargo命令行界面創建的一個新的Rust項目示例。但使用Cargo創建一個項目代表創建Rust項目的典型工作流程如下:
渣打銀行子公司Zodia Custody完成3600萬美元A輪融資:金色財經報道,渣打銀行子公司、加密貨幣托管機構Zodia Custody完成3600萬美元A輪融資,日本SBI公司領投,并成為第二大股東,所籌資金將用于在歐洲和亞洲市場之外進行地域擴張,還將用于增加更多數字資產,包括抵押的ETH。[2023/4/27 14:29:44]
1、在本地打開一個終端窗口。
2、運行以下命令驗證是否安裝Cargo:
cargo--version3、更改為用于InternetComputer或Rust示例項目的文件夾名。
4、運行以下命令來創建一個新項目:
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文件:
泰國證券交易委員會正在調查加密交易所Zipmex的收益計劃:金色財經報道,根據 The Block 獲得的一份文件,泰國證券交易委員會正在調查陷入困境的加密貨幣交易所 Zipmex 的收益計劃,監管機構要求 Zipmex 泰國子公司 Zipmex Company Limited 就名為“ZipUp/ ZipUp+”的計劃的運作方式做出明確說明。文件指出,Zipmex 通過聘請 Babel Finance 在收益計劃中管理客戶的數字資產,而在未經批準的情況下提供收益計劃可能違反了國家的規定。監管機構在文件中援引緊急法令第 26條規定,根據泰國關于數字資產業務的緊急法令,任何管理與數字資產相關資金的人都需要獲得該國財政部的許可,該法令規定的處罰范圍包括罰款入獄。
此前消息,由于對 Babel Finance 和 Celsius 有風險敞口,Zipmex 在去年 7 月停止客戶提款并凍結客戶資金。Zipmex 估計其對 Babel 和 Celsius 的總風險敞口為 5300 萬美元。[2023/1/11 11:05:28]
1、運行pwd命令檢查是否位于項目的根目錄文件。
2、運行以下命令將默認Crago.toml文件復制到src目錄中:
cpCargo.tomlsrc/Cargo.toml在InternetComputer上運行的項目通常使用一個項目級Crago.toml文件來為項目Canister成員設置工作區,并使用Crago.toml源代碼目錄中的第二個文件來配置每個Canister的設置。
Ran Neuner:對于是否發行新的FTT代幣SBF完全沒有發言權:金色財經報道,CNBC主持人Ran Neuner在社交媒體上稱,我確實說過推出新的FTT代幣,也特比強調了只有存款人和債權人會得到補償。還有,SBF在這里完全沒有發言權,誰會在這里購買FTT代幣?
金色財經此前報道,Ran Neuner此前表示,如果啟動FTX交易所并發行新的FTT代幣,并將代幣分發給債權人/存款人,且將100%的利潤分配給代幣持有者。它將成為世界上最大的交易所,用戶能挽回更多的損失。SBF支持重啟FTX交易所并發行新FTT代幣的想法。[2022/12/10 21:35:04]
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、刪除分區。
6、保存更改并關閉文件繼續以下流程。
美聯儲喬治:盡管通脹可能正在緩和,但仍處于高位:8月19日消息,美聯儲喬治表示,盡管通脹可能正在緩和,但仍處于高位。到目前為止,核心通脹的緩解程度“很難令人寬慰”。上個月的通脹數字“令人鼓舞”,但還不是勝利的時候。美國的需求和供給之間仍然存在“相當嚴重的不平衡”。預計美國經濟增長將持續放緩,通脹預期看起來得到了充分錨定。美國勞動力市場緊張的狀況需要一段時間來緩解,需求仍處在一個相對較高的水平。[2022/8/19 12:34:54]
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:TERUSTDAPPDAPethyleneterephthalateBraintrustDAPPT幣DAPP價格
10月25日下午,由萬向區塊鏈和騰訊新聞聯合主辦的“數字化未來:元宇宙”?國際周開放日主題活動圓滿落幕.
1900/1/1 0:00:00一、區塊鏈政策要聞 甘肅省“十四五”數字經濟創新發展規劃:大力發展區塊鏈等數字產業9月27日訊,甘肅省人民政府辦公廳印發《甘肅省“十四五”數字經濟創新發展規劃》.
1900/1/1 0:00:00巴比特訊,10月22日,萊西市人民法院在普東看守所法庭,公開開庭審理被告人陳某、趙某、邱某某涉嫌組織、領導傳銷活動罪一案.
1900/1/1 0:00:00據Decrypt消息,10月24日,棱鏡門披露者及隱私倡導者愛德華-斯諾登發推抨擊世界幣項目,稱其使用人體進行加密.
1900/1/1 0:00:00據TheBlock消息,BitGo歐洲、中東和非洲地區的總經理DarrenJordan周四在倫敦舉行的Token2049會議上表示,企業經常詢問如何將比特幣添加到他們的資產負債表中.
1900/1/1 0:00:00福布斯10月5日消息,早期風投公司NFX今天宣布成立一只新的風投基金,這只4.5億美元的基金將專注于加密貨幣以及金融科技、地產科技、市場、游戲和生物科技等新興垂直領域.
1900/1/1 0:00:00