Scry.info技術分享——ScryProtocol簡介

Scry.info技術分享——ScryProtocol簡介

ScryProtocol與Contract相關協議模型基本對應. 相關關係如下圖:

Scry.info技術分享——ScryProtocol簡介

scry protocol

Protocol從ScryProDataFactory中獲取與Contract定義的data類似的一個數據結構對象,使使用ScryInfo對eth進行相關操作,同時使用ScryDB進行相關中間狀態的存儲.

Scry.info技術分享——ScryProtocol簡介

scry protocol

ProtocolBase: Protocol的基礎類,定義了對白皮書中提到的相關模型的操作(圖中並未列出全部),並且引用到了ScryInfo類.其中幾個重要的方法:

vote()

: 數據投票. 這個是數據被協議在eth上create出來之後,需要各方對該數據進行的投票,也就是白皮書中提到的公證環節.

buyAnswer(): 購買答案. 在數據被公證完畢後,就可以對數據進行購買,不會重複購買.

queryAnswer(): 查詢答案. 查詢答案前必須先進行購買.

queryAnswer和buyAnswer共同實現了白皮書中對於查詢的相關操作.

SupplyProtocol: 主動數據供應協議的具體相關操作,它負責實現ProtocolBase定義的主動數據供應()方法. 在實現上它分為了手動和自動. 手動表示用戶得在相關操作被eth確認(mined)之後,都要自己去進行下一步的操作,這個及其繁瑣,體驗很不良好. 所以我們實現了自動的相關操作,目的是減少用戶不必要的操作,優化體驗. 從圖中可以看到自動相關的操作實際上是通過https訪問的ScryServer來實現的.(ScryServer是一個免費的開源商業項目,是作為ScryInfo系統的補充存在,目的是簡化用戶操作,提升用戶體驗. 後續會推出相關詳細介紹文章)

DelegateSupplyProtocol: 委託數據供應協議相關操作.

ReferendumProtocol: 公投協議相關操作.

ReputableSupplyProtocol:信譽數據供應協議相關操作. 這個協議沒有在白皮書中提到,是後續擴展出來的一個,這個協議的主要不同在於,它沒有投票階段,依靠的是數據供應者的信譽.

ScryProDataFactory: 一個工廠類,外層調用主要用到此類的Create方法,返回的是ScryProDataBase類型的對象. 它負責返回某個ScryProDataBase的子類對象.

ScryProDataBase: 協議用到的數據結構基礎類.

ScryProBoolData: 協議用到的Bool類型的數據結構,是ScryProDataBase的一個子類實現. (還有其它一些子類的實現,沒有在圖中列出)

通過上述內容,我們就大致瞭解到了Protocol的基本結構和功能.


分享到:


相關文章: