成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Polkadot構建和部署智能合約

區塊鏈
Polkadot是下一代區塊鏈協議,它將多個專用區塊鏈連接到一個統一網絡中。它以以前的區塊鏈網絡的革命性前景為基礎,同時提供了一些基本優勢。

 

Polkadot是下一代區塊鏈協議,它將多個專用區塊鏈連接到一個統一網絡中。它以以前的區塊鏈網絡的革命性前景為基礎,同時提供了一些基本優勢。

Polkadot的優點

Polkadot項目將通過提供類似橋的框架來徹底改變區塊鏈技術,該框架具有以下優點:

  • 無限的可擴展性-Polkadot可以支持無限數量的區塊鏈并允許它們連接(被稱為順鏈)。
  • 適應性共識機制—由于不同的區塊鏈在不同的共識機制上運行,Polkadot平臺提供了一個開放且適應性強的共識機制。
  • 跨鏈交易—該框架可支持不同區塊鏈之間的價值轉移。
  • 定義的治理機制—它具有定義的治理機制,從而消除其他區塊鏈面臨的主要問題。
  • 可升級性— Polkadot支持升級,而不必借助費力的硬分叉來實施更改。
  • 集合安全性-與Polkadot連接的區塊鏈可以通過統一的安全保護傘來保護。這可以保護沒有安全引導的小型鏈。
  • 低交易費用– Polkadot與以太坊相比,其交易費用較低。

智能合約

智能合約是一種自我執行的軟件,由P2P網絡管理。它是有效的權限管理工具,無需傳統的法律合同即可為網絡參與者之間的協議提供協調和執行框架。它們可用于形式化兩方之間的簡單協議,組織的章程或創建代幣。

在我們今天使用的Internet上,許多技術巨頭(例如Amazon,eBay,Airbnb,Uber等)的商業模式和“存在的理由”都會由于缺乏一個可信賴的本地結算層而造成的對不認識的交易者缺乏信任。智能合約提供了精確解決該問題的解決方案。他們可以正式建立個人與機構之間的關系以及他們在Internet上完全擁有的P2P關系,而無需信任的中介。

盡管智能合約的概念并不新鮮,但區塊鏈技術似乎是智能合約實施的催化劑。智能合約的一種更原始的形式是自動售貨機。交易規則被編程到機器中。您可以通過按與該產品相關的數字來選擇一種產品,插入硬幣,然后機器會檢查您是否投入了足夠的錢,從而充當了智能合約。

自我執行協議

智能合約是嵌入在由區塊鏈管理的計算機代碼中的自我執行協議。該代碼包含一組規則,根據該規則,該智能合約的各方同意彼此交互。如果并且當滿足預定義的規則時,將自動執行該協議。智能合約提供了有效管理令牌化資產和兩方或多方之間訪問權限的機制。

如果滿足特定的預定條件,人們就可以將其視為可以解鎖價值或訪問權限的密碼盒。他們管理的基礎價值和訪問權限存儲在區塊鏈中,該區塊鏈是透明的共享分類帳,可以保護它們免受刪除,篡改和修訂。因此,智能合約可以從區塊鏈內部(其他智能合約)和外部(外部數據源)的實體調用智能合約。

在這些實體中,所謂的“預言家”將與智能合約相關的數據從鏈上世界注入到智能合約信息存儲中。如果執行得當,智能合約可以提供優于傳統合約法的交易安全性,從而降低審計和執行此類協議的協調成本。

他們可以實時跟蹤協議的執行情況,因此可以節省成本,因為合規性和控制權是即時發生的。智能合約將協議的交易成本降低了幾個數量級;具體而言,它們降低了達成協議,形式化和實施的成本。

