999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

融合IPFS與以太坊的爬蟲智能合約研究

2020-05-28 09:36:21陳杰張再躍張曉如
軟件導刊 2020年3期

陳杰 張再躍 張曉如

摘 要:目前的爬蟲框架及分布式系統集群成熟,但是代價高,硬件設備昂貴,技術較復雜。結合區塊鏈技術設計一種爬蟲方案,部署簡單且省去服務器資金投入。該方案融合IPFS技術,使用智能合約募集公網上閑散的硬件資源代替傳統服務器,節約成本,使用簡單,可為IPFS融合區塊鏈技術的應用提供參考。

關鍵詞:爬蟲;區塊鏈;智能合約;IPFS

DOI:10. 11907/rjdk. 191590

中圖分類號:TP391 ? 文獻標識碼:A??????????????? 文章編號:1672-7800(2020)003-0200-04

Crawler on Smart Contract Based on IPFS and Ethereum

CHEN Jie, ZHANG Zai-yue, ZHANG Xiao-ru

(School of Computer Science, Jiangsu University of Science and Technology, Zhenjiang 212003,China)

Abstract:The current crawler has a mature framework and cluster distributed system, but the cost is high, the price of hardware equipment is expensive, the technology is more complex. A crawler solution incorporating blockchain technology is designed that makes it easy for users to deploy and saves money on servers. The scheme integrates IPFS technology and uses smart contract to collect idle hardware resources on the public network. This research scheme replaces traditional servers with public network resources, saves expensive investment on server hardware,saves the cost and is simple to use, and provides a reference for the use of IPFS fusion blockchain technology in other directions and fields.

Key Words: crawler; blockchain; contacts; IPFS

0 引言

在人工智能與大數據相互交叉時代,不論是工程領域還是研究領域,數據都是極其重要的戰略資源,高效的數據采集是關鍵。現在的分布式爬蟲在海量數據爬取上非常高效,但是分布式爬蟲硬件需要投入大量資金,所以結合新技術構建信息采集系統是研究熱點。

分布式爬蟲大多基于Scrapy-Redis、Nutch等框架開發,而現在已有部分AI公司創新地結合云技術開發云爬蟲,通過開放API提供服務。Diffbot是美國一家指令機器學習和計算機視覺算法以及公共API開放的初創公司,該公司通過計算機視覺、機器學習和人工智能處理Web頁面,計劃實現整個網頁的“機器可讀”。但Diffbot收費較高,包月要5 000美元、擁有500萬次調用,超出另付。一條數據需要多次API調用,在海量數據面前這種收費標準難以承受。

本文將區塊鏈分布式公共信用賬本引入爬蟲[1],通過在區塊鏈上部署智能合約驅動爬蟲[2]。該研究方案充分利用公網資源,可以更低成本和更高效率傳遞信息與價值[3-4],發揮比云端服務器更強性能[5],免去云爬蟲的高昂使用費,節省傳統分布式爬蟲昂貴的硬件服務器費用。

1 區塊鏈底層核心算法與數據結構

1.1 密碼學哈希函數

哈希函數是整個區塊鏈的單元組成結構,整個區塊鏈都是哈希函數的增加、改變、嵌套、迭代等[6]。雖然哈希函數是組成細胞,但其也要根據實際情況進行變種處理[7]。

一般哈希函數的特性有:①哈希函數的輸入不限制大小;②哈希函數的輸出是固定大小;③哈希函數在合理的時間內能有效處理。

但是,作為區塊鏈項目的哈希函數還需要一些附加特性。

(1)碰撞阻力。無法找到兩個值x和y,x≠y,而且H(x)≠H(y),則稱哈希函數H具有碰撞阻力(見圖1)。我國密碼學專家給出了包括MD5、RIPEMD等哈希函數的碰撞[8]。

(2)隱秘性。假設哈希函數的輸入為y=H(x),但是無法推導y→x,這是不可逆的。

