卡爾達諾鏈上程式碼

文章來源:

卡爾達諾網路具有多功能性和包容性。 它選擇 Haskell 作為其核心語言,但同時,它創建了開放網路以供任何替代語言的工具。 其目的是在確保相同級別的安全性的同時實現各種可能的解決方案。

這為卡爾達諾創建了一個非常特殊的生態系統,在這個生態系統中,有多種替代方案可以編寫鏈上程式碼,而不會影響區塊鏈的安全性。 這在其他協議上幾乎是聞所未聞的。

這些語言中的每一種都是編譯為 Plutus Core 的鏈上程式碼的替代品,這意味著這些替代品中的每一種都受益於解釋 Plutus Core 的 Plutus 虛擬機器。 值得注意的是,只有 PlutusTx 實際上擁有經過正式驗證的編譯器。 其他語言相對處於實驗階段,其中 Aiken 是使用和測試最廣泛的語言,儘管尚未得到正式驗證。 因此,使用哪一個只是偏好問題,而不是使它們彼此更好的屬性問題。

下面讓我們來看看卡爾達諾鏈上程式碼的不同程式語言。

卡爾達諾鏈上程式碼程式語言

PlutusTx

名單上編寫智能合約的一種方法是 PlutusTx,它是 Glasgow Haskell 編譯器(主流 Haskell 編譯器)的編譯器插件,主要語言是 Haskell。

這是 IOG 團隊支援的編寫鏈上程式碼的方法。 它是一種基於 Haskell 創建的特定領域語言,因此幾乎一比一地反映其母語言的語法。

PlutusTx 是主要方法,並獲得了 IOG 團隊的支持以及其他創始實體的支持。 它在某些領域擁有充足的支持,但與Aiken等其他替代方案相比,卡爾達諾生態系統仍缺乏全面的文件和資源。 在 Vasil 硬分叉和 PlutusV2 推出之後,它已經接受了重大修改。

未來,這種模式預計將持續下去。 核心開發人員將改進 Plutus 的功能,其他團隊將必須跟上他們的變化。 這就是為什麼建議每個想要進入卡爾達諾開發的人學習 Plutus。

Aiken

Aiken 是 PlutusTx 的替代品之一。

Aiken 借用了 Rust、Elm 和 Elixir 的一些語法,並將其合併到對 Cardano 開發人員友善的工具中。 Aiken 得到了卡爾達諾基金會的支持,作為卡爾達諾的開源語言,專注於創建易於使用的專用套件管理器,提供可讀的錯誤訊息,幫助更快、更輕鬆地解決問題。

這使得 Aiken 憑藉其清晰的文件、端到端的範例和充滿活力的社區,成為原始 PlutusTx 的非常受歡迎的替代品。 有相當多的開發人員了解函數式編程,具有 TypeScript、Python、Java 和 Go 背景,可以快速採用 Aiken 的做事方式。 Aiken允許他們使用一種使用一些他們熟悉的概念的語言進入卡爾達諾生態系統。

此外,Aiken在執行單元上提供了一些收益,這些收益與合約可以在鏈上執行的步驟數和記憶體直接相關。 在 Aiken 中完成指令的步驟更少,這使得驗證器更有效率。 費用金額決定於規模,因此該領域的任何收益都會促進交易,使 dApp 使用起來更便宜。

Helios

Helios 語言是 Cardano 上鍊上程式碼的 Javascript/Typescript SDK 替代方案。

它的創建是為了讓網頁開發人員加入卡爾達諾。 Javascript/Typescript 生態系統是程式設計師中最大的生態系統之一,Helios 對這些人來說是一個不錯的選擇。

Helios 工具包還具有同時適用於鏈上和鏈下程式碼的特點! Helios 的創建者為 Cardano dApp 的各個方面開發了一個版本。 因此,開發人員不再需要在鏈上使用一種語言,然後在鏈下使用另一種語言。

Helios語言也可用於在交易期間計算和管理卡爾達諾資產。 這使其成為卡爾達諾生態系統中適合所有背景的程式設計師最通用的替代方案之一。

Opshin

Opshin 是一種使用 100% 有效的 Python 程式碼來實作 Cardano 上鍊上邏輯的語言。

對於那些希望在網路上建立並具有 Python 背景的人來說,這是主要的選擇。 有一個來自 Python 的大型資料分析師社群可以從這個替代方案中受益。

對於熟悉 Python 的人來說,該語言很容易安裝並開始使用。 它支援命令式和函數式範例,而不影響卡爾達諾智能合約的核心設計。

Plu-ts

Harmonic Labs 開發的 Plu-ts 是鏈上程式碼的另一個 Typescript 替代品。

該語言的實作還提供了編寫鏈下程式碼的工具,因此它允許開發人員能夠對 Cardano dApp 的兩個部分使用相同的語法。

此外,Plu-ts 旨在讓開發人員更好地控制編譯後的程式碼。 這意味著可以優化智慧合約的大小,以降低用戶的成本。 這意味著 dApp 開發人員可以進一步推動 Plu-ts,使他們的平台使用起來更便宜。

Plutarch

Plutarch 是另一種特定領域的語言,儘管僅適用於基於 Haskell 的鏈上程式碼。 當與 Haskell 相關時,它被認為是更高層次的抽象,為開發人員提供了編寫高效智能合約的方法。 但由於Plutarch的抽象程度,這些都很難推理。

其主要目標是優化驗證器的大小,以使交易盡可能便宜。 目前,Plutarch 是證明 Cardano dApp 最小驗證器的語言。

這使得 Plutarch 成為想要盡可能優化費用的 dApp 的首選。 對於精通 Haskell 的開發人員來說,這是一個高級選項,因為它比其他替代方案更依賴其母語言的核心功能。 因此,它對初學者不太友好,但對於 Haskell 資深人士來說無疑是一個可行的選擇。

在那裡,我們幾乎全面地列出了在卡爾達諾上編寫鏈上程式碼的所有不同方法。 除PlutusTx外,所有其他項目均由社區創建並獲得獨立團隊的支持。

它們都共享相同的核心安全屬性,並且不會以任何方式損害卡爾達諾。 這意味著選擇使用哪一個取決於開發團隊的經驗。 所有選擇都是 100% 可行的,卡爾達諾社區正在不斷改進每個選擇。