在Cardano區塊鏈生態系統中,一個人可以成為鏈上Cardano區塊鏈開發者,也可以成為鏈下開發者。
在卡爾達諾區塊鏈開發者路線圖系列的上一篇部落格中,我們討論了成為卡爾達諾開發者如何專注於角色專業化,這與其他區塊鏈中的區塊鏈開發者不同。 因此,了解不同的要求有助於有興趣的卡爾達諾區塊鏈開發人員開始他們的區塊鏈職業生涯。
當我們研究不同的卡爾達諾開發人員角色及其專業時,在本部落格中,我們將更仔細地討論鏈下卡爾達諾區塊鏈開發以及交易構建對卡爾達諾 dApp 開發的重要性。
這是一個主要針對卡爾達諾區塊鏈 dApp 的專業領域。
什麼是鏈下程式碼?
在大多數傳統的區塊鏈開發中,智能合約用於定義代幣的屬性(供應、名稱、小數等)。 在內部,程式碼也配置事務的行為。 這意味著傳統的智能合約既包含資產的特徵,也包含資產如何轉移的規則。 此外,區塊鏈不知道代幣的餘額,每個智能合約都必須追蹤此資訊。
然而,卡爾達諾採取了不同的方法。
在卡爾達諾中,資產是區塊鏈分類帳本機的,這意味著無需部署智慧合約來創建新的代幣。 卡爾達諾分類帳負責傳統功能,例如轉移代幣和追蹤餘額。
這就引出了下一個問題:
卡爾達諾區塊鏈開發人員如何控制更複雜的操作?
在許多情況下,企業希望將更複雜的邏輯應用於一組資產,例如鎖定、質押、按需鑄幣等等。
這就是鏈下程式碼開發人員的角色。
它是負責為某種複雜邏輯設定一組步驟的人。
在我們的第一篇文章中,我們討論了對於卡爾達諾鏈上開發人員來說非常重要的鏈上程式碼或驗證器。 它是存在於區塊鏈中並管理資產行為的邏輯。 驗證器本身無法做到這一點,因為它需要一組與其連接的指令以提供所需的輸出。
這些指令稱為鏈外代碼或交易構造。
他們的主要工作是連接到驗證器,執行其中包含的邏輯,並將輸出分發到接收位址。 此外,它也用於:
- 查詢區塊鏈狀態
- 處理使用者輸入
- 執行驗證器
- 建立和平衡交易
- 將簽署的交易提交到網路
該程式碼被稱為鏈外,因為它不會上傳到卡爾達諾網路。 它必須在可以服務與 dApp 互動的使用者請求的伺服器中單獨設定。 透過分離資產邏輯和交易建構的角色,卡爾達諾減少了 dApp 的攻擊面。
成為鏈外卡爾達諾開發者需要了解什麼
第一步是了解交易建構有兩套主要工具。 首先是卡爾達諾命令列介面(CLI),其次是 Plutus 應用程式後端(PAB)。 兩者都是為了幫助處理鏈下程式碼。
Cardano CLI 沿著節點安裝,並在 shell 終端上運行。 它是一個由命令和子命令組成的層次結構,可以發揮多種作用。 它可用於生成錢包地址、鑄造代幣、附加元數據以及用於交易構建。
shell 是理解並執行與 Cardano CLI 相關指令的程式層。 在這個領域,shell 包裝的命令集可以快速實現某些操作的自動化。 可以啟動 dApp 並使其整個邏輯僅由 CLI 上的命令控制。
Cardano CLI是由核心開發人員預設的命令製作的。 它適合相對簡單且不需要複雜操作的用例。 在業務邏輯需要自訂解決方案的其他情況下,則使用 Plutus 應用程式後端。
工具
MeshJS
MeshJS 是一個鏈下平台,使用 Web 開發人員流行的語言,例如 Javascript 或 Typescript。 它能夠與用 Plutus(卡爾達諾的母語)編寫的驗證器進行交互,並幫助完成鏈下程式碼的所有角色。
它也是一個非常友好的平台,充滿了有用的範例和廣泛的文件。 目前,這或許是那些想要進入鏈下領域的開發者的最佳切入點。
Atlas
Atlas 是一個開源 PAB 替代品,也專注於 Haskell。 它是一套多功能工具,可以簡化 Haskell 編碼,同時優化 Cardano 使用的 eUTXO 交易的鏈外代碼。
對於那些希望使用 Haskell 保留整個 dApp 並且不將程式碼在鏈上和鏈下分開的人來說,這是最好的選擇。 該平台也是模組化的,使其能夠與生態系統中的其他開發工具相容。
Lucid
Lucid 是另一個為 Javascript 使用者開發的鏈下系統。 它面向那些熟悉 Web 開發並使用熟悉的介面進行設定的程式設計師。 該專案背後的團隊是卡爾達諾社區的成員,並創建了生態系統中的許多應用程式。
PyCardano
PyCardano 是用 Python 寫的 Cardano 用戶端。 該庫可以創建、平衡和簽署交易。 該專案旨在透過引入 Python 世界中所有熟悉的工具來讓 Python 開發人員加入該生態系統。