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

如何在Polkadot構(gòu)建和部署智能合約

區(qū)塊鏈
Polkadot是下一代區(qū)塊鏈協(xié)議,它將多個(gè)專用區(qū)塊鏈連接到一個(gè)統(tǒng)一網(wǎng)絡(luò)中。它以以前的區(qū)塊鏈網(wǎng)絡(luò)的革命性前景為基礎(chǔ),同時(shí)提供了一些基本優(yōu)勢。

 

Polkadot是下一代區(qū)塊鏈協(xié)議,它將多個(gè)專用區(qū)塊鏈連接到一個(gè)統(tǒng)一網(wǎng)絡(luò)中。它以以前的區(qū)塊鏈網(wǎng)絡(luò)的革命性前景為基礎(chǔ),同時(shí)提供了一些基本優(yōu)勢。

Polkadot的優(yōu)點(diǎn)

Polkadot項(xiàng)目將通過提供類似橋的框架來徹底改變區(qū)塊鏈技術(shù),該框架具有以下優(yōu)點(diǎn):

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

智能合約

智能合約是一種自我執(zhí)行的軟件,由P2P網(wǎng)絡(luò)管理。它是有效的權(quán)限管理工具,無需傳統(tǒng)的法律合同即可為網(wǎng)絡(luò)參與者之間的協(xié)議提供協(xié)調(diào)和執(zhí)行框架。它們可用于形式化兩方之間的簡單協(xié)議,組織的章程或創(chuàng)建代幣。

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

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

自我執(zhí)行協(xié)議

智能合約是嵌入在由區(qū)塊鏈管理的計(jì)算機(jī)代碼中的自我執(zhí)行協(xié)議。該代碼包含一組規(guī)則,根據(jù)該規(guī)則,該智能合約的各方同意彼此交互。如果并且當(dāng)滿足預(yù)定義的規(guī)則時(shí),將自動(dòng)執(zhí)行該協(xié)議。智能合約提供了有效管理令牌化資產(chǎn)和兩方或多方之間訪問權(quán)限的機(jī)制。

如果滿足特定的預(yù)定條件,人們就可以將其視為可以解鎖價(jià)值或訪問權(quán)限的密碼盒。他們管理的基礎(chǔ)價(jià)值和訪問權(quán)限存儲在區(qū)塊鏈中,該區(qū)塊鏈?zhǔn)峭该鞯墓蚕矸诸悗ぃ梢员Wo(hù)它們免受刪除,篡改和修訂。因此,智能合約可以從區(qū)塊鏈內(nèi)部(其他智能合約)和外部(外部數(shù)據(jù)源)的實(shí)體調(diào)用智能合約。

在這些實(shí)體中,所謂的“預(yù)言家”將與智能合約相關(guān)的數(shù)據(jù)從鏈上世界注入到智能合約信息存儲中。如果執(zhí)行得當(dāng),智能合約可以提供優(yōu)于傳統(tǒng)合約法的交易安全性,從而降低審計(jì)和執(zhí)行此類協(xié)議的協(xié)調(diào)成本。

他們可以實(shí)時(shí)跟蹤協(xié)議的執(zhí)行情況,因此可以節(jié)省成本,因?yàn)楹弦?guī)性和控制權(quán)是即時(shí)發(fā)生的。智能合約將協(xié)議的交易成本降低了幾個(gè)數(shù)量級;具體而言,它們降低了達(dá)成協(xié)議,形式化和實(shí)施的成本。

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

用例

智能合約用例的范圍從簡單到復(fù)雜。它們可用于簡單的經(jīng)濟(jì)交易,智能合約還可用于注冊任何種類的所有權(quán)和產(chǎn)權(quán)。智能合約有可能破壞許多行業(yè)。用例可以在銀行,保險(xiǎn),能源,電子政務(wù),電信,音樂行業(yè),藝術(shù),移動(dòng)性,教育等領(lǐng)域。

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

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

模型

以太坊2.0中的分片都具有相同的狀態(tài)轉(zhuǎn)換函數(shù)(STF),就像管理區(qū)塊鏈如何更改每個(gè)區(qū)塊的狀態(tài)的規(guī)則中的規(guī)則一樣。該STF提供了用于智能合約執(zhí)行的界面。合同存在于單個(gè)分片上,并且可以在分片之間發(fā)送異步消息。

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

建筑學(xué)

Polkadot是具有共享安全性和互操作性的異構(gòu)多鏈。

中繼鏈

中繼鏈?zhǔn)荘olkadot的中央鏈。Polkadot的所有驗(yàn)證器都已放置在DOT的中繼鏈上,并進(jìn)行中繼鏈驗(yàn)證。中繼鏈由相對較少的交易類型組成,其中包括與治理機(jī)制進(jìn)行交互,平行鏈拍賣以及參與NPoS的方式。中繼鏈故意具有最小的功能,主要職責(zé)是協(xié)調(diào)整個(gè)系統(tǒng)。

平行鏈和平行線程插槽

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