此外,智能合約安全性仍然是一個需要在技術層面解決的問題。我們還需要能夠執行更復雜的合同條款,包括分散的爭端解決工具。盡管這種發展可能需要更多時間才能成熟,但一些有趣的爭端解決方案已經在開發中,例如“ Kleros”,“開放式法律”或“ Jur”。隨著技術變得更加成熟和廣泛以及采用法律標準,我們可能會在未來幾年看到合法合同和智能合同的融合。但是,我們目前仍缺乏最佳實踐,可能需要一些時間才能進入集體學習階段。

用例

智能合約用例的范圍從簡單到復雜。它們可用于簡單的經濟交易,智能合約還可用于注冊任何種類的所有權和產權。智能合約有可能破壞許多行業。用例可以在銀行,保險,能源,電子政務,電信,音樂行業,藝術,移動性,教育等領域。

使用智能合約,每個協議,每個流程,任務和付款都可以具有數字記錄和簽名,可以對其進行識別,驗證,存儲和共享。諸如“ Bernstein”(專利注冊機構)或政府和半政府注冊機構(土地所有權,出生證類別,學校和大學學位)之類的時間戳服務是簡單的技術用例的示例。

雖然時間戳服務在技術層面上很容易實現,但根據行業類型和特定用例,此類用例的監管方面可能要復雜得多。此外,智能合約還可用于商品或服務供應鏈中眾多參與者之間更為復雜的協議,或在不需要傳統的集中式機構的情況下管理一群擁有相同興趣和目標的人。分散式自治組織(DAO)就是這樣的一個例子,可能代表了最復雜的智能合約。因此,智能合約可以規范治理規則(組織的章程,治理法規,議事規則或組織章程),并用自我執行的代碼代替日常運營管理。

模型

以太坊2.0中的分片都具有相同的狀態轉換函數(STF),就像管理區塊鏈如何更改每個區塊的狀態的規則中的規則一樣。該STF提供了用于智能合約執行的界面。合同存在于單個分片上,并且可以在分片之間發送異步消息。

同樣,在Polkadot中,每個分片都承載核心邏輯,這些分片并行執行,并且Polkadot可以發送跨分片的異步消息。但是,每個Polkadot分片(在Polkadot術語中為“對鏈”)都具有唯一的STF。通過組合邏輯,應用程序可以存在于單個碎片中,也可以存在于多個碎片中。Polkadot使用WebAssembly(Wasm)作為“元協議”。碎片的STF可以是抽象的,只要Polkadot上的驗證程序可以在Wasm環境中執行即可。

建筑學

Polkadot是具有共享安全性和互操作性的異構多鏈。

中繼鏈

中繼鏈是Polkadot的中央鏈。Polkadot的所有驗證器都已放置在DOT的中繼鏈上,并進行中繼鏈驗證。中繼鏈由相對較少的交易類型組成,其中包括與治理機制進行交互,平行鏈拍賣以及參與NPoS的方式。中繼鏈故意具有最小的功能,主要職責是協調整個系統。

平行鏈和平行線程插槽

Polkadot可支持多個執行插槽。這些插槽就像計算機處理器上的核心(例如,現代筆記本電腦的處理器可能具有八個核心)。這些內核中的每個內核可以一次運行一個進程,Polkadot使用兩種訂閱模型允許這些插槽:并行鏈和并行線程。平行鏈有一個專用的鏈槽(核心),就像一個不斷運行的過程。Parathread在組中共享插槽,因此更像是需要喚醒且運行頻率較低的進程。

整個Polkadot網絡上發生的大多數計算都將委托給處理各種用例的特定parachain或parathread實現。Polkadot對平行鏈可以做什么沒有任何限制,除了它們必須能夠生成可以由分配給平行鏈的驗證者驗證的證據外。該證明驗證了旁鏈的狀態轉變。

一些平行鏈可能特定于特定的應用程序,另一些平行鏈可能專注于諸如智能合約,隱私或可伸縮性之類的特定功能-仍然,其他平行鏈可能是實驗性架構,本質上不一定是區塊鏈。

