国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

IPFS技術(shù)系列之IPFS實(shí)踐應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了IPFS技術(shù)系列之IPFS實(shí)踐應(yīng)用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

本文主要介紹如何使用IPFS及常規(guī)操作


一、IPFS開發(fā)基礎(chǔ)

在這部分主要介紹IPFS的環(huán)境搭建及常用操作。

1.安裝IPFS

1.1 通過安裝包安裝

IPFS有多種語言的實(shí)現(xiàn)方式,主流的是Go語言和JavaScript實(shí)現(xiàn)的版本,本文主要介紹Go語言版本。
首先安裝IPFS之前,需要安裝大于1.7版本的Go語言環(huán)境。
1.在IPFS官網(wǎng)(https://dist.ipfs.io/#go-ipfs)下載go-ipfs的預(yù)編譯版本。
ipfs使用,IPFS,區(qū)塊鏈,分布式
Mac OS X系統(tǒng)用戶請(qǐng)下載darwin Binary amd64。
·Linux系統(tǒng)用戶請(qǐng)下載linux Binary amd64。
·Windows系統(tǒng)用戶請(qǐng)下載windows Binary amd64.

國內(nèi)用戶也可以通過官方開放在GitHub上的源 碼倉庫來獲取最新發(fā)布的安裝包:https://github.com/ipfs/go-ipfs/releases。
以centos為例:
依次執(zhí)行以下操作:

tar xvfz go-ipfs_v0.4.16_darwin-amd64.tar.gz
cd go-ipfs 
./install.sh

執(zhí)行ipfs -help命令,會(huì)出現(xiàn)如下界面,表示安裝完成
ipfs使用,IPFS,區(qū)塊鏈,分布式

1.2 通過ipfs-update安裝

ipfs-update是一個(gè)用來更新IPFS版本的命令行工具
我們可以通過 下面兩種方式獲得該命令:
1)直接從https://dist.ipfs.io/#ipfs-update 下載,解壓安裝包,運(yùn)行 install.sh腳本進(jìn)行安裝。
2)如果Go語言版本高于1.8,也可以直接用以下方式安裝:

>go get -u github.com/ipfs/ipfs-update

通過ipfs-update versions命令,可以列出所有可下載的IPFS版本

>ipfs-update versions
 v0.3.2 
 v0.3.4
 v0.3.5 
 v0.3.6
 v0.3.7 
 v0.3.8 
 v0.3.9 

通過ipfs-update install latest命令更新并下載最新的go-ipfs版本

$ipfs-update install latest 
fetching go-ipfs version v0.4.7-rc1 
binary downloaded, verifying... 
success! 
stashing old binary 
installing new binary to /home/hector/go/bin/ipfs
checking if repo migration is needed... 
Installation complete!

2 IPFS倉庫配置初始化

2.1 初始化

1.使用ipfs init命令來初始化IPFS倉庫。

$ ipfs init 
initializing ipfs node at /Users/daijiale/.go-ipfs
generating 2048-bit RSA keypair...done
peer identity: Qmcpo2iLBikrdf1d6QU6vXuNb6P7hwrbNPW9kLAH8eG67z
to get started, enter:
ipfs  cat/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme

2.通過IPFS查看文件的指令打開IPFS的readme

ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme

配置成功之后會(huì)出現(xiàn)以下界面:
ipfs使用,IPFS,區(qū)塊鏈,分布式

2.2 訪問配置文件

IPFS本地倉庫文件默認(rèn)存儲(chǔ)在~/.ipfs路徑下

>ls ~/.ipfs blocks datastore keystore config datastore_spec version

下面介紹幾個(gè)倉庫歸檔文件的作用:
·blocks:本地倉庫存儲(chǔ)的CID文件塊鏈接目錄。
·keystore:密鑰對(duì)文件存儲(chǔ)目錄。
·datastore:LevelDB數(shù)據(jù)文件目錄。
·datastore_spec:LevelDB數(shù)據(jù)文件緩存目錄。
·config:倉庫配置文件。 ·version:版本信息文件。
配置文件是json格式,我們可以通過ipfs config show或vim config命 令來查看和編輯內(nèi)容。

