天天看點

【譯】CREDITS: Peer-to-peer (P2P) network and its componentsCREDITS:點對點(P2P)網絡及其元件

CREDITS:點對點(P2P)網絡及其元件

【譯】CREDITS: Peer-to-peer (P2P) network and its componentsCREDITS:點對點(P2P)網絡及其元件

CREDITS區塊鍊平台是直接節點互動,分散式,計算機網絡或所謂的對等網絡。 它通過Internet工作,并使用TCP / IP網絡模型作為網絡内資料和指令傳輸的主要模型。 網絡成員在對等的基礎上互相交流 - 相等。 所有資料都通過使用者資料報協定(UDP)應用程式傳輸到網絡并傳回,存儲概念本身就是一個高性能NoSQL系統,用于以LevelDB鍵值格式存儲資料。

該網絡包括以下服務:

節點(對等)

節點是建立分散網絡的關鍵元件。

節點是安裝在使用者計算機上的用戶端應用程式。 它執行交易的處理和存儲,智能合同條款的執行和确認,處理來自第三方系統的請求,并根據請求提供資料。

此外,運作該系統需要最新版本的Java庫,特别是建立和處理SmartContracts。 要下載下傳它,請點選以下連結: https : //www.java.com/ru/download/

任何網絡節點都具有相同的指定功能,并通過以下五個子產品執行上述功能:

  • CREDITS傳輸/傳輸協定(CSP)
  • 決策子產品
  • 資料存儲
  • 智能合約處理子產品
  • API
  1. CREDITS傳輸/傳輸協定(CSP)的一般概念如下:

TCP / IP網絡模型由UDP(使用者資料報協定)傳輸協定表示。 計算機應用程式可以使用UDP通過IP網絡向其他主機發送消息(在這種情況下稱為資料報),沒有用于選擇特殊資料傳輸協定的強制性初步消息。

2.決策(共識)子產品

從概念上講, CREDITS網絡的共識算法的描述如下:

  • 根據DPoS技術,生成參與特定輪次的節點清單

DPoS建立聲譽評級體系。 換句話說,它建立了一組有權驗證事務,生成事務池,驗證并将池發送到節點的權限的節點,以進一步進行鍊式記錄。

每個新一輪每5毫秒(5×10-3秒)組織一次。 一輪内隻建立一個事務池。 所有使用的網絡節點清單形成。 每個節點都配置設定一個随機數(評分)。 根據這些數字,節點清單按降序排列。 該清單中的第一個節點成為主要網絡節點。清單中的以下節點成為可信節點,其數量根據以下算法計算:如果節點總數等于10,則其中50%成為可信節點(但不小于3)。 

對于100和更高的節點數量,隻有10%變得可信。 這些節點的平均數量在使用的網絡節點總數的10%-50%範圍内變化。 通過生成的節點清單,可以擷取特定池的編号。 參與處理池的節點不參加新一輪。 使用所提到的數字,系統通過上述算法開始新一輪,而不用等待前一個處理的完成。 是以,事務池的異步處理被執行并且一連串池被建立。

  • 在一輪内進行驗證并建立一連串泳池(根據BFT技術)。

拜占庭容錯(BFT)。 該算法允許将軍(驗證者)管理網絡狀态并交換消息,進而提供誠實并對交易和池的有效性做出決定。

在建立之後,任何事務都會轉發到主節點,并從此處轉發到受信任的節點,然後進行驗證。 每個可信節點都連接配接到相鄰節點,以進行聯合交易驗證。 可信節點使用BFT數學模型來确定交易的有效性。 之後,事務被發送回主節點以記錄到池中。 在提及的時間段結束後,或者在積累了一定數量的交易之後,遊泳池關閉。 根據這種池的數量和前一個池的哈希總和生成池的哈希總和。 之後,它被發送到網絡的所有節點,以便在鍊中進一步記錄。 是以,圓形結束。

3)資料存儲

為了存儲資料,該平台使用LevelDB,這是一種由Google開發的具有鍵值資料存儲格式的高性能可複制NoSQL系統。 LevelDB資料存儲是用C ++編寫的,并以應用程式的形式連接配接到共享庫,提供了存儲有序資料集的可能性,其中任意二進制密鑰映射到任意二進制值。

資料存儲算法。 資料作為鍵值對存儲在SS表(Sorted String Tables)中。 這組SS表形成一個LSM樹。 LSM樹(日志結構合并樹)具有多個級别的存儲。第一個(零或MemTable)級别在RAM中,其餘的在磁盤上。 每個級别代表一棵樹或一個樹清單,每個級别都有一個大小限制(通常每級10倍)。

LevelDB中的資料壓縮是使用内部Snappy庫進行的。 在單核CPU Core i7上,64位Snappy元件能夠以250 Mb / s壓縮資料流并以500 Mb / s解壓縮。 對于普通文本,Snappy提供的壓縮級别為1.5-1.7倍,對于HTML檔案 - 2-4倍。