整個(gè)Polkadot網(wǎng)絡(luò)上發(fā)生的大多數(shù)計(jì)算都將委托給處理各種用例的特定parachain或parathread實(shí)現(xiàn)。Polkadot對平行鏈可以做什么沒有任何限制,除了它們必須能夠生成可以由分配給平行鏈的驗(yàn)證者驗(yàn)證的證據(jù)外。該證明驗(yàn)證了旁鏈的狀態(tài)轉(zhuǎn)變。

一些平行鏈可能特定于特定的應(yīng)用程序,另一些平行鏈可能專注于諸如智能合約,隱私或可伸縮性之類的特定功能-仍然,其他平行鏈可能是實(shí)驗(yàn)性架構(gòu),本質(zhì)上不一定是區(qū)塊鏈。

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

共享安全

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

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

基板

基板是用于構(gòu)建區(qū)塊鏈的開源,模塊化和可擴(kuò)展框架。

底層從頭開始進(jìn)行了靈活設(shè)計(jì),使創(chuàng)新者可以設(shè)計(jì)和構(gòu)建滿足其需求的區(qū)塊鏈網(wǎng)絡(luò)。它提供了構(gòu)建自定義區(qū)塊鏈節(jié)點(diǎn)所需的所有核心組件。

基板開發(fā)人員中心節(jié)點(diǎn)模板

我們以Node Template的形式提供了一個(gè)開箱即用的基于Substrate的節(jié)點(diǎn),您在閱讀本文時(shí)應(yīng)對其進(jìn)行編譯。無需進(jìn)行任何更改,您可以共享此節(jié)點(diǎn)模板,并創(chuàng)建具有加密貨幣和所有內(nèi)容的有效的區(qū)塊鏈網(wǎng)絡(luò)!

我們將教您如何在“開發(fā)”模式下使用該節(jié)點(diǎn),該模式使您可以在單個(gè)節(jié)點(diǎn)上運(yùn)行網(wǎng)絡(luò),并擁有一些預(yù)先配置的有資金的用戶帳戶。

建立和部署合同

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開發(fā)人員環(huán)境

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

3.基材的最新報(bào)道

自行構(gòu)建Substrate的開發(fā)人員應(yīng)始終每晚穩(wěn)定使用Rust的最新無錯(cuò)誤版本。這是因?yàn)镾ubstrate代碼庫遵循Rust每晚的技巧,這意味著Substrate的更改通常取決于Rust每晚編譯器的上游更改。為了確保您的Rust編譯器始終是最新的,您應(yīng)該運(yùn)行:

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

4.Wasm工具鏈

現(xiàn)在,配置每晚版本以與Wasm編譯目標(biāo)一起使用:

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

5.編譯基板

一旦安裝了先決條件,您就可以使用Git克隆Substrate Developer Hub節(jié)點(diǎn)模板,這是在Substrate上構(gòu)建的良好起點(diǎn)。

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

6.編譯節(jié)點(diǎn)模板

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

7.安裝前端模板

本教程使用ReactJS前端模板來允許您與應(yīng)該在上一步中開始編譯的基于Substrate的區(qū)塊鏈節(jié)點(diǎn)進(jìn)行交互。將來,您可以使用相同的前端模板為自己的項(xiàng)目創(chuàng)建UI。

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

  • 安裝Node.js
  • 安裝紗

現(xiàn)在,您可以使用這些命令來設(shè)置前端模板。

  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.啟動(dòng)節(jié)點(diǎn)

運(yùn)行以下命令以啟動(dòng)您的節(jié)點(diǎn):

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

使用此命令,如果您的節(jié)點(diǎn)運(yùn)行成功,您應(yīng)該會(huì)看到類似以下的內(nèi)容:

節(jié)點(diǎn)已啟動(dòng)

  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.合約組成

對于使用其他現(xiàn)代智能合約語言進(jìn)行編程的開發(fā)人員,應(yīng)該感到熟悉。合同的骨架具有您可能期望的所有相同組件:

  • 大事記
  • 貯存
  • 部署(構(gòu)造函數(shù))功能
  • 公共職能
  • 內(nèi)部功能

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

10.創(chuàng)造an ink!項(xiàng)目

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

確保您位于工作目錄中,然后運(yùn)行:

  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.建立合同

運(yùn)行以下命令來編譯您的智能合約:

  1. cargo +nightly contract build 

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

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

12.測試您的合同

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

在您的項(xiàng)目文件夾中運(yùn)行:

  1. cargo +nightly test 

您應(yīng)該看到要成功完成的測試:

  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.部署合同

現(xiàn)在我們已經(jīng)從源代碼生成了Wasm二進(jìn)制文件并啟動(dòng)了Canvas節(jié)點(diǎn),我們希望將該合同部署到我們的Substrate區(qū)塊鏈上。

Substrate上的智能合約部署與傳統(tǒng)智能合約區(qū)塊鏈上的部署有些不同。

每次您在其他平臺上推送合同時(shí),都會(huì)部署一個(gè)全新的智能合同源代碼塊,而Substrate選擇優(yōu)化此行為。。

在Substrate中,合同部署過程分為兩個(gè)部分:

  • 將您的代碼放在區(qū)塊鏈上
  • 創(chuàng)建合同實(shí)例