Polkadot提供了多種方法來在特定時間段內固定旁鏈插槽的插槽。Parathread是共享插槽的池的一部分,必須贏得各個塊的拍賣。并行線程和并行鏈具有相同的API。他們的區別是經濟上的。平行鏈將必須在其插槽租賃期間保留DOT;parathreads將按塊收費。平行線程可以變成平行鏈,反之亦然。

共享安全

連接到Polkadot中繼鏈的平行鏈都共享中繼鏈的安全性。Polkadot在中繼鏈和所有連接的副鏈之間具有共享狀態。如果中繼鏈由于某種原因必須還原,那么所有平行鏈也將還原。這是為了確保整個系統的有效性可以持續存在,并且任何單個部分都不可損壞。

共享狀態使得使用Polkadot平行鏈時的信任假設僅是中繼鏈驗證器集中的那些,而沒有其他假設。由于預計中繼鏈上設置的驗證器將是安全的,并且要有大量股份支持該驗證器,因此旁鏈應從這種安全性中受益。

基板

基板是用于構建區塊鏈的開源,模塊化和可擴展框架。

底層從頭開始進行了靈活設計,使創新者可以設計和構建滿足其需求的區塊鏈網絡。它提供了構建自定義區塊鏈節點所需的所有核心組件。

基板開發人員中心節點模板

我們以Node Template的形式提供了一個開箱即用的基于Substrate的節點,您在閱讀本文時應對其進行編譯。無需進行任何更改,您可以共享此節點模板,并創建具有加密貨幣和所有內容的有效的區塊鏈網絡!

我們將教您如何在“開發”模式下使用該節點,該模式使您可以在單個節點上運行網絡,并擁有一些預先配置的有資金的用戶帳戶。

建立和部署合同

1.安裝先決條件

  1. # Install Homebrew if necessary https://brew.sh/ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # Make sure Homebrew is up-to-date, install openssl brew update brew install openssl 

2.Rust開發人員環境

  1. # Install curl https://sh.rustup.rs -sSf | sh # Configure source ~/.cargo/env 
  2. rustup default stable 

3.基材的最新報道

自行構建Substrate的開發人員應始終每晚穩定使用Rust的最新無錯誤版本。這是因為Substrate代碼庫遵循Rust每晚的技巧,這意味著Substrate的更改通常取決于Rust每晚編譯器的上游更改。為了確保您的Rust編譯器始終是最新的,您應該運行:

  1. rustup update 
  2. rustup update nightly 
  3. rustup target add wasm32-unknown-unknown --toolchain nightly 

4.Wasm工具鏈

現在,配置每晚版本以與Wasm編譯目標一起使用:

  1. rustup target add wasm32-unknown-unknown — toolchain nightly 

5.編譯基板

一旦安裝了先決條件,您就可以使用Git克隆Substrate Developer Hub節點模板,這是在Substrate上構建的良好起點。

  1. git clone -b v3.0.0 — depth 1 https://github.com/substrate-developer-hub/substrate-node-template 

6.編譯節點模板

  1. cd substrate-node-template # NOTE: you should always use the `--release` flag cargo build --release # ^^ this will take a while! 

7.安裝前端模板

本教程使用ReactJS前端模板來允許您與應該在上一步中開始編譯的基于Substrate的區塊鏈節點進行交互。將來,您可以使用相同的前端模板為自己的項目創建UI。

要使用前端模板,你需要的紗線,其本身需要Node.js的。如果您沒有這些工具,則必須按照以下說明進行安裝:

  • 安裝Node.js
  • 安裝紗

現在,您可以使用這些命令來設置前端模板。

  1. # Clone the frontend template from github git clone -b v3.0.0 --depth 1 https://github.com/substrate-developer-hub/substrate-front-end-template  # Install the dependencies cd substrate-front-end-template yarn install 

8.啟動節點

