<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Parity 發(fā)布 ink! 3.0:基于 Rust 的 WASM 智能合約語(yǔ)言的重大更新!

          共 4281字,需瀏覽 9分鐘

           ·

          2022-03-19 04:41

          加入 PolkaWorld 社區(qū),共建 Web 3.0!

          ink! 是 Parity 基于 Rust 用來編寫 Web Assembly (Wasm) 智能合約的一種編程語(yǔ)言,它剛剛推出了迄今為止最大的更新。Polkadot 和 Substrate 生態(tài)中的開發(fā)者可以使用 ink! 為 Wasm 虛擬機(jī)構(gòu)建高效、高性能的智能合約和去中心化應(yīng)用程序,它們是以太坊 (EVM/Solidity) 智能合約的一種替代方案


          Substrate 是構(gòu)建自定義的 Polkadot 兼容區(qū)塊鏈以及“獨(dú)立”區(qū)塊鏈的框架,它包含構(gòu)建一個(gè)典型區(qū)塊鏈所需的模塊化的組件,使開發(fā)者能夠更輕松、更快地構(gòu)建區(qū)塊鏈。這些模塊化的組件被稱為模塊(pallets)。Substrate 的模塊庫(kù)包括“合約”模塊,它允許開發(fā)者將基于 Wasm 的智能合約功能構(gòu)建到他們的區(qū)塊鏈中。ink! 是 Rust 編程語(yǔ)言的擴(kuò)展,它允許開發(fā)者為使用合約模塊的區(qū)塊鏈編寫智能合約。


          這是最新版本的 ink!,重寫了 ink! 2.0 的所有主要組件!在此期間,許多團(tuán)隊(duì)在使用 ink! 構(gòu)建 Wasm 智能合約,也感謝他們的貢獻(xiàn)和反饋,ink! 3.0 比以前的版本有了很大的發(fā)展。


          除了發(fā)布了 ink 3.0 版本,我們還改進(jìn)了合約模塊(Contracts pallet)以提高平行鏈性能,并添加了一些新功能以提高跨合約調(diào)用和性能提升,使開發(fā)者更容易編寫更復(fù)雜的邏輯。最后,隨著 `cargo-contract` 1.0 的發(fā)布,開發(fā)者使用的工具也發(fā)生了一些變化。



          為什么使用 Rust 和 Wasm?


          在 Parity,我們是 Rust 的忠實(shí)粉絲,并用它編寫了 Polkadot 的最初實(shí)現(xiàn)。Rust 是一種進(jìn)階且高效的編程語(yǔ)言,它優(yōu)先考慮正確性并有助于防止軟件錯(cuò)誤;同時(shí)它有一個(gè)強(qiáng)大的社區(qū),并得到了 Mozilla、谷歌、微軟和亞馬遜等大公司的支持。


          使用 Rust 作為 ink! 的基礎(chǔ)為我們提供了嚴(yán)格的 Rust 編譯器的正確性保證,它讓我們可以免費(fèi)利用 Rust 生態(tài)系統(tǒng)中發(fā)生的所有改進(jìn)。這些改進(jìn)包括從更好的編譯器優(yōu)化到非常有用的第三方庫(kù)。在此處了解有關(guān) Rust 非常適合智能合約的更多信息。https://paritytech.github.io/ink-docs/why-rust-for-smart-contracts


          Wasm 是另一種在 Polkadot 設(shè)計(jì)中發(fā)揮關(guān)鍵作用的技術(shù),原因有幾個(gè)。Wasm 快速、安全、輕量級(jí)、高性能且執(zhí)行效率高,構(gòu)建時(shí)盡可能接近原生代碼(Machine Code)。它可以在網(wǎng)絡(luò)瀏覽器中執(zhí)行,從而促進(jìn)為用戶體驗(yàn)而設(shè)計(jì)的去中心化應(yīng)用程序的創(chuàng)新和更廣泛的使用。Wasm 已經(jīng)有非常廣泛的使用,這點(diǎn)對(duì)我們有非常大的優(yōu)勢(shì),同時(shí)還能享有大公司的高水平使用,并且擁有龐大的開發(fā)者社區(qū)。這也使我們能夠獲得編譯器改進(jìn)和整個(gè)生態(tài)工具的所有好處,而這些工具只會(huì)隨著時(shí)間的推移而增長(zhǎng)。


          Wasm 擴(kuò)展了可以編寫智能合約的語(yǔ)言數(shù)量,包括 Go、C/C++,當(dāng)然還有 Rust。它提供了所有好處,我們相信 Wasm 代表了智能合約基礎(chǔ)設(shè)施和應(yīng)用程序的未來,并且代表了對(duì)上一代系統(tǒng)的改進(jìn)。


          在此處了解有關(guān) Wasm 為何非常適合智能合約的更多信息。https://paritytech.github.io/ink-docs/why-webassembly-for-smart-contracts



          ink! 3.0


          ink! 3.0 背后的主要思想是它的外觀和感覺就像 Rust。ink! 語(yǔ)法略有變化,以更好地從 ink! 映射生成 Rust 代碼。用戶看到的也就是由 ink! 生成的內(nèi)容。現(xiàn)在,語(yǔ)法與 Rust 編程語(yǔ)言幾乎相同。這具有所有 Rust 開發(fā)者都知道和喜愛的開箱即用的工具優(yōu)勢(shì) —— 例如 rust-analyzer 和 Clippy。


          除了感覺像 Rust 之外,讓我們來看看 ink! 3.0 最顯著的變化:


          • 特征支持(Trait Support ):ink! 3.0 最令人期待的功能之一是它的 Rust trait 支持,最好的一個(gè)描述就是提供了更 Rusty 的開發(fā)體驗(yàn)。通過新的 `#[ink::trait_definition]` 程序宏,現(xiàn)在可以定義你自己的特征定義,然后可以通過 ink! 智能合約實(shí)現(xiàn)。這允許為不同的具體實(shí)現(xiàn)定義共享的智能合約接口。這對(duì)定義社區(qū)定義的合約標(biāo)準(zhǔn)很有用。注意這個(gè) ink! trait 定義可以在任何地方定義,甚至在另一個(gè) crate 中!

          • 減少合約規(guī)模:較小的合約規(guī)模意味著更好的性能和更少的 gas 成本。以前的 ink! 生成的智能合約的 Wasm 代碼量很大,這導(dǎo)致平行鏈交易吞吐量受到帶寬而不是計(jì)算復(fù)雜度的限制。在許多考慮減少智能合約大小的解決方案中,有一個(gè)是減少編譯合約的大小。

          • 委托調(diào)用:`delegate_call` 的添加允許合約將他們收到的調(diào)用轉(zhuǎn)發(fā)到另一個(gè)合約。一個(gè)用例是為智能合約實(shí)施代理升級(jí)模式。

          • 鏈擴(kuò)展:此功能允許開發(fā)者從他們的合約中直接調(diào)用 Substrate 模塊,從而使他們能夠利用 Substrate 的豐富生態(tài)。



          cargo-contract 1.0


          與 ink! 3.0 一起發(fā)布的還有 `cargo-contract` 1.0。`cargo-contract` 是一個(gè)方便的開發(fā)者工具,用于構(gòu)建、測(cè)試和部署 ink! 合約。此版本中的一些值得注意的更新包括:


          • 用于與鏈上合約交互的新 CLI 命令:上傳、實(shí)例化和調(diào)用!這意味著用戶不再需要點(diǎn)擊瀏覽器 UI 來與鏈上的合約進(jìn)行交互,他們現(xiàn)在也可以使用命令行。這也為編寫腳本和持續(xù)集成鋪平了道路。


          • ink! 智能合約的 linting 規(guī)則:通過自動(dòng)檢查源代碼中的程序和風(fēng)格錯(cuò)誤,ink! 開發(fā)者會(huì)收到有關(guān)常見錯(cuò)誤的警告。未來我們會(huì)陸續(xù)構(gòu)建 ink! 合約的 linting 規(guī)則集合!我們想做的是指導(dǎo)你降低 gas 成本、減少合約足跡、正確的 API 使用模式和指出安全漏洞的規(guī)則。



          Substrate 合約模塊


          合約模塊(Contracts pallet)是 Substrate 用于 Wasm 智能合約的執(zhí)行環(huán)境。只要合約模塊 API 被實(shí)施,它可以用任何編譯成 Wasm 的編程語(yǔ)言執(zhí)行智能合約。ink! 是一種為 Rust 執(zhí)行此操作的語(yǔ)言。


          先前版本的模塊使用狀態(tài)租金作為應(yīng)對(duì)狀態(tài)膨脹的機(jī)制。在最新的迭代中,狀態(tài)租金被自動(dòng)收取押金所取代。以前,合約需要確保始終有足夠的余額來支付其存儲(chǔ)費(fèi)用。否則,它將處于禁用狀態(tài),直到有人將其恢復(fù)。這為合約編寫過程增加了許多額外的工作和考慮。


          在“自動(dòng)收取”的機(jī)制下,該費(fèi)用由合約調(diào)用方自動(dòng)支付,而不是由合約本身支付。合約的調(diào)用者向每個(gè)合約支付一筆押金,在這些合約中,由于執(zhí)行調(diào)用而創(chuàng)建了新的存儲(chǔ)空間。同樣,調(diào)用者從調(diào)用刪除存儲(chǔ)的所有合約中獲得退款。


          這個(gè)新系統(tǒng)完全消除了合約被設(shè)置為非活動(dòng)狀態(tài)的可能性。但是,合約作者仍然希望盡可能少地使用存儲(chǔ)空間,并在不再需要存儲(chǔ)空間時(shí)創(chuàng)建移除存儲(chǔ)空間的方法,以降低使用合約的成本。



          感謝 ink! 社區(qū)


          歷經(jīng)多年和多次的發(fā)布,ink! 已經(jīng)發(fā)展到看起來和感覺起來很像 Rust 的目標(biāo)。在這個(gè)階段,它具有 Rust 程序員認(rèn)可和需要進(jìn)一步增強(qiáng)他們編寫、更新和推理復(fù)雜智能合約的能力的所有功能。雖然 ink! 現(xiàn)在是一種綜合性語(yǔ)言,它仍然是一種正在開發(fā)的語(yǔ)言,最重要的是,它是一個(gè)以社區(qū)為中心的項(xiàng)目。


          感謝 ink! 社區(qū)的貢獻(xiàn),ink! 已經(jīng)發(fā)展成為一種滿足我們共同未來需求的語(yǔ)言。



          關(guān)注未來發(fā)展


          你還在等什么?來看看 ink! 發(fā)生了什么和你喜歡 ink! 的什么地方!


          對(duì)于有興趣了解構(gòu)建 Wasm 智能合約的更多信息的開發(fā)者,請(qǐng)查看 2022 年 5 月 31 日由社區(qū)組織的首屆 Wasm 智能合約會(huì)議。https://wasm-conference.com/


          • 定期更新:https://github.com/paritytech/ink/blob/master/MONTHLY_UPDATE.md

          • ink! 存儲(chǔ)庫(kù):https://github.com/paritytech/ink

          • ink! 入門教程:https://docs.substrate.io/tutorials/v3/ink-workshop/pt1

          • ink! 進(jìn)階文檔:https://paritytech.github.io/ink-docs

          • ink! 視頻:https://youtu.be/wbai4Do_TVY, https://youtu.be/NrG3co6UWEg?t=7102


          在 substrate.dev 了解 Substrate 生態(tài)系統(tǒng),訂閱 Substrate 開發(fā)者郵件 https://substrate.io/ecosystem/connect/newsletter/,加入 Substrate 每周的社區(qū)電話 https://substrate.io/ecosystem/resources/seminar/。


          原文鏈接:https://www.parity.io/blog/ink-3-0-paritys-rust-based-language-gets-a-major-update

          翻譯:PolkaWorld 社區(qū)


          • PolkaWorld Telegram 群:

            t.me/polkaworld

          • PolkaWorld Youtube 頻道:

            https://www.youtube.com/c/PolkaWorld

          • PolkaWorld Twitter:

            @polkaworld_org

          • PolkaWorld 網(wǎng)站:

            https://polkaworld.pro/

          更多內(nèi)容


          兩分鐘看懂 Kusama 平行鏈 Crowdloan 過程

          MOVR 上線 Karura,KAR 通過 XCM 已集成至 Moonriver

          Last Call! 來 Polkadot Decoded 與所有建設(shè)者見面!


          關(guān)注 PolkaWorld

          發(fā)現(xiàn)?Web 3.0 時(shí)代新機(jī)遇


          點(diǎn)個(gè) “在看” 再走吧!


          瀏覽 113
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久大陆| 国产自产21区 | 私拍视频网 | 国产韩国精品在线 | 国产乱伦激情 |