免费视频久久久久_999色综合_天天色成人网_亚洲综合自拍网_绯色av一区二区三区免费看_成人xxxx

實(shí)時滾動新聞

EOS部署、智能合約應(yīng)用開發(fā)和代幣映射

2018-05-28 10:59:00    輕松萬里行        點(diǎn)擊:

  距離EOS主網(wǎng)上線還有不到一周,現(xiàn)在持有EOS的人請注意:如果不在交易所的,一定要去注冊下。近日,區(qū)塊鏈領(lǐng)域?qū)<夜壤蠋熥隽岁P(guān)于EOS部署、智能合約應(yīng)用開發(fā)和代幣映射內(nèi)容的技術(shù)分享,引起了眾多同行的關(guān)注。

\

  目前最大的EOS應(yīng)用是區(qū)塊鏈百科(https://everipedia.org/),已獲得7500萬美元的融資,它對標(biāo)的是維基百科。這個應(yīng)用的大概規(guī)則是:比如當(dāng)你要編輯一個詞條時,你需要抵押自己的Token,然后每天會產(chǎn)生限量token激勵,社區(qū)里的事情都要進(jìn)行投票,進(jìn)行自治,大于75%的投票,才可以修改詞條。這是因?yàn)樗膬?nèi)容是存放在IPFS里。當(dāng)然,還有很多EOS應(yīng)用,我只挑了一個典型的。

  EOS如何部署私有環(huán)境?

  https://github.com/EOSIO/eos/wiki

  編譯命令:https://github.com/EOSIO/eos/wiki/Local-Environment#2-building-eosio

\

  EOS網(wǎng)絡(luò)是由無數(shù)個nodes組成的,提供單獨(dú)keosd 錢包節(jié)點(diǎn),可以單獨(dú)下。相對而言,以太坊節(jié)點(diǎn)會自動同步數(shù)據(jù),會很慢。

  啟動EOS節(jié)點(diǎn)命令:./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin

\

  使用cleos創(chuàng)建錢包及賬號(https://github.com/EOSIO/eos/wiki/Programs-&-Tools#cleos),這里要注意EOS錢包和以太坊錢包的區(qū)別:EOS主要管理私鑰,不是一個離線賬號,是建立在EOS節(jié)點(diǎn)上注冊后的賬號。

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ wallet unlock

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ wallet list

  管理2組賬號,第一組賬號是eosio,其他所有eos賬號都是在第一個eosio上派生出來的。

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ create key

  我們先來創(chuàng)建私鑰:

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ wallet import 私鑰

  現(xiàn)在就多了一組賬號。

  然后開始創(chuàng)建EOS上的賬戶。

  以太坊的賬號是一個40字符的字符串,很難被記住。EOS權(quán)限分組,owner是最高權(quán)限,active 可以管理賬號的資產(chǎn)。

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ create account eosio 唯一名字(可以搶注) OwnerKey ActiveKey

  這樣你的唯一名字就注冊到EOS網(wǎng)絡(luò)上了,別人可以直接給你這個名字的賬號里打錢或者各種操作,以上操作意味著創(chuàng)建賬戶和管理私鑰的內(nèi)容就完成了。

  接下來就是創(chuàng)建合約,先來講2個案例:

  第一個案例:飛行寶

\

  飛行寶的具體邏輯是:用戶要坐飛機(jī),在飛行前,用戶買了哪一期的哪一個航班,EOS提供了一個多索引的數(shù)據(jù)表結(jié)構(gòu)叫multi_Index,

  uint64_t term_Id; 每一天開一期

  account_name 就是我們剛剛在eos上注冊的唯一用戶名,代表購買者賬號

  uint64_t content; 可以留言

  account_name get_poster() const { return account }

  fmulti_index多索引,類似一個mysql一個表名,第一個字段是表名,后面是列,就是定義了一個數(shù)據(jù)表。

  總共有4個操作:第一個操作是購買某一天的航班,購買就是一個添加數(shù)據(jù)的過程;第二操作是獲取購買的情況;第三個操作是查詢你的所有購買記錄,返回一個數(shù)組;第四個操作是修改操作。

  我們來實(shí)際操作下:

  eosiocpp -o flybaby.wast flybaby.cpp

  生成一個 webassembly 文件,這是ABI文件(現(xiàn)在EOS網(wǎng)絡(luò)還有一些bug,要手動改下某幾處ABI文件才可以運(yùn)行)。

  現(xiàn)在開始部署合約

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ set contract 唯一名字 flybaby

\

  和以太坊有區(qū)別的是EOS可以修改智能合約。

  接下來是調(diào)用方法

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ push action 唯一名字 create '[1, 1, "唯一名字", 3000, "備注"]' -p 唯一名字

  說明調(diào)用成功

  cleos -u http://47.98.56.32:8888/ --wallet-url http://47.98.56.32:9999/ get table 唯一名字 唯一名字 fdata

  返回一個JSON數(shù)據(jù),用一個新賬號再來買一個。返回2個飛行寶購買記錄,說明成功。get 方法是獲取某一天的航班,list方法返回我所有的飛行寶購買記錄。

  合約源碼:

  flybaby.cpp

  #include

  #include

  using namespace eosio;

  using std::string;

  class flybaby : public eosio::contract {

  public:

  //self 代表合約擁有者賬號.

  flybaby( account_name self ):contract(self){}

  /// @abi table

  struct record {

  uint64_t term_id; //飛行寶期數(shù)+航班ID作為主鍵

  account_name customer; //購買者賬號

  uint64_t amount; //購買數(shù)量

  string content; //留言

  //客戶在當(dāng)期僅能買一次某航班,但可以買多個不同航班.

  uint64_t primary_key()const { return term_id; }

  //根據(jù)客戶篩選出他購買的航班列表.

  account_name get_poster() const { return customer; }

  EOSLIB_SERIALIZE(record, (term_id)(customer)(amount)(content))

  };

  typedef eosio::multi_index

  indexed_by

  const_mem_fun> > records;

  using contract::contract;

  /// @abi action

  void create(uint64_t term,uint64_t id,account_name user,uint64_t amount, string content) {

  require_auth( user ); //驗(yàn)證權(quán)限,只能用自己的賬號給你自己買.

  records datable( _self, _self); //定義數(shù)據(jù)庫對象,數(shù)據(jù)庫屬于合約創(chuàng)建者,并且都存在一個表中.

  //簡化僅表達(dá)意思,沒做校驗(yàn),注意運(yùn)算符優(yōu)先級.

  uint64_t term_id = (term << 32) + id;

  datable.emplace(user, [&]( record & d){

  eosio::print("ok this is lamda");

  //d.term_id = datable.available_primary_key();

  d.term_id = term_id;

  d.customer = user;

  d.amount = amount;

  d.content = content;

  eosio::print("update");

  });//數(shù)據(jù)庫內(nèi)容創(chuàng)建

  }

  void get(uint64_t term,uint64_t id,account_name user) {

  require_auth(user);

  records datable(_self, _self);

  uint64_t term_id = (term << 32) + id;

  auto info = datable.find(term_id);

  eosio::print("Term_id: ", info->term_id,

  " Customer: ", name{info->customer},

  " Amount: ", info->amount,

  " Content: ", info->content.c_str());

  }

  void list(account_name user) {

  require_auth(user);

  records datable(_self, _self);

  auto poster_index = datable.template get_index();

  auto pos = poster_index.find( user );

  for (; pos != poster_index.end(); pos++)

  {

  eosio::print("Term_id: ", pos->term_id,

  " Customer: ", name{pos->customer},

  " Amount: ", pos->amount,

  " Content: ", pos->content.c_str());

  eosio::print("||");

  }

  }

  void change(account_name user, uint64_t term, uint64_t id, string content)

  {

  require_auth(user);

  records datable( _self, _self);

  uint64_t term_id = (term << 32) + id;

  auto info = datable.find(term_id);

  eosio_assert(info->customer == user, "not your account");

  //此處payer不是user

  datable.modify(info, _self, [&](auto& p){

  if (content != "")

  p.content = content;

  });

  }

  void dele(account_name user, uint64_t term, uint64_t id)

  {

  require_auth(user);

  records datable( _self, _self);

  uint64_t term_id = (term << 32) + id;

  auto info = datable.find(term_id);

  eosio::print(info->content.c_str());

  eosio_assert(info->customer == user, "not your account");

  datable.erase(info);

  }

  };

  EOSIO_ABI(flybaby, (create)(get)(list)(change)(dele))

  接下來講解 Token 的合約

  EOS上沒有ERC20的協(xié)議,來看下邏輯:

\

  currency_stats代表一個資產(chǎn)的結(jié)構(gòu)體,有資產(chǎn)的代號、名稱;

  max_supply 最大發(fā)行量;

  issuer 是代幣的發(fā)行者;

\

  填寫好Token的名字、代號、發(fā)行量,做好準(zhǔn)備工作。

  require_auth(st.issuer) 只有發(fā)行者可以修改當(dāng)前的發(fā)行量;

  token::issue 方法就是發(fā)布出去;

  token::transfer 就是轉(zhuǎn)賬功能;

  就是對余額進(jìn)行增加、減少的處理。

  合約源碼:

  token.cpp

  /**

  * @file

  * @copyright defined in eos/LICENSE.txt

  */

  #include "mydogcon.hpp"

  namespace eosio {

  void token::create( account_name issuer,

  asset maximum_supply )

  {

  require_auth( _self );

  auto sym = maximum_supply.symbol;

  eosio_assert( sym.is_valid(), "invalid symbol name" );

  eosio_assert( maximum_supply.is_valid(), "invalid supply");

  eosio_assert( maximum_supply.amount > 0, "max-supply must be positive");

  stats statstable( _self, sym.name() );

  auto existing = statstable.find( sym.name() );

  eosio_assert( existing == statstable.end(), "token with symbol already exists" );

  statstable.emplace( _self, [&]( auto& s ) {

  s.supply.symbol = maximum_supply.symbol;

  s.max_supply = maximum_supply;

  s.issuer = issuer;

  });

  }

  void token::issue( account_name to, asset quantity, string memo )

  {

  auto sym = quantity.symbol;

  eosio_assert( sym.is_valid(), "invalid symbol name" );

  auto sym_name = sym.name();

  stats statstable( _self, sym_name );

  auto existing = statstable.find( sym_name );

  eosio_assert( existing != statstable.end(), "token with symbol does not exist, create token before issue" );

  const auto& st = *existing;

  require_auth( st.issuer );

  eosio_assert( quantity.is_valid(), "invalid quantity" );

  eosio_assert( quantity.amount > 0, "must issue positive quantity" );

  eosio_assert( quantity.symbol == st.supply.symbol, "symbol precision mismatch" );

  eosio_assert( quantity.amount <= st.max_supply.amount - st.supply.amount, "quantity exceeds available supply");

  statstable.modify( st, 0, [&]( auto& s ) {

  s.supply += quantity;

  });

  add_balance( st.issuer, quantity, st, st.issuer );

  if( to != st.issuer ) {

  SEND_INLINE_ACTION( *this, transfer, {st.issuer,N(active)}, {st.issuer, to, quantity, memo} );

  }

  }

  void token::transfer( account_name from,

  account_name to,

  asset quantity,

  string /*memo*/ )

  {

  eosio_assert( from != to, "cannot transfer to self" );

  require_auth( from );

  eosio_assert( is_account( to ), "to account does not exist");

  auto sym = quantity.symbol.name();

  stats statstable( _self, sym );

  const auto& st = statstable.get( sym );

  require_recipient( from );

  require_recipient( to );

  eosio_assert( quantity.is_valid(), "invalid quantity" );

  eosio_assert( quantity.amount > 0, "must transfer positive quantity" );

  eosio_assert( quantity.symbol == st.supply.symbol, "symbol precision mismatch" );

  sub_balance( from, quantity, st );

  add_balance( to, quantity, st, from );

  }

  void token::sub_balance( account_name owner, asset value, const currency_stats& st ) {

  accounts from_acnts( _self, owner );

  const auto& from = from_acnts.get( value.symbol.name() );

  eosio_assert( from.balance.amount >= value.amount, "overdrawn balance" );

  if( from.balance.amount == value.amount ) {

  from_acnts.erase( from );

  } else {

  from_acnts.modify( from, owner, [&]( auto& a ) {

  a.balance -= value;

  });

  }

  }

  void token::add_balance( account_name owner, asset value, const currency_stats& st, account_name ram_payer )

  {

  accounts to_acnts( _self, owner );

  auto to = to_acnts.find( value.symbol.name() );

  if( to == to_acnts.end() ) {

  to_acnts.emplace( ram_payer, [&]( auto& a ){

  a.balance = value;

  });

  } else {

  to_acnts.modify( to, 0, [&]( auto& a ) {

  a.balance += value;

  });

  }

  }

  } /// namespace eosio

  EOSIO_ABI( eosio::token, (create)(issue)(transfer) )

  token.hpp

  /**

  * @file

  * @copyright defined in eos/LICENSE.txt

  */

  #pragma once

  #include

  #include

  #include

  namespace eosiosystem {

  class system_contract;

  }

  namespace eosio {

  using std::string;

  class token : public contract {

  public:

  token( account_name self ):contract(self){}

  void create( account_name issuer,

  asset maximum_supply);

  void issue( account_name to, asset quantity, string memo );

  void transfer( account_name from,

  account_name to,

  asset quantity,

  string memo );

  private:

  friend eosiosystem::system_contract;

  inline asset get_supply( symbol_name sym )const;

  inline asset get_balance( account_name owner, symbol_name sym )const;

  private:

  struct account {

  asset balance;

  uint64_t primary_key()const { return balance.symbol.name(); }

  };

  struct currency_stats {

  asset supply;

  asset max_supply;

  account_name issuer;

  uint64_t primary_key()const { return supply.symbol.name(); }

  };

  typedef eosio::multi_index accounts;

  typedef eosio::multi_index stats;

  void sub_balance( account_name owner, asset value, const currency_stats& st );

  void add_balance( account_name owner, asset value, const currency_stats& st,

  account_name ram_payer );

  public:

  struct transfer_args {

  account_name from;

  account_name to;

  asset quantity;

  string memo;

  };

  };

  asset token::get_supply( symbol_name sym )const

  {

  stats statstable( _self, sym );

  const auto& st = statstable.get( sym );

  return st.supply;

  }

  asset token::get_balance( account_name owner, symbol_name sym )const

  {

  accounts accountstable( _self, owner );

  const auto& ac = accountstable.get( sym );

  return ac.balance;

  }

  } /// namespace eosio

  提問環(huán)節(jié)

  1:講講你的EOS信仰

  谷老師:我一般對EOS失去信心的時候,我就會去reddit看下EOS上朋友們的留言,上面的消息是很及時,而且上面的朋友特別友好,給你不割肉的動力。比如:big news is coming soon……winter is coming……Image you are one of them……The Dawn is coming……

  每當(dāng)我難受的時候,我就來這里,我的信仰就是來自這里。

  2:主鏈上線時間有沒有風(fēng)險?

  谷老師:現(xiàn)在EOS 1.0 上線已經(jīng)完成 94%,EOS還是可以的,有一定風(fēng)險會延遲。現(xiàn)在講一下EOS百萬TPS的梗:它一共21個超級節(jié)點(diǎn),有點(diǎn)類似我們在用負(fù)載均衡,比如10臺機(jī)器,輪訓(xùn)來分發(fā)流量,如果當(dāng)前有1萬交易,會分到某個節(jié)點(diǎn)上,由于單臺服務(wù)器節(jié)點(diǎn)很高,能一次性處理。

  另外我推薦ONO這個區(qū)塊鏈應(yīng)用,未來隨著區(qū)塊鏈的升級換代,提升基礎(chǔ)設(shè)施,也許我們后端開發(fā)就不像現(xiàn)在這樣去買一臺云服務(wù)器,而未來所有的后端就是一個區(qū)塊鏈,所有應(yīng)用都會直接構(gòu)建到區(qū)塊鏈上,像聊天、打車就直接構(gòu)建在像這樣的EOS區(qū)塊鏈上,打車的結(jié)算公開在區(qū)塊鏈上,就不存在殺熟的問題。甚至公司的形式也會發(fā)生變化,而是由使用者來決定。未來區(qū)塊鏈就不只是炒幣的功能。

  3:如果一個用戶開發(fā)了一個很好的應(yīng)用,大戶如果抄襲,大戶會不會搶走EOS運(yùn)行的資源?

  谷老師:根據(jù)你抵押的EOS份額來租用算力。這是一個商業(yè)邏輯,如果你的應(yīng)用很火,就會有資本投你,算力不太可能被壟斷。

  谷老師在最后還講到,伴隨夏季的來臨,航班延誤或取消都進(jìn)入了高發(fā)期。而航空延誤險則是很多常旅客的必備,而全球區(qū)塊鏈互助社區(qū)HMS,其基于區(qū)塊鏈技術(shù)和底層的風(fēng)險保障邏輯,設(shè)計出的全自動的智能型全球航空飛行延誤互助保障合約——“飛行寶”現(xiàn)在已完成首例賠付。

  一直以來,區(qū)塊鏈技術(shù)和基于區(qū)塊鏈的項(xiàng)目,因?yàn)榕c現(xiàn)實(shí)世界脫節(jié)而蒙上了神秘的面紗。與此同時,底層技術(shù)不夠成熟、缺乏智能合約公鏈平臺,影響了區(qū)塊鏈技術(shù)的發(fā)展以及應(yīng)用化的過程。HMS一直在探索區(qū)塊鏈技術(shù)和互助業(yè)務(wù)相結(jié)合的創(chuàng)新,為更多的現(xiàn)實(shí)場景提供服務(wù),對促進(jìn)區(qū)塊鏈?zhǔn)澜缗c現(xiàn)實(shí)世界的進(jìn)一步聯(lián)動有深刻意義,他非常看好這一應(yīng)用。

相關(guān)新聞:

下一篇:最后一頁
中國質(zhì)量萬里行 | 關(guān)于我們 | 聯(lián)系我們 | 服務(wù)聲明 | 人才招聘
Copyright © 2002 - 2018 中國質(zhì)量萬里行
京公網(wǎng)安備11010502034432號     京ICP備13012862號
主站蜘蛛池模板: 久久久久久666_日日操日日碰_69视频网站_在线观看国产色视频网站_成人羞羞涩涩衣服_区一区二免费视频_国产精品亚洲片在线播放_和大佬在一起的三百六十五天免费观看 | 米奇狠狠鲁_一级空姐毛片_999精品国产人妻无码系列_91福利在线视频_JULIA无码人妻中文字幕在线_国产精品久久福利网站_极品少妇被猛的白浆直喷白浆_91麻豆精品国产自产 | 德国妓女精品性HD_狼人精品一区二区三区在线_性猛交xxxx乱大交中国_国产一级片中文字幕_四虎永久在线精品免费播放_日日婷婷夜日日天干A片_91成熟丰满女人少妇777_好好热av | 精品国产一区二区三区2021_啊轻点灬大ji巴太粗太长了网站_91免费黄色软件_99精品久久99久久久久胖女人_亚洲成a∧人片在线播放无码_岳肥肉紧嫩嫩伦69_久久久久青草线蕉亚洲_国产无夜激无码av毛片 | 久久亚洲精品国产精品婷婷_国产在线精品91_av色天天_国产午夜亚洲精品理论片大丰影院_欧美日韩精品视频一区二区在_亚洲免费成人在线_99在线免费播放_中文字幕AV熟女 | 无码人妻黑人中文字幕_日韩欧美中文视频_国产精品无码无片在线播放_亚洲精品GV天堂无码男同_久久ri资源网_亚洲天堂男人影院_国产成人欧美视频在线观看_一本大道久久a久久精二佰 | 伊人九九九有限公司_柠檬导航精品导航_67194熟妇在线观看线路1_av女优天堂在线观看_在线视频一二三_色妺妺在线视频_亚洲婷婷在线视频_国产精品熟 | 艹逼视频免费看_国产一区网址_一区二区三区不卡av_操操操.com_2021亚洲国产精品无码_中国黄色大片_久久91精品国产_在线播放av网站 | 91精彩视频_青草在线视频_69精品_女人18毛片水最多_噜啊噜在线成人A片观看_97色碰碰公开视频_色女人综合_成人在线视频一区 | 国产av无码专区亚洲av软件_一级色网站_成人区一区二区_欧美日本一区二区三区在线观看_亚洲大片av_国产精品视频六区_麻豆传媒免费观看_少妇爱做高清免费视频 | 国产成人精品无码A区在线观看_日本黄色免费在线_妺妺窝人体色WWW在线_91一区视频_天堂一区一卡二卡视频_老师洗澡让我吃她胸视频_国产精产国品一二AAA片_国产综合?V一区二区三区无码 | 国产潢片AAAAAAAAA免费_天天干天天操天天操_日韩在线播放一区二区_国产日韩大片_很黄很黄的曰批视频_成人精品国产亚洲_国产麻豆一区二区三区精品_1—42集免费观看 | 欧美人与性动交G欧美精器_日本高清久久_国产精品片www48888_欧美精品色婷婷五月综合_亚洲国产精品久久久久爰色欲_手机黄色在线观看_欧美自拍网站_国产乱码精品一区二三 | 美女一级特黄大片_亚洲中文字幕无码AV正片_亚洲性区_国产黄色大片在线免费观看_日本国产欧美_草草影院国产_香港三级韩国三级日本三级国产_亚洲AV成人无码人在线观看堂 | 999免费观看视频_亚洲av无码专区亚洲av_老外一级黄色片_久久人妻少妇嫩草AV无码专区_日日夜夜视频_夜夜操女人_99啦porny丨首页入口_日本黄色性片 | 四虎永久在线精品国产馆v视影院_永久免费观看美女裸体视频的网站_女教师の爆乳bd在线观看_亚洲加勒比无码一区二区_性欧美牲交xxxxx视频欧美_五月色婷婷在线影院_国产人伦视频_粉嫩av一区二区三区在线 成人一在线视频日韩国产_超碰在线公开97_久久亚洲精品国产一区_国产精品久久不能_午夜亚洲精品专区高潮日w_kaori肉感在线播放_www.四虎影视.com_欧美日韩久 | 亚洲国产精品成人综合色在线_中文字幕国语版毛片免费_精品视频第一页_国内高清久久久久久_亚洲精品国产suv_成人毛片视频免费_欧美成人综合视频_一区二区三区在线 | 亚洲在线高清_亚洲精品成人在线_黄色一级免费观看_天天澡天天揉揉av在线_欧美国产一区二区在线_国内精品久久久久影院网站_国产成人精品无缓存在线播放_91啦91丨porny丨论坛 | 日韩1页_欧美极品25p_黄视频在线观看网站_青青青草视频_久久综合九色综合网站_国产精品欧美一区乱破_成人在线97_国产交换配乱婬视频偷 | 精品国产一区在线观看_欧美日韩网址_亚洲天堂首页_精品免费一区二区_亚洲欧美日本精品_97影院手机版_夜夜爱夜夜做夜夜爽_黄色网页在线播放 | 中文字幕久久熟女人妻av免费_h漫在线观看_www.天天干.com_99热最新网址_国产AV无码专区亚洲AV麻豆_99成人精品视频_成熟女人色惰片免费视频_久久亚洲综合色一区二区三区 | 久久免费影院_国产精品69久久_国产欧美久久久精品二区仙踪林_日韩91_a级黄毛片_国产成人综合在线观看不卡_久久无码人妻丰满熟妇区毛片_任你操在线 | 亚洲精品A片久久久久_三级网站午夜三级_男女性爽大片在线观看_日本高清视频一区二区三区_亚洲精品色综合av网站_www.av日韩_免费视频啪视频在线观看老司机a_午夜性做爰免费看 | 福利免费在线_中文字幕无码日韩专区免费_亚洲成人一区二区三区四区_久久99精品久久久97夜夜嗨_内射高潮享受视频在线观看_中文字幕av无码专区第一页_一区二区三区在线观看免费视频_新疆老熟女厉害 | 久久亚洲精品国产精品婷婷_国产在线精品91_av色天天_国产午夜亚洲精品理论片大丰影院_欧美日韩精品视频一区二区在_亚洲免费成人在线_99在线免费播放_中文字幕AV熟女 | 亚洲欲色欲色xxxxx在线观看_亚洲国产视频精品_国产精品亚洲视频_久久精品男女_国产国产成年年人免_亚洲精品无码久久久久久_影视免费观看_一边吃奶一边摸做爽视频 | 亚洲av制服丝袜日韩高清_亚洲国产综合专区在线播放_一二三四在线观看视频韩国_最近免费观看在线中文2019_亚洲综合色久_日韩网站在线播放_亚洲成av人片在线观看高清_大地资源网高清视频免费观看 | 国产精品久久久久久久福利竹菊_久久激情小视频_国产伦精品一区二区三区视频黑人_久久精品无码午夜福利理论片_久色成人在线_色婷婷久久综合中文久久_成人欧美一区二区三区黑人免费_国产高潮a片羞羞视频涩涩 | 狠狠色噜噜狠狠狠狠888奇米_日本翁妇免费视频_欧美乱码伦视频免费_久久久噜噜噜久久久精品_97中文字幕第20页_亚洲最色网_国产精品一级片_野外一级片 | 久操视频免费在线观看_亚洲免费自拍_视频在线播放国产_小草毛片_av黄色一级_国产精品天码无卡在线观看_乱色熟女综合一区二区三区_美女一级毛片免费观看 | 无码人妻黑人中文字幕_日韩欧美中文视频_国产精品无码无片在线播放_亚洲精品GV天堂无码男同_久久ri资源网_亚洲天堂男人影院_国产成人欧美视频在线观看_一本大道久久a久久精二佰 | 琪琪宅男午夜视频_国产一区二区好的精华液_在线久草_www.色94色.com_亚洲精品入口a级_天天操天天撸_性videos熟女意大利_国产高清一区二区在线观看 | 九九久久综合网站_视频一区二区综合_www.19樱桃视频_91看片在线_日韩一区二区三区在线观看_色综合天天综合网国产成人综合天_国产精品久久久久久久娇妻_91操碰 | 4虎av_久久免费国产精品_亚洲成本人无码薄码区_精品台湾swag在线播放_伊人yinren22综合开心_欧美日韩在线观看一区二区三区_亚洲AV之男人的天堂网站_yellow日本高清在线 | JAPAN日本人妻熟老太_欧美成人精品第一区二区三区_国产不卡在线_日日日操_国产精品久久a_日本成人在线网_爆乳护士一区二区三区在线播放_色综合视频一区中文字幕 | 一般男女モニタリングav_大地影院高清mv在线观看_在线国产一区二区_久久无码中文字幕东京热_国产精品视频一区二区三区四蜜臂_新呦u视频一区二区_中文字幕一二三_中文字幕一级毛片无码视频 | 最近最新MV在线观看免费高清_午夜免费剧场_神马老子影院午夜观看网站_国产1区2区3区中文字幕_国产五十路毛片_色综合人人_日韩一区久久_亚洲欧洲美洲在线观看 | 亚洲在线网址_亚洲中文字幕伊人久久无码_中文字幕一区二区三区在线观看_亚洲综合AV永久无码精品一区二区_欧洲一二三四五区_日韩a无码av一区二区三区_国产一级毛片不卡_国产欧美日韩一区二区图片 | 免费观看呢日本天堂视频_999久久国精品免费观看网站_少妇高潮a片无套内谢麻豆传_欧美在线一二_亚洲视频一级片_亚洲中文字幕无码超碰_各种高潮videos抽搐合集免费_麻豆出品必是精品 | 国产成人精品无码A区在线观看_日本黄色免费在线_妺妺窝人体色WWW在线_91一区视频_天堂一区一卡二卡视频_老师洗澡让我吃她胸视频_国产精产国品一二AAA片_国产综合?V一区二区三区无码 | 久久99精品久久久久久秒播放器_福利社区一区二区_国产精品一区二区av交换_成年人免费视频_欧美日韩亚洲在线_jj男色网_热re99久久精品国产99热_国产欧美另类久久久精品 |