運行以下命令以啟動您的節點:

  1. # Run a temporary node in development mode ./target/release/node-template — dev — tmp 

使用此命令,如果您的節點運行成功,您應該會看到類似以下的內容:

節點已啟動

  1. Start the Front-End Template 
  2. # Make sure to run this command in the root directory of the Front-End Template yarn start 

前端

9.合約組成

對于使用其他現代智能合約語言進行編程的開發人員,應該感到熟悉。合同的骨架具有您可能期望的所有相同組件:

  • 大事記
  • 貯存
  • 部署(構造函數)功能
  • 公共職能
  • 內部功能

每個合約功能明確定義了可變性和可見性。在這些功能中,您可以訪問幾種常見的基材類型,如AccountId,Balances,Hash,等。

10.創造an ink!項目

我們將使用an ink!CLI生成Substrate智能合約項目所需的文件。

確保您位于工作目錄中,然后運行:

  1. cargo contract new flipper 
  2. cd flipper/ 
  3. flipper 
  4. +-- lib.rs                <-- Contract Source Code 
  5. +-- Cargo.toml            <-- Rust Dependencies and ink! Configuration 
  6. +-- .gitignore 

11.建立合同

運行以下命令來編譯您的智能合約:

  1. cargo +nightly contract build 

將項目投影為Wasm二進制文件,元數據文件(包含合同的ABI)和將.contract兩者捆綁在一起的文件。該文件可用于將合同部署到鏈中。如果一切順利,您應該看到一個target包含以下文件的文件夾:

  1. target 
  2. └── flipper.wasm 
  3. └── metadata.json 
  4. └── flipper.contract 

12.測試您的合同

您將在源代碼底部看到一個簡單的測試,它可以驗證合同的功能。

在您的項目文件夾中運行:

  1. cargo +nightly test 

您應該看到要成功完成的測試:

  1. $ cargo +nightly test 
  2.     running 2 tests 
  3.     test flipper::tests::it_works ... ok 
  4.     test flipper::tests::default_works ... ok 
  5. test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out 

13.部署合同

現在我們已經從源代碼生成了Wasm二進制文件并啟動了Canvas節點,我們希望將該合同部署到我們的Substrate區塊鏈上。

Substrate上的智能合約部署與傳統智能合約區塊鏈上的部署有些不同。

每次您在其他平臺上推送合同時,都會部署一個全新的智能合同源代碼塊,而Substrate選擇優化此行為。。

在Substrate中,合同部署過程分為兩個部分:

  • 將您的代碼放在區塊鏈上
  • 創建合同實例

通過這種模式,可以將諸如ERC20標準之類的合同代碼一次性放置在區塊鏈上,但是可以實例化任意次。

無需持續上傳相同的源代碼并浪費區塊鏈上的空間。

上載Wasm和元數據

將代碼放在上,當您按Deploy時,應該會看到一系列事件,包括創建新帳戶(system.NewAccount)和合同的實例化(contracts.instantiate):

打開“畫布UI”的特殊設計的“上傳”部分。

使用下拉菜單選擇具有一些帳戶余額的部署帳戶,例如Alice。在輸入字段中輸入合同名稱。提供flipper.contract文件作為捆綁的Wasm Blob和元數據。

14.簽訂合同

單擊上載,然后在確認頁面上簽名并提交。

這應該發出一個contracts.PutCode事件。如果交易成功,您將收到一個system.ExtrinsicSuccess事件,您的WASM合同將存儲在您的Substrate區塊鏈上!

創建合同實例

智能合約作為區塊鏈上會計系統的擴展而存在。因此,創建此合同的實例將創建一個新合同,該合同將AccountId存儲由智能合同管理的任何余額并允許我們與合同進行交互。

在上一步中上傳合同后,確認屏幕將顯示代表我們的智能合同的信息。現在,我們需要部署智能合約來創建實例。在確認屏幕上按“部署代碼”按鈕。