通過這種模式,可以將諸如ERC20標(biāo)準(zhǔn)之類的合同代碼一次性放置在區(qū)塊鏈上,但是可以實(shí)例化任意次。

無需持續(xù)上傳相同的源代碼并浪費(fèi)區(qū)塊鏈上的空間。

上載Wasm和元數(shù)據(jù)

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

打開“畫布UI”的特殊設(shè)計(jì)的“上傳”部分。

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

14.簽訂合同

單擊上載,然后在確認(rèn)頁面上簽名并提交。

這應(yīng)該發(fā)出一個(gè)contracts.PutCode事件。如果交易成功,您將收到一個(gè)system.ExtrinsicSuccess事件,您的WASM合同將存儲在您的Substrate區(qū)塊鏈上!

創(chuàng)建合同實(shí)例

智能合約作為區(qū)塊鏈上會(huì)計(jì)系統(tǒng)的擴(kuò)展而存在。因此,創(chuàng)建此合同的實(shí)例將創(chuàng)建一個(gè)新合同,該合同將AccountId存儲由智能合同管理的任何余額并允許我們與合同進(jìn)行交互。

在上一步中上傳合同后,確認(rèn)屏幕將顯示代表我們的智能合同的信息。現(xiàn)在,我們需要部署智能合約來創(chuàng)建實(shí)例。在確認(rèn)屏幕上按“部署代碼”按鈕。

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

當(dāng)您按Deploy時(shí),應(yīng)該會(huì)看到一系列事件,包括創(chuàng)建新帳戶(system.NewAccount)和實(shí)例化合同(contracts.instantiate):

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

default()功能

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

在“要發(fā)送的消息”部分中,選擇“ get():bool”消息,并接受其他選項(xiàng)的默認(rèn)值。

按“呼叫”并確認(rèn)它返回值false:

因此,true現(xiàn)在就讓價(jià)值轉(zhuǎn)向吧!

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

您會(huì)注意到該flip()消息默認(rèn)為交易呼叫。

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

目前為止,我們已經(jīng)成功在Polkadot上構(gòu)建和部署了智能合約,有任何疑問可以在留言區(qū)留言。

責(zé)任編輯:武曉燕 來源: 區(qū)塊鏈研究實(shí)驗(yàn)室
相關(guān)推薦

2021-03-11 19:13:04

NFT合約智能

2021-05-06 09:42:24

Truffle部署智能

2014-06-26 14:08:28

Azure云服務(wù)

2022-07-04 18:58:43

智能合約區(qū)塊鏈

2024-01-05 07:41:34

OpenLLM大語言模型LLM

2022-07-07 14:23:06

人工智能機(jī)器學(xué)習(xí)大數(shù)據(jù)

2022-04-20 10:11:45

PythonBrownie編程語言

2020-12-17 08:00:00

區(qū)塊鏈數(shù)據(jù)以太坊

2019-01-23 11:12:42

機(jī)器學(xué)習(xí)機(jī)器模型預(yù)測工資

2023-07-04 20:15:00

2010-03-29 13:35:39

ibmdwRIA

2019-09-18 11:17:53

云計(jì)算云安全

2021-08-06 13:46:29

人工智能AI深度學(xué)習(xí)

2020-04-22 13:23:46

智能合約區(qū)塊鏈比特幣

2021-11-02 10:25:19

區(qū)塊鏈智能合約

2021-03-25 16:34:10

區(qū)塊鏈加密資產(chǎn)技術(shù)

2023-05-05 08:00:00

2023-08-23 09:00:00

區(qū)塊鏈以太坊

2021-02-18 17:00:52

Linux歸檔文件

2021-04-19 11:11:57

云計(jì)算數(shù)字
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美黑人巨大videos精品 | 久久99蜜桃综合影院免费观看 | 国产精品一区视频 | 国产一级视频在线播放 | 国产精品久久久久aaaa樱花 | 国产jizz女人多喷水99 | 欧美寡妇偷汉性猛交 | 亚洲一区二区精品视频在线观看 | 91精品久久久久久久久中文字幕 | 超碰精品在线观看 | 国产乱码精品一区二区三区av | 国产精品美女www爽爽爽视频 | 国产日韩欧美 | 天天摸天天干 | 精品久久久久久久 | 久久久久久久国产精品视频 | 欧美激情欧美激情在线五月 | 99热在这里只有精品 | 久久精品欧美一区二区三区麻豆 | 黄色香蕉视频在线观看 | 一区二区三区视频 | av一级久久 | 日本成人午夜影院 | 日日淫 | 久草成人 | av夜夜操| 欧美三级在线 | 五月天综合影院 | 国产一级片一区二区 | 伊人伊人伊人 | 欧美久久久久久久久中文字幕 | 欧美视频xxx | 99久久国产综合精品麻豆 | 嫩草一区二区三区 | 婷婷中文字幕 | 日本不卡一区 | 成人在线精品 | 精品九九 | 欧美精品二区 | 操操日| 国产女人叫床高潮大片免费 |