4) 智能合約處理子產品

任何智能合約都是用Java編寫的代碼。

智能合約處理子產品接收來自桌面錢包的合同并将其存儲在其資料存儲器中的特定位址,然後由合同構造者(稱為“初始化過程”)執行。 之後,在決策子產品中,我們會收到執行合同某一部分的信号和輸入資料的值。 換句話說,執行該類中的某個Java方法,并将全局變量資料存儲在資料存儲中的每個合約中。 新的代币建立功能也可用。 它通過提供核心的API與網絡進行互動。

5) 節點的API

與第三方服務溝通CREDITS平台使用Apache Thrift技術。 這是用于确定和建立不同程式設計語言服務的接口描述語言。 它将程式管道與代碼生成引擎結合在一起開發服務,在某種程度上可以高效且輕松地處理C#,C ++,Delphi,Java,Perl,PHP,Python,JavaScript等語言。換句話說,Thrift是一個二進制通信協定。

以下方法用于實作第三方服務與平台核心的連接配接。 它們分為兩類( 擷取 - 請求和結果 - 響應):

  • BalanceGetResult,BalanceGet - 特定錢包的餘額
  • TransactionGetResult,TransactionGet - 特定事務的散列
  • TransactionsGetResult,TransactionsGet - 特定錢包的交易清單
  • TransactionFlowResult,TransactionFlow - 事務
  • PoolListGetResult,PoolListGet -事務池
  • PoolGetResult PoolGet - 池的散列
  • NodesCounteGet,NodesCounteResult - 使用的網絡節點的數量

節點安裝的系統要求:

最低系統要求:

  • 作業系統: Windows®7 /Windows®8 /Windows®10 64位(使用最新的更新軟體包)
  • 處理器(CPU):頻率為1 GHz(或更快),支援PAE,NX和SSE2;
  • 記憶體(RAM):2-4 Gb
  • HDD:1 Gb
  • 網際網路連接配接:3 Mbit / s

推薦的系統要求:

  • 作業系統:Windows®7 /Windows®8 /Windows®10 64位(使用最新的更新軟體包)
  • 處理器(CPU):英特爾®酷睿™i3或AMD Phenom™X3 8650
  • 記憶體(RAM):4-8 Gb
  • SSD:1 Gb
  • 網際網路連接配接:5 Mbit / s。

桌面錢包

CREDITS錢包桌面是錢包的桌面版本。 這個版本的錢包提供了高度的安全性,隐私性和穩定性。 桌面應用程式的功能比Web版本更複雜。

隻有在使用此版本的錢包之前,Wallet Desktop才能與必須參與的網絡節點一起工作。

功能特點

  • 建立交易
  • 交易分析的曆史
  • 平衡分析
  • 建立一個新的令牌(通過智能合約)
  • 建立一個智能合約

網絡錢包

CREDITS錢包是一個用戶端界面,可與P2P網絡進行安全且輕松的互動,易于使用,靈活且易于定制。

CREDITS Web-Wallet允許在不安裝完整節點的情況下快速将貨币從一個使用者轉移到另一個使用者,并且在已經部署的智能合約中執行操作(如果不需要自行編譯)。 與網絡同步是實時自動執行的。 通過API平台連接配接到P2P網絡。

基本功能:

  • 建立交易
  • 已部署的智能合約中的一系列操作
  • 貨币和貴重物品的交換和轉移(根據我們的标準發行的CS和其他代币)
  • 跟蹤目前和以前完成的交易的細節的可能性
  • 檢查天平
  • 檢查交易曆史

所描述的操作會複制通過我們的桌面應用程式可用的選項,不包括編譯和上傳新智能合同的可能性。 通過與上述場景類比來進行交易的啟動和執行。

【譯】CREDITS: Peer-to-peer (P2P) network and its componentsCREDITS:點對點(P2P)網絡及其元件

系統要求:

使用Web用戶端需要更新的Web浏覽器版本。 最低要求:

  • IE 10;
  • Safari 9,iOS 9;
  • Android 5.0,Edge 13(及更高版本)
  • 監控

CREDITS螢幕是應用程式的基于Web的版本,可以分析公共傳輸記錄。 螢幕在Java + Angular JS中實作,并通過API平台連接配接到P2P網絡。 統計資訊每30秒更新一次。

以下資訊顯示在CREDITS螢幕頁面上:

  • 網絡節點總數
  • 交易統計
  • 平衡
  • 某個錢包的交易詳情
  • 關于某個智能合約的一般資訊
  • 已打開的智能合約的詳細資訊

https://medium.com/@credits/credits-peer-to-peer-p2p-network-and-its-components-bf17992c724d