3.與IPFS文件系統(tǒng)進(jìn)行交互

下面將介紹本地文件與IPFS文件系統(tǒng)交互的幾種常用方式。

1.添加文件到IPFS

//切換到本地桌面目錄下 
$ cd ~/Desktop 
//新建ipfs-test文件目錄 
$ mkdir ipfs-test 
//切換到ipfs-test文件目錄 
$ cd ipfs-test 
//新建文件的同時(shí)寫入一串字符串:"version 1 of my text"
 $ echo "version 1 of my text" > mytextfile.txt 
 //查看mytextfile.txt文件內(nèi)容 
 $ cat mytextfile.txt version 1 of my text 
 //將mytextfile.txt文件添加到IPFS文件系統(tǒng)中 
 $ ipfs add mytextfile.txt 
 added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt

2.我們可以通過ipfs cat CID命令讀取IPFS網(wǎng)絡(luò)中文件內(nèi)容。

//在IPFS網(wǎng)絡(luò)中查看驗(yàn)證剛才上傳的mytextfile.txt文件內(nèi)容 
$ ipfs cat QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy
 version 1 of my text

3.內(nèi)容唯一性驗(yàn)證

我們可以直接將文件內(nèi)容添加到IPFS中來測(cè)試文件hash(CID)是否與文件內(nèi)容本身一一對(duì)應(yīng)。
我們可以通過三種方式進(jìn)行驗(yàn)證。
1)將內(nèi)容添加到IPFS文件系統(tǒng)中

$ echo "version 1 of my text" | ipfs add added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy
QmZtmD2qt6fJot32nabSP3CUjicnypEB

2).將相同內(nèi)容的文本添加到IPFS文件系統(tǒng)中

$ ipfs add mytextfile.txt added 
QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt

3).將mytextfile.txt文本中的內(nèi)容取出加入IPFS文件系統(tǒng)中

$ cat mytextfile.txt | ipfs add added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy
 QmZtmD2qt6fJot32nabSP3CUjicnypEB

通過3種方式對(duì)比校驗(yàn),我們可以看出,只有內(nèi)容保存不變,得到的CID也會(huì)不變。

4.在IPFS中寫入內(nèi)容文件名稱和目錄信息

使用ipfs add -w CID命令再一次向IPFS中添加mytextfile.txt

$ ipfs add -w mytextfile.txt
 added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt 
 added QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w

由此可見,將會(huì)得到兩個(gè)哈希值。第一個(gè)與之前的相同,第二個(gè)代表IPFS
Wrapped ,它包括了與內(nèi)容相關(guān)的目錄和文件名等信息。

5.展示IPFS Wrapped信息

我們可以通過ipfs ls -v 來獲取IPFS Wrapped所包含都全部信息

$ ipfs ls -v QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w 
Hash                                          Size Name
 QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy 29 mytextfile.txt

6.通過父目錄內(nèi)容哈希來獲取文件內(nèi)容

我們可以通過如下父目錄內(nèi)容哈希路徑格式來獲取文件內(nèi)容

$ ipfs cat QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w/mytextfile.txt
 version 1 of my text

4.加入IPFS網(wǎng)絡(luò)環(huán)境

1)通過ipfs daemon命令,我們可以把本機(jī)的IPFS文件系統(tǒng)接入IPFS網(wǎng)絡(luò)

> ipfs daemon
  Initializing daemon...
  API server listening on /ip4/127.0.0.1/tcp/5001
  Gateway server listening on /ip4/127.0.0.1/tcp/8080

2)如果接入成功,可以在
在運(yùn)行ipfs swarm peers時(shí)能夠看到p2p網(wǎng)絡(luò)中對(duì)等 方的IPFS節(jié)點(diǎn)地址信息

> ipfs swarm peers 
/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx 
/ip4/134.121.64.93/tcp/1035/ipfs/QmWHyrPWQnsz1wxHR219ooJDYTvxJPyZuDUPSDpdsAovN5 
/ip4/178.62.8.190/tcp/4002/ipfs/QmdXzZ25cyzSF99csCQmmPZ1NTbWTe8qtKFaZKpZQPdTFB

5.與HTTP Web交互

要與HTTP Web交互,需要先啟動(dòng)守護(hù)進(jìn)程連接網(wǎng)絡(luò)服務(wù)。

ipfs daemon

1.從本地HTTP網(wǎng)關(guān)中獲取IPFS數(shù)據(jù)

我們可以在瀏覽器輸入以下命令

http://localhost:8080/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u

2.從公共HTTP網(wǎng)關(guān)獲取IPFS數(shù)據(jù)

公共網(wǎng)關(guān)是指可用于訪問IPFS網(wǎng)絡(luò)中任何內(nèi)容的公共HTTP網(wǎng)絡(luò)地址,官方提供了ipfs.io的域名網(wǎng)關(guān)地址。

//ipfs.io由官方提供
https://ipfs.io/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u 
//ipfs.infura.io 由CONSENSYS團(tuán)隊(duì)提供 
https://ipfs.infura.io/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u

3.IPFS Web控制臺(tái)

IPFS提供了本地的Web控制臺(tái)服務(wù)。瀏覽器輸入http://localhost:5001/webui,可以直接訪問Web控制臺(tái)。如圖:
ipfs使用,IPFS,區(qū)塊鏈,分布式

6.API使用

IPFS搭建好之后除了命令行操作,還可以 使用API的方式調(diào)用。

1.IPFS命令行用法

IPFS命令行由-config(配置文件路徑)、-debug(Debug模式操 作)、-help(幫助文檔)等多種選項(xiàng)和一系列(子命令)構(gòu) 成,命令格式如下:

ipfs [--config= <config> | -c] [--debug=<debug> | -D] [--help=<help>] [-h=<h>] [--local=<local> | -L

1).選項(xiàng)
IPFS命令行選項(xiàng)如下圖:
ipfs使用,IPFS,區(qū)塊鏈,分布式
2).子命令
操作IPFS的基本命令如下圖:
ipfs使用,IPFS,區(qū)塊鏈,分布式
操作IPFS數(shù)據(jù)結(jié)構(gòu)的命令如下圖:
ipfs使用,IPFS,區(qū)塊鏈,分布式操作IPFS的高級(jí)命令如下圖:
ipfs使用,IPFS,區(qū)塊鏈,分布式
ipfs使用,IPFS,區(qū)塊鏈,分布式
操作IPFS網(wǎng)絡(luò)通信相關(guān)的命令:
ipfs使用,IPFS,區(qū)塊鏈,分布式
控制IPFS相關(guān)輔助工具的命令如下:
ipfs使用,IPFS,區(qū)塊鏈,分布式
IPFS在本地文件系統(tǒng)中有一個(gè)倉庫,其默認(rèn)位置為~/.ipfs,可以通 過設(shè)置環(huán)境變量IPFS_PATH改變倉庫位置

export IPFS_PATH=/path/to/ipfsrepo

【遇到的坑】

在服務(wù)器端執(zhí)行ipfs daemon后,關(guān)閉終端會(huì)相應(yīng)造成守護(hù)進(jìn)程停止,因此我們需要將ipfs服務(wù)
1.基于Linux服務(wù)器創(chuàng)建一個(gè)服務(wù)。

cd /lib/systemd/system/
vim ipfs.service

2.粘貼以下代碼讓IPFS遇到故障后能自動(dòng)重啟服務(wù)

[Unit]
Description=IPFS
[Service]
ExecStart=/usr/local/bin/ipfs daemon
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target

3.保存退出后執(zhí)行命令

systemctl start ipfs

未對(duì)IPFS設(shè)置跨域會(huì)出現(xiàn)以下錯(cuò)誤
1.在控制臺(tái)執(zhí)行以下命令

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT","GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'

2.最后命令行重新啟動(dòng)IPFS即可

systemctl start ipfs

二、IPFS開發(fā)進(jìn)階

總結(jié)

提示:這里對(duì)文章進(jìn)行總結(jié):
例如:以上就是今天要講的內(nèi)容,本文僅僅簡(jiǎn)單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。
文章來源地址http://www.zghlxwxcb.cn/news/detail-743889.html

