本篇会详细介绍DCore,包括DCore的组成部分、核心构成以及DCore的设计模式。
DCore基本介绍
- 是一个独立的第一類去中心化应用程序(Type I DApp)。
- 核心网络组件是开源的,采用最先进的C ++ 程序编写。
- DCore的组件创建了一个完备的即插即用系统,即允许通过Web端服务进行异步交互:
- 可在Websocket 之上调用JSON / RPC
- 或在HTTP回调接口JSON / RPC
- API文档
- 通过捆绑应用程序或通过第三方应用程序集成提供轻松交互。
- DCore本质上是区块链层,负责区块的生成、数据存储和区块同步。
- DCore 包括DCore守护者进程和星际文件系统(IPFS)。
- 它的强大之处在于DCore守护者进程和IPFS协议之间的连接,即允许开发人员快速设置基于区块链的网络进行数据交易。
- 采用委托权益证明(DPoS)共识机制。
- DPoS 共识出块时间短、效率高,将出块时间减少至5秒以内。
矿工 - 负责创建新的区块,验证即将产生的交易并成为挖矿社区的一部分。要成为矿工,您需要使用特定的设置参数建立守护者进程。
播种机 - 通过提供存储空间来播种内容,并播至整个 DCore网络。您需要使用特定的设置参数建立守护者进程才能成为播种机。
普通节点 - 除了矿工或播种机需要设置特定参数的节点,DCore 网络中所有的全节点主要用于备份。
DCore守护者进程(DCore Daemon)
- 存储网络信息,例如DCT代币和加密内容的**。
- 提供购买和分发内容的安全方式。
星际文件系统(IPFS)
- 负责在播种机和用户之间内容的分发上传或下载。
- 我们扩展了IPFS系统并增加了一种机制,即通过我们的DCore功能直接奖励播种者(节点存储内容并使其能够在创建者和用户之间传输)。
- 应用界面
- DCore是一个生态系统。
- 包括DCore之上构建的任何接口。
- 支持视频流、音频流、数字内容分发、众筹、广告、声誉管理、矿工投票、数据管理等接口调用。
DCore特性
- 具有全方位、稳定的特点,随时可接入使用。
- 允许客户端直接连接处理请求的服务器。
- DCore使用的服务器云组件由不需要全网状的网络组成,且不需要低延迟、高冗余的带宽。
- 代码完全开源,便于审查, 分叉。
- 具有稳定性、公平性,可以防止垃圾邮件,收益盈利仅通过存在于网络中的代币分发。代币系统余额使用和启用进程均在DCore中显示。
- DCore具有独立性,且没有边界限制,DCore网络由世界各地的投票者共同维护。
- 以加密技术为后盾,可提供良好的安全性和匿名性。
- 通过哈希帐户和昵称保证匿名性。
- 大多数通信在节点(访问节点除外)之间完成。
- 交易是由用户与网络的交互产生,其节点维护区块链数据库副本。
- 区块链随着时间的推移而增长,节点在之前的区块之上链接新的区块。其中一些节点履行不同的角色,即验证者的角色。
- 区块链技术本质上是不可篡改的,因此它是一个多次读取,一次提交的过程。一旦有人提交最新的区块数据,就必须有人验证该数据的真实性。
- 验证者是独立的并且由社区驱动,但是当提交新块时,他们必须达成共识。
- DCore设计的核心功能是构建在应用程序服务器节点之上的核心覆盖网络。
- 这样的覆盖网络由志愿者托管的节点组成,并且完全是点对点的。
- 通过代理会话初始化、直接和间接点对点链接、路由和代理完成对此独立网络的访问。
- 由于Internet网络中的IP地址数量(v4)不足,访问节点只能直接连接动态IP和动态DNS,当然这发生在网络地址转换(NAT)之后。访问节点需要与启动器建立直接连接。当在NAT中使用自托管静态地址,反向DNS记录,动态DNS或打开的目标端口时,建议使用其他服务(例如IRC)。
- 如果与对方无法直接建立连接,则接入节点将充当通信中继。
- 由于设计不是全网状,因此接入节点是重新广播流量路由网路的一部分。
- 此覆盖网络实施RFC5128的提议
共识算法
- 是DPoS委托权益证明。
- 是去中心化、高效、最灵活的共识模型。
- 利用利益相关方批准投票的权力,以公平和民主的方式解决共识问题。
- 以确定的方式选择出块节点,允许DCore生成区块的时间减少到5秒。
- 监督矿工进行投票。
- 矿工的选举每天(24小时)都在进行。
- 矿工的主要代表团由投票产生。
- 如果矿工不值得信任,他可以被轻易降级。
- 过于频繁更换变矿工可能会破坏信任。
- DPoS比PoW(工作证明)更环保,所需能源更少。
- 您必须锁定代币来挖矿或处理交易,以确认您的承诺和信誉。
PoW和DPoS的差异
- PoW要求矿工或计算机在开机状态下处理交易。
- PoW可能会导致效率低下,因为性能好的计算机会为了挖矿而聚集,从而导致中心化问题,就像比特币一样。比特币在中国可能被认为是中心化的,因为少部分人拥有超过半数(51%)的算力。
- 与DPoS相比,PoW的计算随机性较高。
- DPoS可以得到社区民主投票的支持。
- DPoS更环保,大大降低了能源消耗。
解释 DPoS
我们假设:
- the_truth = 被认同的数据结构(区块),包含有效的未来交易的状态。
- rand = 8字节随机数。
我们可以推测,the_truth将是认同的未来区块。
DCore延迟
在5秒的出块时间内,DPoS矿工需要以最小的网络延迟操作节点,以便尽可能快地获得最新区块,然后将其结果提交给网络,并有足够的时间传播到下一个区块生产者。引入一个矿池会增加额外的延迟,从而大大减少实际工作时间的百分比。
竞争链
由于绝大多数矿工都是经过选举产生的,是高度负责任的,并且会付出专门的时间来生产区块,因此几乎不存在两个竞争链同时存在的情况。网络延迟偶尔会阻止矿工及时接收先前的区块。如果发生这种情况,下一个矿工将会在他们收到的第一个区块之后继续打包区块。经过14次确认(约30秒)之后,该笔交易已被活跃的三分之二的矿工确认,这也意味着这笔交易没有人工干预就不可能出现逆转。
区块验证
虽然DCore系统对于自然链重组事件具有强大的抵御功能,但仍有一些潜在的软件错误、网络中断、无能或恶意矿工创建多个竞争区块历史记录,这些区块历史多出一到两个区块的时间。然而,系统始终选择具有最高矿工参与率的区块链。
不可能攻击
最小网络延迟的硬性要求是为了抵御恶意攻击(当延迟较低,攻击者冒充健康节点时,可能导致恶意行为)。
区块选择的唯一性
独立运营的矿工每轮只能生产一个区块,参与率始终低于大多数。任何矿工(或少数矿工组织)都无法生成具有更高参与率的区块链。参与率是通过将给定时间段内产生的预期块数与实际产生的块数进行比较来计算的。
转载于:https://my.oschina.net/u/4119696/blog/3054479