(3)謎題友好性。假設任意n位輸出值為y,而k是一個非常隨機的數,這種函數不可能再比2n小。

1.2 區塊鏈數據結構與哈希挖礦

區塊鏈在數據結構上就是用一個個哈希指針構造出的哈希區塊組成一個公共鏈表,每個區塊的整體哈希值可以指向唯一的下一個區塊(見圖2),每個區塊都有自己的梅克爾二叉樹[9],每個事務都有自己的哈希值。然后每兩個結對再次計算哈希值,以此類推最后計算出來一個哈希值,也就是根哈希。Nance為優質的隨機數[10]。

哈希挖礦就是對整個區塊做哈希值,讓它小于某個值,這需要大量的時間算力[11],用式(1)表示為:

1.3 區塊鏈數字、簽名和雙鑰

數字簽名由3個算法組成[12-13]:

式(2)中,generateKeys是秘鑰產生方法,把keysize作為輸入產生一對公鑰pk和私鑰sk。sk必須秘密保存,所有人都可用pk驗證簽名。

式(3)是簽名方法。輸入是兩個參數,一個是私鑰,還有一個是一段信息,對外輸出是數字簽名。

式(4)是驗證公式,通過keysize作為輸入產生一個公鑰pk和私鑰sk,通過sk和一段信息產生數字簽名sig,最后通過pk、message、sig作為驗證函數的參數來驗證數字簽名。

在區塊鏈中,常用的數字簽名方案是橢圓曲線數字簽名算法,其利用橢圓曲線密碼對數字簽名算法進行模擬[14-16]。這種算法除以上幾個特點外,還具有安全性高、生成公私鑰較方便、處理速度較快和存儲空間小等優點。

公鑰和私鑰是密碼學中非對稱加密名詞,通常情況下用公鑰加密,再用私鑰解密,其是一種公開的密鑰算法。私鑰可以決定公鑰,公鑰可以決定地址。

1.4 共識算法

區塊鏈本質上是一種分布式系統,但是它是去中心化的,所以一致性問題是關鍵核心問題,但是和傳統的分布式系統不同,它是異步的,每個節點同步時間不一樣。其具有容錯性,有些節點可能關閉或者沒有同步或反饋[17]。

FLP定理不允許傳統計算機系統解決錯誤進程和網絡分區問題[18],科學家結合社會學及博弈論引入了激勵機制和隨機性。

激勵機制。通過設置恰當的機制,讓每個節點都能通過遵守規則實現利益最大化,讓其自發成為公正的節點。

隨機性。POW共識協議就是算力共識,依靠算力解決哈希函數無限求解,優先計算出來的可以擁有打包權利從而獲得網絡的代幣獎勵。POS是權益證明共識,主要看參與者持有幣的數量和時間,數量越大的人用越大的概率去打包區塊從而獲得獎勵,有事實上的中心化趨勢,“貧富”差距也會更大。

1.5 區塊鏈整體模型架構

整個區塊鏈系統由自下而上的數據層、網絡層、共識層、激勵層、合約層和應用層組成(見圖3)。

2 IPFS

2.1 IPFS核心理念

IPFS是Inter Planetary File System的簡稱,對標Http而言是一種點對點的分布式文件系統。傳統的Http是基于中心化的服務器,具有天然瓶頸。服務器空間是珍貴的資源,這注定站點的數據不能長期儲存,而且服務器文件定位不夠平緩,都是多級目錄形式。相對而言,IPFS沒有這些局限性,它將文件的碎片分布在整個公網上,IPFS不使用多級目錄儲存,而是結合了密碼學加密技術,可以基于內容對其進行尋址[19]。

IPFS基本原理就是對整個內容進行哈希運算,然后反饋哈希值,這個哈希值就是對應儲存的內容,可以通過哈希值尋找內容。

2.2 爬蟲代碼儲存

為了充分延展爬蟲程序的能力,將其部署在公鏈上。爬蟲的代碼儲存在IPFS上,其它節點參與這個項目。可以從IPFS上下載相應的爬蟲代碼,然后由其它節點運行代碼。同時,爬蟲所采集的數據也儲存在IPFS上。

上傳整個代碼目錄的IPFS偽代碼:

localhost:1121 chan$ ipfs add -r myscrapy/

add 哈希值1 myscrapy/project/__init__.py

add 哈希值2 myscrapy/project/items.py

……

add 哈希值n-1 myscrapy/scrapy.cfg

add 哈希值n myscrapy

哈希值來源于對后面文件的整體哈希運算。

下載上傳IPFS文件的偽代碼:

Ipfs cat 哈希值n

Ipfs daemon

3 以太坊與智能合約

3.1 以太坊

如果比特幣代表區塊鏈1.0,那么以太坊就是區塊鏈2.0的代表。由于比特幣不太靈活,部分基于比特幣的項目對比特幣系統作了一些改變,添加了一些新功能,然后獨立運行在不同的節點上,這就意味著每一個項目都要重復、獨立地建立一個類似的比特幣系統。以太坊塑造了一種能被重編程用于任意復雜計算功能的單一區塊鏈。

以太坊與比特幣有許多不同,從性能表現和特性上看主要有以下區別:首先,以太坊有更快的“出塊”速度及更先進的獎勵機制。比特幣的出塊時間平均是10min,以太坊的出塊間隔為12s,這表示以太坊有更大的吞吐量和更小的交易確認間隔;其次,以太坊支持智能合約,用戶可以定義數字資產和流通邏輯,通過以太坊虛擬機幾乎可執行任何計算。相比之下,比特幣只支持轉賬,這說明以太坊可作為更加通用的區塊鏈平臺,支持各種去中心化應用。

3.2 智能合約概念

以太幣作為一種雄心勃勃的虛擬幣,致力于提供一種滿足圖靈計算要求的可編程語言[20],用這種語言可以編寫腳本和合約[21]。在該體系中,智能合約是應用層程序,被以太坊的虛擬機執行。在這個體系中,智能合約起到任務發布和激勵的作用,空閑的計算機可以發揮作用,降低大規模數據采集成本,減少大量硬件需求。

智能合約行為由合約代碼控制,合約賬戶存儲則保存合約狀態。合約代碼運行在以太坊虛擬機上。合約的代碼編寫需要使用一些高級語言,例如語法與JavaScript相似的Solidity語言、與Python相似的Serpent語言、與Lisp相似的LLL語言等。

3.3 爬蟲合約與系統結構

爬蟲合約是爬蟲系統的紐帶,起著核心作用。為對整個系統產生激勵作用,在Scrapy-redis框架基礎上引入區塊鏈技術[22],整個系統結構相對簡潔明了,如圖4所示。

圖4中MasterSpider是本機節點,a是確定采集的目標,然后反饋給主節點并同時通過b將爬蟲代碼傳給IPFS。爬取的隊列在緩存內,SlaveSpiders爭取隊列的數據采集,c是MasterSpider和所有SlaveSpiders共同維護的一個Redis,d代表所有的SlaverSpider從IPFS獲取相應的爬蟲代碼,e是爬蟲從隊列中拿到任務并且去爬取并把爬取信息傳送回Redis,f是把爬取的信息上傳到IPFS,g是以太坊捕捉IPFS的觸發信息,h是智能合約將激勵發送給SlaveSpider。

3.4 信息爬取與激勵

IPFS是非常重要的核心樞紐,信息爬取結果最后匯總在IPFS上,以太坊智能合約對參與者的獎勵通過IPFS上的信息進行(見圖5)。