要實例化我們的合同,請接受默認選項,為該合同帳戶提供一筆of賦,1000 Units用于支付存儲租金,并將最大允許汽油價值設置為1000000:

當您按Deploy時,應該會看到一系列事件,包括創建新帳戶(system.NewAccount)和實例化合同(contracts.instantiate):

現在您的合同已被完全部署,我們可以開始與它進行交互了!Flipper只有兩個功能,因此我們將向您展示同時使用這兩個功能的感覺。在上一步中,在部署了Flipper合同實例之后,在出現的確認屏幕上,單擊“執行合同”按鈕。

default()功能

如果您回顧一下我們合同的default()功能,我們會將Flipper合同的初始值設置為false。讓我們檢查一下是否是這種情況。

在“要發送的消息”部分中,選擇“ get():bool”消息,并接受其他選項的默認值。

按“呼叫”并確認它返回值false:

因此,true現在就讓價值轉向吧!

我們可以通過用戶界面發送的替代消息是flip()。同樣,接受其他選項的默認值。

您會注意到該flip()消息默認為交易呼叫。

如果交易成功,那么我們應該可以返回到該get()函數并查看更新后的存儲:

目前為止,我們已經成功在Polkadot上構建和部署了智能合約,有任何疑問可以在留言區留言。

責任編輯:武曉燕 來源: 區塊鏈研究實驗室
相關推薦

2021-03-11 19:13:04

NFT合約智能

2021-05-06 09:42:24

Truffle部署智能

2014-06-26 14:08:28

Azure云服務

2022-07-04 18:58:43

智能合約區塊鏈

2024-01-05 07:41:34

OpenLLM大語言模型LLM

2022-07-07 14:23:06

人工智能機器學習大數據

2020-12-17 08:00:00

區塊鏈數據以太坊

2022-04-20 10:11:45

PythonBrownie編程語言

2019-01-23 11:12:42

機器學習機器模型預測工資

2023-07-04 20:15:00

2021-08-06 13:46:29

人工智能AI深度學習

2021-04-19 11:11:57

云計算數字

2021-02-18 17:00:52

Linux歸檔文件

2010-03-29 13:35:39

ibmdwRIA

2019-09-18 11:17:53

云計算云安全

2021-03-25 16:34:10

區塊鏈加密資產技術

2023-05-05 08:00:00

2023-08-23 09:00:00

區塊鏈以太坊

2020-04-22 13:23:46

智能合約區塊鏈比特幣

2021-11-02 10:25:19

區塊鏈智能合約
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩毛片在线免费观看 | 国产精品久久久久永久免费观看 | 一区二区精品视频 | 日韩高清一区二区 | 2020亚洲天堂| 羞羞视频在线观看 | 久久蜜桃资源一区二区老牛 | 97caoporn国产免费人人 | 日本视频在线播放 | 国产精品高潮呻吟久久av野狼 | 成人免费大片黄在线播放 | 三级在线视频 | 色久在线 | 一级毛片免费看 | 日本一区二区高清视频 | 国产精品色 | 国产亚洲一区二区精品 | 日韩国产免费观看 | 日本三级日产三级国产三级 | 成人在线观看免费 | 四虎最新 | 国产一区二区三区四区在线观看 | 综合久久综合久久 | 国产日韩精品视频 | 亚洲一区在线观看视频 | 成人免费在线观看 | 国产精品久久久久一区二区三区 | 精品国产一区二区三区免费 | 97超碰人人 | 97久久精品午夜一区二区 | 国产91 在线播放 | 日韩国产专区 | 亚洲精品视频免费看 | 日韩高清在线观看 | 蜜桃视频一区二区三区 | 日韩三级免费观看 | 91精品国产综合久久久久 | 亚洲一区二区精品视频在线观看 | 欧美激情a∨在线视频播放 成人免费共享视频 | 欧美一区二区在线 | 欧美xxxx色视频在线观看免费 |