日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从0到1简易区块链开发手册V0.3-数据持久化与创世区块

發布時間:2023/12/6 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从0到1简易区块链开发手册V0.3-数据持久化与创世区块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Author: brucefeng

Email: brucefeng@brucefeng.com

編程語言:Golang


1.BoltDB簡介

Bolt是一個純粹Key/Value模型的程序。該項目的目標是為不需要完整數據庫服務器(如Postgres或MySQL)的項目提供一個簡單,快速,可靠的數據庫。

BoltDB只需要將其鏈接到你的應用程序代碼中即可使用BoltDB提供的API來高效的存取數據。而且BoltDB支持完全可序列化的ACID事務,讓應用程序可以更簡單的處理復雜操作。

其源碼地址為:https://github.com/boltdb/bolt

2.BoltDB特性

BoltDB設計源于LMDB,具有以下特點:

  • 使用Go語言編寫
  • 不需要服務器即可運行
  • 支持數據結構

  • 直接使用API存取數據,沒有查詢語句;
  • 支持完全可序列化的ACID事務,這個特性比LevelDB強;
  • 數據保存在內存映射的文件里。沒有wal、線程壓縮和垃圾回收;
  • 通過COW技術,可實現無鎖的讀寫并發,但是無法實現無鎖的寫寫并發,這就注定了讀性能超高,但寫性能一般,適合與讀多寫少的場景。

BoltDB是一個Key/Value(鍵/值)存儲,這意味著沒有像SQL RDBMS(MySQL,PostgreSQL等)中的表,沒有行,沒有列。相反,數據作為鍵值對存儲(如在Golang Maps中)。鍵值對存儲在Buckets中,它們旨在對相似的對進行分組(這與RDBMS中的表類似)。因此,為了獲得Value(值),需要知道該Value所在的桶和鑰匙。

3.BoltDB簡單使用

//通過go get下載并import import "github.com/boltdb/bolt"

3.1 打開或創建數據庫

db, err := bolt.Open("my.db", 0600, nil) if err != nil {log.Fatal(err) } defer db.Close()
  • 執行注意點

如果通過goland程序運行創建的my.db會保存在

GOPATH /src/Project目錄下 如果通過go build main.go ; ./main 執行生成的my.db,會保存在當前目錄GOPATH /src/Project/package下

3.2 數據庫操作

(1) 創建數據庫表與數據寫入操作
//1. 調用Update方法進行數據的寫入 err = db.Update(func(tx *bolt.Tx) error { //2.通過CreateBucket()方法創建BlockBucket(表),初次使用創建b, err := tx.CreateBucket([]byte("BlockBucket"))if err != nil {return fmt.Errorf("Create bucket :%s", err)}//3.通過Put()方法往表里面存儲一條數據(key,value),注意類型必須為[]byteif b != nil {err := b.Put([]byte("l"), []byte("Send $100 TO Bruce"))if err != nil {log.Panic("數據存儲失敗..")}}return nil })//數據Update失敗,退出程序 if err != nil {log.Panic(err) }
(2) 數據寫入
//1.打開數據庫 db, err := bolt.Open("my.db", 0600, nil) if err != nil {log.Fatal(err) } defer db.Close()err = db.Update(func(tx *bolt.Tx) error {//2.通過Bucket()方法打開BlockBucket表b := tx.Bucket([]byte("BlockBucket")) //3.通過Put()方法往表里面存儲數據if b != nil {err := b.Put([]byte("l"), []byte("Send $200 TO Fengyingcong"))err = b.Put([]byte("ll"), []byte("Send $100 TO Bruce"))if err != nil {log.Panic("數據存儲失敗..")}}return nil }) //更新失敗 if err != nil {log.Panic(err) }
(3) 數據讀取
//1.打開數據庫 db, err := bolt.Open("my.db", 0600, nil) if err != nil {log.Fatal(err) } defer db.Close()//2.通過View方法獲取數據 err = db.View(func(tx *bolt.Tx) error {//3.打開BlockBucket表,獲取表對象b := tx.Bucket([]byte("BlockBucket"))//4.Get()方法通過key讀取valueif b != nil {data := b.Get([]byte("l"))fmt.Printf("%s\n", data)data = b.Get([]byte("ll"))fmt.Printf("%s\n", data)}return nil })if err != nil {log.Panic(err) }

4.通過BoltDB存儲區塊

該代碼包含對BoltDB的數據庫創建,表創建,區塊添加,區塊查詢操作

//1.創建一個區塊對象block block := BLC.NewBlock("Send $500 to Tom", 1, []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})//2. 打印區塊對象相關信息 fmt.Printf("區塊的Hash信息為:\t%x\n", block.Hash) fmt.Printf("區塊的數據信息為:\t%v\n", string(block.Data)) fmt.Printf("區塊的隨機數為:\t%d\n", block.Nonce)//3. 打開數據庫 db, err := bolt.Open("my.db", 0600, nil) if err != nil {log.Fatal(err) } defer db.Close()//4. 更新數據 err = db.Update(func(tx *bolt.Tx) error {//4.1 打開BlockBucket表對象b := tx.Bucket([]byte("blocks")) //4.2 如果表對象不存在,創建表對象if b == nil {b, err = tx.CreateBucket([]byte("blocks"))if err != nil {log.Panic("Block Table Create Failed")}}//4.3 往表里面存儲一條數據(key,value)err = b.Put([]byte("l"), block.Serialize())if err != nil {log.Panic("數據存儲失敗..")}return nil })//更新失敗,返回錯誤 if err != nil {log.Panic("數據更新失敗") }//5. 查看數據 err = db.View(func(tx *bolt.Tx) error {//5.1打開BlockBucket表對象b := tx.Bucket([]byte("blocks"))if b != nil {//5.2 取出key=“l”對應的valueblockData := b.Get([]byte("l"))//5.3反序列化 block := BLC.DeserializeBlock(blockData)//6. 打印區塊對象相關信息fmt.Printf("區塊的Hash信息為:\t%x\n", block.Hash)fmt.Printf("區塊的數據信息為:\t%v\n", string(block.Data))fmt.Printf("區塊的隨機數為:\t%d\n", block.Nonce)}return nil }) //數據查看失敗 if err != nil {log.Panic("數據更新失敗") }