首先,信息爬取要求Master端和Slave端都安裝好基于Python的爬蟲基礎框架Scrapy以及Redis數據庫。Master端和Slave端需要共同維護存儲在Master端的Redis,Slaver端連接遠程Redis的命令是:redis-cli -h ip -p port。爬取過程中,Master端的Redis是有數據的,Slave端的Redis是沒有數據的,共同維護一個Redis。Redis會給Slave任務,Slaver會獲得任務并且完成相關爬取任務,并把結果傳給Redis,最后上傳到IPFS。數據結構應該包括數據的哈希值和參與者錢包地址。主機可以從IPFS上解析到所要的數據。

其次,激勵具體指智能合約通過Oraclize從IPFS上取出數據,并從數據中解析出錢包地址,向其發送相應代幣,這樣參與者就可以得到相應激勵,以此不斷循環。參與者一方面將數據傳輸給IPFS,另一方面通過IPFS得到相應激勵。

最后,通過這種業務邏輯募集公網上的閑散資源,一方面減少資源浪費,另一方面避免傳統分布式系統昂貴的硬件投入。

4 結語

本文依托區塊鏈技術,分析了爬蟲智能合約的封裝問題。爬蟲合約充分利用區塊鏈的去中心思想建立公共信任賬本,對公網閑散資源進行眾籌,這種公共信用體系將在金融等領域發揮重要作用。

參考文獻:

[1]袁勇,王飛躍. 區塊鏈技術發展現狀與展望[J]. 自動化學報,2016,42(4):459-481.

[2]SWAN M. Blockchain: blueprint for a new economy[M]. Sebastopol:OReilly Media Inc,2015:9-26.

[3]袁勇,周濤,周傲英,等. 區塊鏈技術:從數據智能到知識自動化[J]. 自動化學報,2017,43(9):1485-1490.

[4]常漢杰,付賽紅,石志明. 淺談區塊鏈對于文件存儲系統的變革[J]. 計算機時代, 2019(3):101-104.

[5]李世勇,苑凱博,汪棪,等. 企業應用云遷移與部署:現狀、挑戰與展望[J]. 管理現代化,2019(2):75-78.

[6]王化群,吳濤. 區塊鏈中的密碼學技術[J]. 南京郵電大學學報:自然科學版,2017(6):61-67.

[7]李佩麗,徐海霞,馬添軍,等. 可更改區塊鏈技術研究[J]. 密碼學報,2018(5):501-509.

[8]WANG X Y. Collisions for hash functions md4, md5, haval-128 and ripemd[EB/OL]. http://eprint.iacr.org/2004/199.pdf,2004

[9]蔣勇. 白話區塊鏈[M]. 北京:機械工業出版社,2017:91-93.

[10]楊振海,張國志. 隨機數生成[J]. 數理統計與管理,2006(2):244-252.

[11]唐長兵,楊珍,鄭忠龍,等. PoW共識算法中的博弈困境分析與優化[J]. 自動化學報,2017(9):1520-1531.

[12]ARVIND NARAYANAN,JOSEPH BONNEAU,EDWARD FELTEN,et al. Bitcoin and cryptocurrency technologies[M]. USA:Princeton University Press,2016:43-46.

[13]趙翔. 數字簽名綜述[J]. 計算機工程與設計,2006(2):195-197.

[14]張方國,王常杰,王育民. 基于橢圓曲線的數字簽名與盲簽名[J]. 通信學報,2001(8):22-28.

[15]趙文清,姜波,王德文,等. 數字簽名中哈希函數的分析與研究[J]. 計算機工程與應用,2004(32):155-157.

[16]暴金雨. RSA公鑰密碼體制的原理及應用[J]. 科技傳播,2019(6):137-139.

[17]李劍鋒. 基于拜占庭容錯機制的區塊鏈共識算法研究與應用[D]. 鄭州:鄭州大學,2018.

[18]URBAN P,DEFAGO X,SCHIPER A. Chasing the FLP impossibility result in a LAN or how robust can a fault to lerant server be[C]. 20th IEEE Symposium on Reliable Distributed Systems,2001,28-31.

[19]NIZAMUDDIN N,SALAH K,AJMAL AZAD M,?et al. Decentralized document version control using ethereum blockchain and IPFS[J]. Computers and Electrical Engineering,2019(3):183-197.

