天天看点

【译】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