五.創建創世區塊

1.概念

北京時間2009年1月4日2時15分5秒,比特幣的第一個區塊誕生了。隨著時間往后推移,不斷有新的區塊被添加到鏈上,所有后續區塊都可以追溯到第一個區塊。第一個區塊就被人們稱為創世區塊。

2. 工作量證明

在比特幣世界中,獲取區塊記賬權的過程稱之為挖礦,一個礦工成功后,他會把之前打包好的網絡上的交易記錄到一頁賬本上,同步給其他人。因為這個礦工能夠最先計算出超難數學題的正確答案,說明這個礦工付出了工作量,是一個有權利記賬的人,因此其他人也會同意這一頁賬單。這種依靠工作量來證明記賬權,大家來達成共識的機制叫做“工作量證明”,簡而言之結果可以證明你付出了多少工作量。Proof Of Work簡稱“PoW”,關于其原理跟代碼實現,我們在后面的代碼分析中進行講解說明。

2.1 定義結構體

type ProofOfWork struct {Block *Block //要驗證的blockTarget *big.Int //目標hash }

2.2 創建工作量證明對象

const TargetBit = 16 //目標哈希的0個個數,16,20,24,28 func NewProofOfWork(block *Block) *ProofOfWork {//1.創建pow對象pow := &ProofOfWork{}//2.設置屬性值pow.Block = blocktarget := big.NewInt(1) // 目標hash,初始值為1target.Lsh(target, 256-TargetBit) //左移256-16pow.Target = targetreturn pow}

我們首先設定一個難度系數值為16,即目標哈希前導0的個數,0的個數越多,挖礦難度越大,此處我們創建一個函數NewProofOfWork用于返回Pow對象。

目標Hash的長度為256bit,通過64個16進制byte進行展示,如下所示為前導0為16/4=4的哈希

0000c01d342fc51cb030f93979343de70ab771855dd8ca28e6f5888737759747
  • 通過big.NewInt創建一個BigInt對象target
  • 對target進行通過左移(256-TargetBit)位操作

2.3 將int64類型轉[]byte

func IntToHex(num int64) []byte {buff := new(bytes.Buffer)//將二進制數據寫入w//err := binary.Write(buff, binary.BigEndian, num)if err != nil {log.Panic(err)}//轉為[]byte并返回return buff.Bytes() }

通過func Write(w io.Writer, order ByteOrder, data interface{}) error方法將一個int64的整數轉為二進制后,每8bit一個byte,轉為[]byte

2.4 拼接區塊屬性數據

func (pow *ProofOfWork) prepareData(nonce int64) []byte {data := bytes.Join([][]byte{IntToHex(pow.Block.Height),pow.Block.PrevBlockHash,IntToHex(pow.Block.TimeStamp),pow.Block.HashTransactions(),IntToHex(nonce),IntToHex(TargetBit),}, []byte{})return data}

通過bytes.Join方法將區塊相關屬性進行拼接成字節數組

2.5 "挖礦"方法

func (pow *ProofOfWork) Run() ([]byte, int64) {var nonce int64 = 0var hash [32]bytefor {//1.根據nonce獲取數據data := pow.prepareData(nonce)//2.生成hashhash = sha256.Sum256(data) //[32]bytefmt.Printf("\r%d,%x", nonce, hash)//3.驗證:和目標hash比較/*func (x *Int) Cmp(y *Int) (r int)Cmp compares x and y and returns:-1 if x < y0 if x == y+1 if x > y目的:target > hashInt,成功*/hashInt := new(big.Int)hashInt.SetBytes(hash[:])if pow.Target.Cmp(hashInt) == 1 {break}nonce++}fmt.Println()return hash[:], nonce}

代碼思路

  • 設置nonce值:0,1,2.......
  • block-->拼接數組,產生hash
  • 比較實際hash和pow的目標hash

不斷更改nonce的值,計算hash,直到小于目標hash。

2.6 驗證區塊

func (pow *ProofOfWork) IsValid() bool {hashInt := new(big.Int)hashInt.SetBytes(pow.Block.Hash)return pow.Target.Cmp(hashInt) == 1 }

判斷方式同挖礦中的策略

3.區塊創建

3.1 定義結構體

type Block struct {//字段屬性//1.高度:區塊在區塊鏈中的編號,第一個區塊也叫創世區塊,一般設定為0Height int64//2.上一個區塊的Hash值PrevBlockHash []byte//3.數據:Txs,交易數據Txs []*Transaction//4.時間戳TimeStamp int64//5.自己的hashHash []byte//6.NonceNonce int64 }

關于屬性的定義,在代碼的注釋中比較清晰了,需要提一下的就是創世區塊的PrevBlockHash一般設定為0 ,高度也一般設定為0

3.2 創建創世區塊

func CreateGenesisBlock(txs []*Transaction) *Block{return NewBlock(txs,make([]byte,32,32),0) }

設定創世區塊的PrevBlockHash為0,區塊高度為0

3.3 序列化區塊對象

func (block *Block) Serialize()[]byte{//1.創建一個buffvar buf bytes.Buffer//2.創建一個編碼器encoder:=gob.NewEncoder(&buf)//3.編碼err:=encoder.Encode(block)if err != nil{log.Panic(err)}return buf.Bytes() }

通過gob庫的Encode方法將Block對象序列化成字節數組,用于持久化存儲

3.4 字節數組反序列化

func DeserializeBlock(blockBytes [] byte) *Block{var block Block//1.先創建一個readerreader:=bytes.NewReader(blockBytes)//2.創建×××decoder:=gob.NewDecoder(reader)//3.解碼err:=decoder.Decode(&block)if err != nil{log.Panic(err)}return &block }

定義一個函數,用于將[]byte反序列化為block對象

4.區塊鏈創建

4.1 定義結構體

type BlockChain struct {DB *bolt.DB //對應的數據庫對象Tip [] byte //存儲區塊中最后一個塊的hash值 }

定義區塊鏈結構體屬性DB用于存儲對應的數據庫對象,Tip用于存儲區塊中最后一個塊的Hash值

4.2 判斷數據庫是否存在

const DBName = "blockchain.db" //數據庫的名字 const BlockBucketName = "blocks" //定義bucket

定義數據庫名字以及定義用于存儲區塊數據的bucket(表)名

func dbExists() bool {if _, err := os.Stat(DBName); os.IsNotExist(err) { return false //表示文件不存在}return true //表示文件存在 }

需要注意IsNotExist返回true,則表示不存在成立,返回值為true,則dbExists函數的返回值則需要返回false,否則,返回true

4.3 創建帶有創世區塊的區塊鏈

func CreateBlockChainWithGenesisBlock(address string) {/*1.判斷數據庫如果存在,直接結束方法2.數據庫不存在,創建創世區塊,并存入到數據庫中*/if dbExists() {fmt.Println("數據庫已經存在,無法創建創世區塊")return}//數據庫不存在fmt.Println("數據庫不存在")fmt.Println("正在創建創世區塊")/*1.創建創世區塊2.存入到數據庫中*///創建一個txs--->CoinBasetxCoinBase := NewCoinBaseTransaction(address)genesisBlock := CreateGenesisBlock([]*Transaction{txCoinBase})db, err := bolt.Open(DBName, 0600, nil)if err != nil {log.Panic(err)}defer db.Close()err = db.Update(func(tx *bolt.Tx) error {//創世區塊序列化后,存入到數據庫中b, err := tx.CreateBucketIfNotExists([]byte(BlockBucketName))if err != nil {log.Panic(err)}if b != nil {err = b.Put(genesisBlock.Hash, genesisBlock.Serialize())if err != nil {log.Panic(err)}b.Put([]byte("l"), genesisBlock.Hash)}return nil})if err != nil {log.Panic(err)}//return &BlockChain{db, genesisBlock.Hash} }

代碼分析

(1) 判斷數據庫是否存在,如果不存在,證明還沒有創建創世區塊,如果存在,則提示創世區塊已存在,直接返回

if dbExists() {fmt.Println("數據庫已經存在,無法創建創世區塊")return}

(2) 如果數據庫不存在,則提示開始調用相關函數跟方法創建創世區塊

fmt.Println("數據庫不存在")fmt.Println("正在創建創世區塊")

(3) 創建一個交易數組Txs

關于交易這一部分內容,將在后面一個章節中進行詳細說明,篇幅會非常長,這也是整個課程體系中最為繁瑣,知識點最廣的地方,屆時慢慢分析

txCoinBase := NewCoinBaseTransaction(address)

通過函數NewCoinBaseTransaction創建一個CoinBase交易

func NewCoinBaseTransaction(address string) *Transaction {txInput := &TxInput{[]byte{}, -1, nil, nil}txOutput := NewTxOutput(10, address)txCoinBaseTransaction := &Transaction{[]byte{}, []*TxInput{txInput}, []*TxOutput{txOutput}}//設置交易IDtxCoinBaseTransaction.SetID()return txCoinBaseTransaction }

(4) 生成創世區塊

genesisBlock := CreateGenesisBlock([]*Transaction{txCoinBase})

(5) 打開/創建數據庫

db, err := bolt.Open(DBName, 0600, nil)if err != nil {log.Panic(err)}defer db.Close()

通過bolt.Open方法打開(如果不存在則創建)數據庫文件,注意數據庫關閉操作不能少,用defer實現延遲關閉。

(6) 將數據寫入數據庫

err = db.Update(func(tx *bolt.Tx) error {b, err := tx.CreateBucketIfNotExists([]byte(BlockBucketName))if err != nil {log.Panic(err)}if b != nil {err = b.Put(genesisBlock.Hash, genesisBlock.Serialize())if err != nil {log.Panic(err)}b.Put([]byte("l"), genesisBlock.Hash)}return nil})if err != nil {log.Panic(err)}

通過db.Upadate方法進行數據更新操作

  • 創建/打開存儲區塊的Bucket:BlockBucketName
  • 將創世區塊序列化后存入Bucket中
    • 通過Put方法更新K/V值(Key:區塊哈希,Value:區塊序列化后的字節數組)
    • 通過Put方法更新Key為“l”的Value為最新區塊哈希值,此處即genesisBlock.Hash

5.命令行調用

func (cli *CLI) CreateBlockChain(address string) {CreateBlockChainWithGenesisBlock(address) }

測試命令

$ ./mybtc createblockchain -address 1DHPNHKfk9uUdog2f2xBvx9dq4NxpF5Q4Q

返回結果

數據庫不存在 正在創建創世區塊 32325,00005c7b4246aa88bd1f9664c665d6424d1522f569d981691ac2b5b5d15dd8d9

本章節介紹了如何創建一個帶有創世區塊的區塊鏈,并持久化存儲至數據庫blockchain.db

$ ls BLC Wallets.dat blockchain.db main.go mybtc

總結

以上是生活随笔為你收集整理的从0到1简易区块链开发手册V0.3-数据持久化与创世区块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

av网在线观看 | 五月天色站 | 999精品网| 狠狠躁夜夜av | av在线h| 97色在线| 最近乱久中文字幕 | 国产伦精品一区二区三区在线 | 在线观看91视频 | 在线观看网站你懂的 | 涩五月婷婷 | 男女免费视频观看 | 中文字幕高清免费日韩视频在线 | 欧美在线视频a | 日本中出在线观看 | 中文字幕第一页在线播放 | 一级免费黄色 | 国产精品 中文字幕 亚洲 欧美 | 在线观看完整版 | 亚洲精品国产精品国自产观看 | 国产精品18久久久久久vr | 欧美精品在线视频观看 | 国产成人在线播放 | 天天综合区 | 国产成人黄色片 | www免费视频com | 黄色a一级片 | 91片黄在线观看动漫 | 欧美久久久久久久久久久久久 | 国产视频日韩视频欧美视频 | 亚洲资源片| 亚洲片在线观看 | 天天操天 | 欧美日本啪啪无遮挡网站 | 免费a v在线 | 免费视频久久久 | 国产精品男女啪啪 | 午夜精品久久久久久99热明星 | 青青河边草免费 | 人人爽人人插 | a午夜在线 | 亚洲国产高清在线 | 亚洲免费av观看 | 欧美精品免费在线观看 | 91亚洲国产成人久久精品网站 | 免费观看mv大片高清 | 永久免费看av| 色网站在线免费观看 | 91精品国产自产在线观看 | 91自拍91 | 91久久影院| 日韩无在线 | 91久久精品日日躁夜夜躁国产 | 2022中文字幕在线观看 | 国产日韩精品视频 | 亚洲精品合集 | 欧美成人精品欧美一级乱黄 | 色综合咪咪久久网 | 日韩在线色视频 | 日韩电影中文字幕在线观看 | 成人黄色大片在线观看 | 国产精品11 | 日韩免费看视频 | 久久久精品在线观看 | 国产精品手机在线 | 久久久久国产成人精品亚洲午夜 | 97综合视频 | 日日草视频 | 国产精品一区二区白浆 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 黄色片免费在线 | 色综合久久中文字幕综合网 | 国产精品av在线免费观看 | 成人av播放 | 天天干天天干天天干 | 99视频在线观看视频 | 日韩久久精品一区二区 | 日韩免费观看视频 | 91香蕉视频| 国产精品永久免费视频 | 91丨九色丨高潮 | 欧美成人按摩 | 二区视频在线观看 | 国产精品久久久久久一区二区三区 | 五月婷婷电影网 | 91在线影视 | 婷婷伊人五月 | 九九九九热精品免费视频点播观看 | 手机成人av | 狠狠干婷婷| 精品一区电影国产 | 美女很黄免费网站 | 五月婷网站 | 黄色不卡av | 夜夜澡人模人人添人人看 | 欧美特一级片 | 中文字幕黄色 | 97成人精品视频在线播放 | 在线亚洲午夜片av大片 | 国产精品资源在线观看 | 91视频免费网址 | 国产一级电影在线 | 精品国产一区二区三区久久久 | 手机在线看片日韩 | av一级片在线观看 | 久久婷婷色 | 日日碰夜夜爽 | 精品乱码一区二区三四区 | 色狠狠一区二区 | 日韩xxxx视频| 五月综合色婷婷 | 国产色综合 | 欧美 日韩 成人 | 色片网站在线观看 | 狠狠色丁香婷婷综合欧美 | 99久久夜色精品国产亚洲 | 日韩精品久久久 | 97超视频 | 久久久久久久久免费视频 | 日日干夜夜草 | 97av在线 | 国产高清成人 | 国产美女搞久久 | 欧美日韩中文另类 | 久久99亚洲精品久久久久 | 98福利在线 | 九九九热精品免费视频观看 | 国产午夜精品福利视频 | 中文字幕一区二区三区在线视频 | 最近更新中文字幕 | 五月婷网站 | 国产剧情在线一区 | 午夜狠狠操 | 懂色av懂色av粉嫩av分享吧 | 成人91免费视频 | 99视频在线免费观看 | 国产a级片免费观看 | 91x色| 国产区久久| 在线免费观看麻豆视频 | 九九热av | 射射色| 99国内精品久久久久久久 | 日日干 天天干 | 岛国精品一区二区 | 午夜久久久久久久久 | 日韩中文字幕免费视频 | av久久在线| 久操中文字幕在线观看 | av天天澡天天爽天天av | 中文字幕字幕中文 | 日韩最新理论电影 | 亚洲精品在线观看中文字幕 | 久久五月天综合 | 99热999| 激情五月在线视频 | 亚洲精品影院在线观看 | 久草免费新视频 | 97精品久久人人爽人人爽 | 久久草草热国产精品直播 | 国产精品区二区三区日本 | 日韩免费网址 | 狠狠色狠狠色综合日日92 | 欧美精选一区二区三区 | zzijzzij日本成熟少妇 | 中日韩在线视频 | 国产日产在线观看 | 在线免费亚洲 | 97在线精品视频 | 国产视频亚洲精品 | 麻豆高清免费国产一区 | 91成人短视频在线观看 | 色偷偷88888欧美精品久久久 | 国产成人精品免费在线观看 | 欧美黑人xxxx猛性大交 | 国产亚洲视频在线观看 | 亚洲欧美日韩在线看 | 欧美一区二区在线免费观看 | 成人精品视频 | 中文字幕av免费在线观看 | 中文字幕高清有码 | 91.精品高清在线观看 | 免费三级黄 | 99爱这里只有精品 | 国产精品毛片一区视频播不卡 | av网站在线观看免费 | 国产伦理一区二区三区 | 亚洲精品高清在线观看 | 97热久久免费频精品99 | 久久极品| 日韩欧美xxxx| 伊人国产在线播放 | 免费国产在线精品 | 天天操夜夜干 | 日韩欧美综合在线视频 | 日日爽 | 国产精品久久久久久久久久不蜜月 | 日韩av电影中文字幕 | 亚洲精品乱码久久久久久蜜桃不爽 | 亚洲精品女人久久久 | 天天操天天操天天操天天操天天操天天操 | 久久免费99精品久久久久久 | 免费看搞黄视频网站 | 成人a免费 | 91热精品 | 亚洲欧美国内爽妇网 | 中文字幕黄色网 | 天天色天天色天天色 | 免费看黄色小说的网站 | 国偷自产中文字幕亚洲手机在线 | 91视频一8mav | 91精品国自产拍天天拍 | 免费高清无人区完整版 | 在线观看黄色小视频 | 色橹橹欧美在线观看视频高清 | 91福利在线导航 | 久久都是精品 | av在线色 | 国产日韩欧美精品在线观看 | 精品在线视频一区二区三区 | 久久精品直播 | 日韩精品一区二区在线视频 | 一二区电影 | 三级黄色欧美 | 国产亚洲精品久久久网站好莱 | 18久久久久| 国产黄色片免费看 | 亚洲欧美视频 | 日韩国产欧美在线视频 | 精品成人久久 | 91精品久久香蕉国产线看观看 | 日韩在线播放av | 亚洲h视频在线 | 日韩在线免费视频 | 精品欧美一区二区在线观看 | 五月天婷亚洲天综合网鲁鲁鲁 | 日本精品在线视频 | 亚洲成人麻豆 | 国产精品久久久久久超碰 | 免费在线国产视频 | 国产一级在线观看 | 久久嗨| 亚洲日本中文字幕在线观看 | 国产一区二区三区视频在线 | 在线成人国产 | 久久在线精品视频 | 午夜国产福利视频 | 综合中文字幕 | 欧美精品一区二区三区一线天视频 | 在线观看免费中文字幕 | 久久伊人综合 | 久久久精品 | 免费裸体视频网 | 成人在线视频在线观看 | 国产亚洲精品无 | 夜色资源站国产www在线视频 | 久久伦理网 | 久久综合射 | 4438全国亚洲精品在线观看视频 | 国产视频日本 | 中日韩三级视频 | a√天堂中文在线 | 激情视频国产 | 亚洲日本一区二区在线 | 天天干天天操天天爱 | 天天操天天色天天 | 国产不卡在线看 | 美女黄频视频大全 | 国产糖心vlog在线观看 | 四虎成人精品在永久免费 | 狠狠成人| 中文字幕一区二区三区久久 | 99亚洲精品 | 免费在线观看av网址 | 午夜精品一区二区三区四区 | 超碰97在线资源 | 8x成人免费视频 | 国产少妇在线观看 | 色综合久久精品 | 欧美韩国日本在线 | 中文av免费 | 能在线观看的日韩av | 超碰日韩在线 | 亚欧日韩成人h片 | 制服丝袜亚洲 | 日韩影视大全 | 国产小视频在线观看免费 | 在线观看激情av | 久久这里 | 69av久久| 一本大道久久精品懂色aⅴ 五月婷社区 | 日本高清久久久 | 日韩有码在线播放 | a级黄色片视频 | 91av成人 | 久久综合中文色婷婷 | 国产理论在线 | 国产成人在线观看免费 | 精品播放 | 亚洲综合五月天 | 99re视频在线观看 | 久久免费的精品国产v∧ | 亚洲精品一区二区三区在线观看 | 欧美精品久久久久久久久久白贞 | 欧美日比视频 | 97电院网手机版 | 久久99婷婷 | 国产精品欧美久久久久无广告 | 胖bbbb搡bbbb擦bbbb | aaa日本高清在线播放免费观看 | 黄色三级在线观看 | 96视频免费在线观看 | 激情综合网五月激情 | 久久超碰97 | 国产精品99蜜臀久久不卡二区 | 操碰av| 国产一区二区在线视频观看 | 久久韩国免费视频 | 日韩a在线看 | 超碰国产在线观看 | 国产日韩精品视频 | 一区二区在线不卡 | 激情网色| 免费欧美高清视频 | 亚洲精品免费在线 | 91最新在线 | 欧美精品中文在线免费观看 | 91精品国产综合久久福利不卡 | 久久精品波多野结衣 | 亚洲欧美视频 | 日韩精品无码一区二区三区 | 超碰在线公开 | 国产h在线播放 | 黄色毛片网站在线观看 | 最新av免费在线 | 在线国产日本 | 99免费看片| 精品久久久久久久久久久久久久久久 | 亚洲精品国产日韩 | 久久久精品国产免费观看一区二区 | 黄色网www| 97超碰精品| 国产婷婷精品 | 国产在线观看网站 | 日韩av不卡在线观看 | 亚洲区精品 | 99免费在线视频观看 | 日韩欧美精品免费 | 日韩专区视频 | 不卡av免费在线观看 | 人人干狠狠操 | 亚洲成人黄色在线 | 岛国大片免费视频 | www.日本色 | 99热手机在线观看 | 精品国产123| 久久久久久久久毛片 | 五月婷在线视频 | 日日干夜夜干 | 国产精品美乳一区二区免费 | 国产精品自产拍在线观看网站 | 亚洲国产成人久久综合 | 大胆欧美gogo免费视频一二区 | 久久男人中文字幕资源站 | 天天射日 | 9在线观看免费 | 在线视频日韩一区 | 日韩高清成人 | 日日干夜夜骑 | 青青河边草观看完整版高清 | 亚洲天堂精品 | 五月天天色 | 天天射综合| 日本不卡123区 | 日本精品视频网站 | 夜夜骑日日 | 四虎成人精品 | 开心激情综合网 | 国产视频一区二区在线 | 园产精品久久久久久久7电影 | 97超碰超碰 | 九九免费在线观看 | 亚洲精品1区2区3区 超碰成人网 | 成人免费网站视频 | 综合网天天射 | 人成在线免费视频 | 91免费国产在线观看 | 日本中文字幕在线播放 | 粉嫩一区二区三区粉嫩91 | 日韩在观看线 | 国产色在线观看 | 欧美成人高清 | 久久精品成人 | 91精品在线看 | 黄色一级网 | 久久久www成人免费精品张筱雨 | 国产国语在线 | 婷婷五月色综合 | 五月婷婷综合久久 | 处女av在线 | 亚洲男模gay裸体gay | 亚洲激情小视频 | 黄色1级毛片 | 99 色| 国产一级片不卡 | www.狠狠操| 日韩中文字幕91 | 中文字幕免费观看 | 久久视频在线观看 | 亚洲蜜桃av | 久久福利剧场 | 国产亚洲视频系列 | 开心丁香婷婷深爱五月 | 天天搞天天 | 国产精品免费久久久久久久久久中文 | 四虎影视成人永久免费观看亚洲欧美 | 中文字幕免费观看 | 天天色天天射天天干 | 97成人在线视频 | 99精品视频中文字幕 | 麻豆传媒视频在线免费观看 | 国产高清无av久久 | 最近高清中文字幕在线国语5 | 久久久久免费网站 | 亚洲国产99 | 中文字幕亚洲欧美日韩 | 欧美日一级片 | 特级a老妇做爰全过程 | 日本中文字幕影院 | 中午字幕在线观看 | www国产亚洲 | 欧美一区二区免费在线观看 | 国产成人av电影在线 | a视频在线 | 日韩天天综合 | 国产又粗又硬又长又爽的视频 | 97av色| 中文字幕在线观看不卡 | 成年人在线免费看视频 | 国产精品1区 | 亚洲精品视频大全 | 日韩综合视频在线观看 | 91禁在线看| 91视频亚洲 | 国产精品久久久久永久免费 | 日韩电影中文,亚洲精品乱码 | 一级黄色片网站 | 精精国产xxxx视频在线播放 | 欧美日本中文字幕 | a级成人毛片 | 999在线视频 | 国产成人一区二区三区免费看 | 免费av免费观看 | 波多野结衣久久资源 | 天天爱天天操 | 国产探花 | 亚洲最大免费成人网 | 亚洲专区中文字幕 | 91精品欧美 | 国产99久久久国产精品免费二区 | 在线免费色 | 色综合网在线 | 国产剧情一区 | 日韩欧美亚州 | 精品字幕在线 | 99久久夜色精品国产亚洲 | 91成人在线观看高潮 | 日日草视频 | 91精品在线看 | 97精品国自产拍在线观看 | 亚洲激精日韩激精欧美精品 | 人人模人人爽 | 日韩网站在线观看 | 国产精品18久久久 | 中文字幕在线视频网站 | 成人av高清在线 | 日本女人的性生活视频 | 最近最新中文字幕视频 | 成 人 黄 色 片 在线播放 | 免费国产在线视频 | 天天操夜夜看 | 久久精品日产第一区二区三区乱码 | 国内久久| 国产一级在线视频 | 欧美成人xxxxx | adc在线观看| 色综合五月天 | 在线观看国产成人av片 | 五月导航 | 日狠狠| 成人午夜电影在线观看 | 国产精品欧美久久 | 久久视屏网| 亚洲精品视频在线播放 | 天天插狠狠干 | 亚洲视频在线免费看 | 911av视频 | 99热日本| 亚州性色 | 丝袜美腿亚洲综合 | 婷婷婷国产在线视频 | 探花视频免费观看 | 中文字幕视频一区 | 国产精品久久久久一区二区国产 | 2019免费中文字幕 | 99999精品视频 | 99久久精品无码一区二区毛片 | 99久久www | 久久成人国产精品免费软件 | 欧美久久99 | 99精品国产在热久久 | 久久久久国产精品免费免费搜索 | 人人爱爱人人 | 中文字幕免费在线 | a黄在线观看 | 日韩电影在线观看中文字幕 | 超碰999 | 在线观看成人一级片 | 97超碰站| 久久久久久久久久久免费 | 色婷婷狠狠五月综合天色拍 | 在线视频日韩一区 | 激情校园亚洲 | 欧美男女爱爱视频 | 日韩高清免费电影 | 国产精品涩涩屋www在线观看 | 亚洲国产精品激情在线观看 | 久久久综合九色合综国产精品 | 久久九九精品久久 | 亚洲国产精品成人精品 | 欧美伦理电影一区二区 | 麻豆久久一区二区 | 在线播放国产精品 | 99精品视频在线免费观看 | 狠狠干电影 | 人人爽人人爽人人片av | 韩日三级av | www.亚洲精品在线 | 成人在线黄色电影 | 免费的黄色的网站 | 中文字幕在线观看免费高清完整版 | 麻豆综合网| 亚洲狠狠操 | 人人玩人人添人人澡97 | 久草在线视频免赞 | 天天干天天操av | 91精品久久久久久久久久久久久 | 久久尤物电影视频在线观看 | 精品视频久久久久久 | 久久久精品视频网站 | 久久成人黄色 | 免费在线黄色av | av在线h | 在线观看日韩中文字幕 | 国产三级香港三韩国三级 | 色网站中文字幕 | 亚洲涩涩涩| www.xxx.性狂虐 | 99国产精品免费网站 | 美女视频永久黄网站免费观看国产 | 久久99久久久久久 | 久久久午夜精品福利内容 | 免费成人在线观看 | 91热| 精品国产免费一区二区三区五区 | 国产午夜精品一区二区三区 | 六月丁香伊人 | 久久 精品一区 | 最新av电影网站 | 亚洲资源片 | 高清不卡一区二区在线 | 欧美最猛性xxxx | 天天看天天干 | 久久精品视频网 | 国产精品免费久久久久久久久久中文 | 久久精品一区二区三区视频 | 美女久久久久久久久久久 | 香蕉视频在线播放 | 91麻豆精品国产91久久久久久 | 久久国产一二区 | 天天干天天操天天入 | 国产一区二区在线播放视频 | 精品国产美女 | 亚洲亚洲精品在线观看 | 性色在线视频 | 久久手机免费观看 | 日韩av手机在线观看 | 日本黄色免费看 | 精品一区二区综合 | 青青河边草观看完整版高清 | 91精品国产91热久久久做人人 | 99久久久久国产精品免费 | 免费在线观看黄色网 | 亚洲欧美视频在线观看 | 在线看成人片 | 人人草天天草 | 在线日韩精品视频 | 在线不卡a | 91精品国产91 | 亚洲最大在线视频 | 美女视频a美女大全免费下载蜜臀 | 国产精品美女久久 | 激情丁香5月 | 亚洲高清av在线 | 成人黄色大片在线观看 | 国产精品18久久久久久久 | 激情五月六月婷婷 | 97电影在线| 久久久久久久久久久久电影 | 天天操天天操天天操天天操 | 国产成人精品久久久久蜜臀 | 黄色91免费观看 | 国产乱码精品一区二区三区介绍 | av丁香| 成人黄色免费观看 | 最近2019年日本中文免费字幕 | 91在线小视频 | 在线天堂v | 婷婷视频在线播放 | 国产一二三区在线观看 | 精品中文字幕视频 | 欧美激情视频一区二区三区免费 | 日韩av在线不卡 | 日韩久久视频 | 探花视频在线版播放免费观看 | 亚洲不卡在线 | 久热免费在线 | 国产精品入口66mio女同 | 91视频在线观看下载 | 美国av大片 | 国产免费高清 | 99色亚洲| 91精品国产成人观看 | 国产福利精品视频 | 91精品久久久久久久久久入口 | 新av在线 | 日韩三区在线 | 免费看日韩片 | 中文av在线免费观看 | 毛片一级免费一级 | 色精品视频| 久久九九九九 | 久久免费看a级毛毛片 | 色香蕉网| 天天色官网| 精品一区二区免费视频 | 操少妇视频 | 黄色精品网站 | 国产精品久久三 | 天天摸天天舔天天操 | 国产精品欧美久久久久天天影视 | 免费成人在线视频网站 | av在线播放观看 | bayu135国产精品视频 | 91视频91蝌蚪| 久久无码精品一区二区三区 | 伊人国产视频 | 天天综合色天天综合 | 51精品国自产在线 | 亚洲天天草 | 欧美亚洲一区二区在线 | 久久高清国产视频 | 97天堂 | 国产日韩欧美在线播放 | 最近高清中文在线字幕在线观看 | 成年人毛片在线观看 | 成人免费观看在线视频 | 狠狠躁18三区二区一区ai明星 | 天天艹天天 | 国产精品第2页 | 久久艹人人 | 69国产成人综合久久精品欧美 | 免费高清在线观看电视网站 | 国产亚洲精品久久久久久无几年桃 | 日韩中文字幕免费视频 | 91色在线观看视频 | 91九色在线视频观看 | 视频国产 | 久久国产精品成人免费浪潮 | 国产成人av片 | 亚洲人成免费 | 精品一区二区在线免费观看 | 国产99一区视频免费 | 成人app在线免费观看 | 日韩天堂网 | 一级黄色免费 | 国产精品 日韩 欧美 | 最近日本mv字幕免费观看 | 成人91视频 | 国产日韩三级 | 国产破处在线视频 | 日韩一级电影在线 | 国产高清在线a视频大全 | 久久久久亚洲精品成人网小说 | 最新中文字幕在线播放 | 麻豆影视在线免费观看 | 免费一级日韩欧美性大片 | 日韩欧美在线高清 | 国产精品免费av | 国产精品三级视频 | 国产a网站 | 国产福利91精品 | 欧美综合干 | 又爽又黄又刺激的视频 | 欧美乱熟臀69xxxxxx | 麻豆影视网站 | av短片在线| 狠狠躁夜夜av | 久香蕉| 五月婷综合网 | 久久视频网| 在线国产精品视频 | 黄色a大片 | 国产99久久久精品 | 久久久五月天 | 不卡av电影在线 | 亚洲一级二级三级 | 日韩在线视频一区二区三区 | 免费看黄20分钟 | 天天狠狠操| 久草免费福利在线观看 | 成人h动漫精品一区二 | 蜜桃av综合网| 国产精品久久久久久久免费观看 | 97自拍超碰 | 成人avav | 国产精品视频久久 | 伊人婷婷网 | 少妇高潮冒白浆 | 亚洲精品91天天久久人人 | 日韩网站在线 | 久久第四色 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 日韩三级视频在线观看 | 久久综合导航 | 黄a在线观看 | 五月天激情开心 | 日本成人黄色片 | 精品毛片久久久久久 | 国产区网址 | www国产亚洲精品 | 最新中文字幕在线播放 | 美女视频黄频大全免费 | 中文字幕亚洲不卡 | 黄色a视频 | 五月天婷婷在线观看视频 | 日韩在线视频网 | 狠日日| 亚洲精品美女在线 | 在线国产片 | 在线中文字幕一区二区 | 色网av | 久久综合婷婷 | 国产不卡网站 | 久热精品国产 | 欧美大香线蕉线伊人久久 | 日韩91av| 日韩在线激情 | 国产精品久久久久久久免费大片 | 天堂av影院 | 色九九视频 | 日本最新高清不卡中文字幕 | 国产一区二区久久久 | 91中文字幕永久在线 | 99色婷婷 | 国产亚洲高清视频 | 欧美美女激情18p | 国产精品99久久免费观看 | 欧美激情精品久久 | 首页国产精品 | 国产精品一区二区美女视频免费看 | 久久久黄色av| 最新国产精品拍自在线播放 | 国产又粗又猛又黄视频 | 国产精品亚洲精品 | 国产在线不卡精品 | 少妇av片 | 日韩成人av在线 | 国产日韩欧美中文 | 香蕉视频在线播放 | 久久久久久久国产精品视频 | 久久国产视频网站 | 四虎精品成人免费网站 | 中文日韩在线视频 | 日韩免费看视频 | 午夜视频一区二区 | 成人av免费在线观看 | 免费观看的黄色片 | 波多野结衣一区二区三区中文字幕 | 在线色亚洲 | 日本中文字幕网址 | av在线播放快速免费阴 | 视频91 | 亚洲欧美国产视频 | 亚洲va韩国va欧美va精四季 | 久久观看| 精品999在线| 激情 婷婷 | 久久高清免费视频 | 精品在线观 | 国产二区免费视频 | 成人av在线影视 | 丁香六月天 | 午夜精品福利影院 | 国产精品久久久久久久久久白浆 | 亚洲视频一级 | 人人狠狠综合久久亚洲婷 | 国产美女精品视频 | 亚洲激情 欧美激情 | 久久精品亚洲国产 | 免费a网 | 99久久99久久精品免费 | 99久久精品国产网站 | 国产九九九精品视频 | 97香蕉超级碰碰久久免费软件 | 天天综合网天天综合色 | 制服丝袜成人在线 | 亚洲国产成人av网 | 国产精品国产亚洲精品看不卡 | 亚洲精品白浆高清久久久久久 | 久久成人国产精品入口 | 欧美日韩调教 | 96国产在线 | 亚洲毛片视频 | 国产国语在线 | 日韩精品一区二区三区电影 | 亚洲精品综合一区二区 | 亚洲精品xx | 久久这里只有精品首页 | 奇米影视8888在线观看大全免费 | 操久在线 | 在线影院中文字幕 | 91最新视频在线观看 | 九色精品在线 | 亚洲精品久久久久久久不卡四虎 | 久久综合狠狠综合久久综合88 | 在线观看激情av | h文在线观看免费 | 亚洲午夜精品久久久 | 成人啪啪18免费游戏链接 | 三级在线视频观看 | 免费91麻豆精品国产自产在线观看 | 亚洲精品中文在线观看 | 五月天婷婷在线视频 | 91成人免费视频 | 国产四虎在线 | 亚洲精品久久视频 | 中文字幕av一区二区三区四区 | 久久99国产精品免费网站 | 插插插色综合 | 国产精品 日韩 欧美 | 成人精品一区二区三区电影免费 | 精品久久一区二区三区 | 91精品久久久久久久91蜜桃 | 五月天综合网站 | 欧美日韩二区在线 | 成人aⅴ视频 | 精品国产成人av在线免 | 免费观看全黄做爰大片国产 | 国产亚洲精品久久久久久无几年桃 | 国产精品一区二区你懂的 | 日批视频在线 | 亚洲综合在线五月 | 看av在线| 中文字幕日本在线 | www.亚洲精品 | 黄色a三级| 久久久久久99精品 | 日韩精品资源 | 国产青春久久久国产毛片 | 亚洲欧美成人网 | 999久久精品 | 亚洲不卡av一区二区三区 | 91免费观看网站 | 精品a视频 | 国产成人免费高清 | 在线观看亚洲专区 | 99久久国产免费看 | 国产精品一区二区三区免费视频 | 亚洲日日日 | 亚洲国产97在线精品一区 | 99热在线国产精品 | 成人在线视频你懂的 | 鲁一鲁影院 | 国产精品1000 | 国产免费叼嘿网站免费 | www.看片网站 | 久久久久久久久久久黄色 | 美女久久精品 | 欧美色图30p | ,久久福利影视 | 狠狠操天天射 | 精品美女视频 | 免费高清av在线看 | 又色又爽的网站 | 色www精品视频在线观看 | 日韩理论 | 欧美日韩精品区 | 国产精品日韩 | av+在线播放在线播放 | 91人人网| 91高清在线看 | www激情久久 | 久久精品—区二区三区 | 国产视频精品久久 | 黄色成人影视 | 国产精品网在线观看 | 日韩在线网址 | 9999精品免费视频 | 91精品国产福利在线观看 | 国产视频一区二区在线 | 亚洲国产精品传媒在线观看 | 亚洲一区二区三区在线看 | 国产精品美女视频 | 欧美一区二区免费在线观看 | 亚洲伊人色 | www.亚洲精品| 亚洲精品午夜久久久久久久久久久 | 久亚洲| 中文字幕成人在线 | www.久久com| 亚洲aⅴ一区二区三区 | 天天射综合 | 99精品视频网 | 丁香电影小说免费视频观看 | 香蕉视频免费在线播放 | 久久久久国产精品视频 | 国产视频欧美视频 | 在线日韩亚洲 | 免费福利片2019潦草影视午夜 | 国产成人精品一区二 | 国产精品第 | 日韩大片在线免费观看 | 成人播放器 | 免费99| 99人久久精品视频最新地址 | 99久久国产免费免费 | 国产露脸91国语对白 | 色夜视频 | 五月婷婷在线播放 | 日韩午夜视频在线观看 | 日韩精品一区二区三区在线播放 | 日批视频在线 | 国产一级免费播放 | 国产短视频在线播放 | 欧美人交a欧美精品 | 欧美成人视 | 91精品国产网站 | 亚洲美女视频在线观看 | 黄色三级免费观看 | 中文字幕一区二区三区四区 | 国产精品免费观看在线 | 久久免费精品一区二区三区 | www.天天成人国产电影 | 人人干天天射 | 色婷婷电影 | 久久激五月天综合精品 | 国产精品久久久久久久久久 | 国产伦精品一区二区三区无广告 | 伊人电影在线观看 | 天天操天天操天天操天天 | 黄色小网站在线观看 | 少妇性xxx | 六月激情婷婷 | 精品人人人人 | 欧美精品被 | 国产资源在线免费观看 | 欧美另类交人妖 | 久爱精品在线 | 欧美激情精品久久久久久变态 | 欧美极品xxx | 中文字幕欧美三区 | 中文字幕色在线视频 | 国产精品久久久久久久久久99 | 99热免费在线| 久久一区精品 | 香蕉久久国产 | 久久久久久久久久久久久久免费看 | 一级黄色片在线免费观看 | 夜夜夜夜爽 | 亚洲理论影院 | 日韩欧美视频在线观看免费 | 国产一级电影免费观看 | 午夜手机电影 | 久久五月婷婷综合 | 97中文字幕 | 色播99| 国产韩国日本高清视频 | 国产小视频国产精品 | 一区二区三区播放 | 国产亚洲一区二区三区 | 99亚洲国产精品 | 黄色最新网址 | 久久久不卡影院 | 99视频在线免费播放 | 不卡中文字幕av | 麻豆视频在线免费看 | 精品福利在线观看 |