到了這里,關(guān)于IPFS技術(shù)系列之IPFS實(shí)踐應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【區(qū)塊鏈 | IPFS】IPFS cluster私有網(wǎng)絡(luò)集群搭建

    對(duì)于聯(lián)盟鏈的業(yè)務(wù)中搭建一個(gè)私有網(wǎng)絡(luò)的 IPFS 集群還是很有必要的,私有網(wǎng)絡(luò)集群允許 IPFS 節(jié)點(diǎn)只連接到擁有共享密鑰的其他對(duì)等節(jié)點(diǎn),網(wǎng)絡(luò)中的節(jié)點(diǎn)不響應(yīng)來自網(wǎng)絡(luò)外節(jié)點(diǎn)的通信。 IPFS-Cluster 是一個(gè)獨(dú)立的應(yīng)用程序和一個(gè) CLI 客戶端,它跨一組 IPFS 守護(hù)進(jìn)程分配、復(fù)制和跟蹤

    2024年02月08日
    瀏覽(22)
  • IPFS系列03-搭建 IPFS 私有網(wǎng)絡(luò)

    IPFS系列03-搭建 IPFS 私有網(wǎng)絡(luò)

    本文講述如何使用 IPFS 搭建自己的私有存儲(chǔ)網(wǎng)絡(luò),如果你對(duì) IPFS 還了解的話,建議你先看看下面兩篇文章 IPFS系列01-IPFS 前世今生 IPFS系列02-IPFS 與 web3.0 有兩種安裝方式,一種是 clone 源碼 編譯安裝(前提是你已經(jīng)安裝了 Go 語言的運(yùn)行環(huán)境): 項(xiàng)目源碼依賴較多,編譯需要一

    2024年02月02日
    瀏覽(21)
  • IPFS系列04-IPFS 存儲(chǔ)性能測(cè)試

    IPFS系列04-IPFS 存儲(chǔ)性能測(cè)試

    本文是對(duì) IPFS 存儲(chǔ)性能測(cè)試的一個(gè)報(bào)告。 Note: 本次測(cè)試使用的都是單臺(tái)服務(wù)器,主要測(cè)試 IPFS 讀寫性能,以及哪些因素會(huì)影響 IPFS 的存儲(chǔ)效率。 統(tǒng)計(jì)方式:每組操作執(zhí)行5次,然后取平均值 考慮到硬件對(duì)存儲(chǔ)性能的影響,我們這里分別使用了兩臺(tái)不同配置的臺(tái)式機(jī)進(jìn)行了測(cè)試

    2024年01月23日
    瀏覽(22)
  • 【區(qū)塊鏈 | IPFS】IPFS節(jié)點(diǎn)搭建、文件上傳、節(jié)點(diǎn)存儲(chǔ)空間設(shè)置、節(jié)點(diǎn)上傳文件chunk設(shè)置

    【區(qū)塊鏈 | IPFS】IPFS節(jié)點(diǎn)搭建、文件上傳、節(jié)點(diǎn)存儲(chǔ)空間設(shè)置、節(jié)點(diǎn)上傳文件chunk設(shè)置

    通過 ipfs init 在本地計(jì)算機(jī)建立一個(gè) IPFS 節(jié)點(diǎn) 本文有些命令已經(jīng)執(zhí)行過了,就沒有重新初始化。部分圖片拷貝自先前文檔,具體信息應(yīng)以實(shí)物為準(zhǔn) 執(zhí)行ipfs init初始化節(jié)點(diǎn)之后,會(huì)生成一個(gè).ipfs的文件夾,用于存儲(chǔ)相關(guān)的信息,比如節(jié)點(diǎn)ID、環(huán)境配置信息、數(shù)據(jù)存儲(chǔ)等 如果使用

    2024年02月07日
    瀏覽(28)
  • 基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享搭建步驟

    基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享搭建步驟

    購買專欄前請(qǐng)認(rèn)真閱讀:《基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)》專欄簡(jiǎn)介 視頻演示: https://www.bilibili.com/video/BV1y24y1v7RX 系統(tǒng)簡(jiǎn)介: 本系統(tǒng)使用RSA算法生成密鑰對(duì), RSA私鑰用于用戶身份認(rèn)證;用戶發(fā)送的數(shù)據(jù)將存儲(chǔ)于IPFS, IPFS返回的CID(IPFS Hash)使用用戶的RSA公鑰加密后存儲(chǔ)于

    2024年02月03日
    瀏覽(23)
  • 基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)之區(qū)塊鏈部分設(shè)計(jì)

    本節(jié)對(duì)數(shù)據(jù)共享系統(tǒng)的區(qū)塊鏈部分做一個(gè)簡(jiǎn)單的介紹,包括目錄結(jié)構(gòu)、文件作用、設(shè)計(jì)思路。 購買專欄前請(qǐng)認(rèn)真閱讀:《基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)》專欄簡(jiǎn)介 啟動(dòng)腳本為啟動(dòng)區(qū)塊鏈網(wǎng)絡(luò)以及IPFS容器,之后使用sed命令更換區(qū)塊鏈瀏覽器、tape配置文件中的私鑰。 這里解

    2024年02月15日
    瀏覽(26)
  • 基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)搭建步驟

    基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)搭建步驟

    購買專欄前請(qǐng)認(rèn)真閱讀:《基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)》專欄簡(jiǎn)介 視頻演示: https://www.bilibili.com/video/BV1y24y1v7RX 系統(tǒng)簡(jiǎn)介: 本系統(tǒng)使用RSA算法生成密鑰對(duì), RSA私鑰用于用戶身份認(rèn)證;用戶發(fā)送的數(shù)據(jù)將存儲(chǔ)于IPFS, IPFS返回的CID(IPFS Hash)使用用戶的RSA公鑰加密后存儲(chǔ)于

    2024年02月03日
    瀏覽(26)
  • 《基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)》專欄簡(jiǎn)介

    本專欄包含了“基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)”的全部源碼與從0開始的搭建視頻(訂閱專欄后請(qǐng)站內(nèi)私信)、搭建教程與系統(tǒng)設(shè)計(jì)分析。對(duì)專欄內(nèi)文章有疑問可以評(píng)論,一般一天內(nèi)回復(fù),然后會(huì)整理到:數(shù)據(jù)共享系統(tǒng)專欄問題匯總 演示視頻:Bilibili 需要注意: 不含任何形

    2024年02月12日
    瀏覽(44)
  • 基于區(qū)塊鏈與IPFS的視頻版權(quán)存證系統(tǒng)搭建步驟

    購買專欄前請(qǐng)認(rèn)真閱讀:《基于區(qū)塊鏈與IPFS的視頻版權(quán)存證系統(tǒng)》專欄簡(jiǎn)介 系統(tǒng)簡(jiǎn)介: 本系統(tǒng)使用RSA算法生成密鑰對(duì), RSA私鑰用于用戶身份認(rèn)證,這里的用戶包括普通用戶(創(chuàng)作者)與機(jī)構(gòu);用戶登記版權(quán)的視頻將存儲(chǔ)于IPFS, IPFS返回的CID(IPFS Hash)以及詳細(xì)的版權(quán)信息存

    2024年02月04日
    瀏覽(20)
  • 基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)設(shè)計(jì)與搭建(附區(qū)塊鏈部分源碼與搭建視頻)

    基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)設(shè)計(jì)與搭建(附區(qū)塊鏈部分源碼與搭建視頻)

    購買專欄前請(qǐng)認(rèn)真閱讀:《基于區(qū)塊鏈與IPFS的數(shù)據(jù)共享系統(tǒng)》專欄簡(jiǎn)介 視頻演示: https://www.bilibili.com/video/BV1y24y1v7RX 系統(tǒng)簡(jiǎn)介: 本系統(tǒng)使用RSA算法生成密鑰對(duì), RSA私鑰用于用戶身份認(rèn)證;用戶發(fā)送的數(shù)據(jù)將存儲(chǔ)于IPFS, IPFS返回的CID(IPFS Hash)使用用戶的RSA公鑰加密后存儲(chǔ)于

    2023年04月19日
    瀏覽(50)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包