[20]任曉明,劉川. 認知、信息與計算的哲學省思考[J]. 科學經濟社會,2018(4):1-8.

[21]邵奇峰,金澈清,張召錢,等. 區塊鏈技術:架構及進展[J]. 計算機學報,2018(5):969-988.

[22]嚴慧,彭緒富,朱小婉,等. 基于Scrapy-Redis分布式數據采集平臺的設計與實現[J]. 湖北師范大學學報:自然科學版,2019(1):19-25.

(責任編輯:杜能鋼)

收稿日期:2019-04-23

作者簡介:陳杰(1988-),男,江蘇科技大學計算機科學與工程學院碩士研究生,研究方向為為軟件工程、信息檢索、智能信息處理;張再躍(1961-),男,江蘇科技大學計算機科學與工程學院教授,研究方向為數理邏輯與應用邏輯、知識表示與推理、智能信息處理;張曉如(1963-),女,江蘇科技大學計算機科學與工程學院教授,研究方向為智能信息處理、計算機教育。本文通訊作者:張曉如。

主站蜘蛛池模板: 伊人久久久久久久| 青青热久麻豆精品视频在线观看| 日本高清在线看免费观看| 久久一本日韩精品中文字幕屁孩| 亚洲色图狠狠干| 试看120秒男女啪啪免费| 日韩毛片在线视频| 久草国产在线观看| 久久99精品久久久久纯品| 欧美激情成人网| 亚洲精品大秀视频| 国产呦精品一区二区三区网站| 午夜丁香婷婷| 亚洲AV无码久久天堂| 国产精品网曝门免费视频| 亚洲天堂2014| 国产成人综合亚洲欧美在| 免费高清自慰一区二区三区| 成人免费网站久久久| 国产女人水多毛片18| 午夜日韩久久影院| 国产黄在线观看| 在线亚洲小视频| 欧美区一区| 欧美19综合中文字幕| 欧美区一区二区三| 四虎精品国产AV二区| 激情亚洲天堂| 久无码久无码av无码| 免费av一区二区三区在线| 亚洲熟妇AV日韩熟妇在线| 亚洲欧美综合在线观看| 美女潮喷出白浆在线观看视频| 97se亚洲综合| 亚洲男人在线天堂| 一本一本大道香蕉久在线播放| 青青热久免费精品视频6| 欧美中文一区| 一本大道视频精品人妻| 国产在线高清一级毛片| 免费看美女自慰的网站| 91精品啪在线观看国产| 欧美国产成人在线| 亚洲国产精品久久久久秋霞影院| 日韩区欧美国产区在线观看| 色一情一乱一伦一区二区三区小说| 中文字幕亚洲乱码熟女1区2区| 日韩123欧美字幕| 亚洲成网站| 在线观看国产小视频| 激情成人综合网| 三上悠亚一区二区| 亚洲国产精品日韩av专区| 亚洲无码日韩一区| 精品一区国产精品| 91麻豆国产视频| 久久6免费视频| 亚洲国产看片基地久久1024| 国产丝袜无码精品| 麻豆国产在线观看一区二区| 国产va在线观看| 国产精品视频999| 欧美综合中文字幕久久| 国产亚卅精品无码| 日韩av高清无码一区二区三区| 亚洲人成亚洲精品| 国产精品久久久久鬼色| 九九热精品在线视频| 国产成人喷潮在线观看| 亚洲系列中文字幕一区二区| 国产精品永久久久久| 在线观看国产网址你懂的| 熟妇人妻无乱码中文字幕真矢织江| 免费人成在线观看成人片| 亚洲国产亚综合在线区| 日韩欧美高清视频| AV在线麻免费观看网站| 一区二区三区高清视频国产女人| 国产小视频a在线观看| 国产欧美另类| 2020国产在线视精品在| 国产精品区视频中文字幕|