為何Rust語言在區塊鏈中應用廣泛? - Reddit

banq 發表於 2022-09-19
區塊鏈

區塊鏈初創企業是新而多,他們需要發揮他們的優勢,他們還會以安全作為核心功能向人們推銷:區塊鏈的全部意義在於它提供了其他資料結構所沒有的保證。而Rust很適合這一點,特別是考慮到智慧合約的失敗是多麼具有破壞性。

Rust 不太容易出錯,這意味著程式碼不太可能不會按照您閱讀它時的預期執行(只要它可以編譯)。對於智慧合約來說,這是一個非常理想的功能,您必須對程式碼有 110% 的把握,因為在交易後無法修復它。第一次執行時,它必須堅如磐石。

Rust有一些相當殺手級的加密庫,儘管Rust非常年輕,但由於社群中不同成員的艱苦努力,一些庫是一流的。

Rust 在其設計中強制實施了一些非常重要的安全措施(記憶體、資料競爭……)以及許多可以使用宏對其進行擴充套件的方式。交叉編譯也很容易,其中一些專案使用的一個好處是編譯到 WebAssembly 以構建非常廣泛的合約。當然,像 C 這樣的其他語言也可以做到這一點,但是 Rust 工具鏈可以很容易地讓一個簡單的專案快速執行並交叉編譯它。
還有一些像 libp2p 這樣的庫已經實現了區塊鏈所需的許多東西。

例如:最先進的區塊鏈框架之一,稱為 Substrate,是用 rust 編寫的,使新開發人員可以很容易地建立自己的鏈。

區塊鏈工作基本上是基礎設施工作,這意味著它必須是:
  • 儘可能安全
  • 快速地
  • 高效記憶

最重要的是,市場由年輕公司領導,沒有太多技術債務或現有團隊可以利用,因此在這種情況下,Rust 更有意義。

一旦有幾家公司在Rust上下注,其他公司不這樣做也是白費力氣,所以你會產生連帶效應。這就像 "為什麼沒有人用Rust重寫所有的資料科學庫 "一樣。

特點總結:
  • Rust 是一種理想的智慧合約語言:它是型別安全的、記憶體安全的,並且沒有未定義的行為。它生成小的二進位制檔案,因為它不包含額外的膨脹,如垃圾收集器,高階最佳化和樹抖動刪除死程式碼。透過編譯器標誌,Rust 可以自動防止整數溢位。
  • Rust 生態系統:您可以免費獲得 Rust 生態系統的所有支援。隨著語言的發展,將自動獲得對新特性和功能的訪問許可權,從而改進您將來編寫智慧合約的方式。
  • 工具:遵循 Rust 標準,諸如 rustfmt、clippy 和 rust-analyzer 之類的工具已經開箱即用。大多數現代文字編輯器中的程式碼格式和語法突出顯示也是如此。Rust 還有一個整合的測試和基準執行器,
  • 無開銷:最少的執行時間。
  • 安全和高效:零成本和安全的抽象。
  • 生產力: Cargo + crates.io生態系統。
  • 一流的 Wasm: Rust 為 WebAssembly 提供一流的支援。
  • 小尺寸:在空間受限的區塊鏈世界中,尺寸很重要。Rust 編譯器對此有很大幫助,因為它重新排序結構欄位以使每種型別儘可能小。因此,Rust 資料結構非常緊湊,在許多情況下甚至比 C 中的更緊湊。