区块链app哪个好:Lisk 协议——点对点通信
点对点通信
点对点通信对Lisk 的网络来说至关重要,这种通信机制促进了网络顺利达成区块和交易共识。
架构
Lisk网络中的节点使用JSON对象来传达区块和交易。Lisk网络中的每个节点上运行的逻辑都使用远程过程调用(RPCs)和活动来传递交易,并阻止JSON对象传达给给其他节点。RPCs和活动也以JSON对象的形式传输,并带有额外的字段来告诉Lisk应用程序使用哪种方法来处理传输的对象。为了有效地将这些JSON对象传输到其他节点,可以通过SocketCluster框架使网页接口。下面概述了Lisk中点对点通信的体系结构。
系统头文件
在Lisk网络中,系统头用来识别全节点,提供系统中运行软件的基本信息。在点对点通信过程中,系统头添加在点对点发送的信息中。
以下的JSON文件由系统数据产生并在通信过程中进行传播。
{
"os":"darwin16.3.0",
"version":"0.6.0a",
"port":7000,
"height":1574654,
"nethash":"da3ed6a45429278bac2666961289ca17ad86595d33b31037615d4b8e8f158bba",
"broadhash":"c7e0902a7016205d456a427edda2b09f4b875f98ef40a224018a0274347146ac",
"minVersion":">=0.5.0"
}
哈希广播共识
Broadhash的功能是预防区块链产生分叉,在DPoS系统中,代表是基于时间戳选举出来行使打包区块的权利,Broadhash共识确保大多数在线节点同意由代表来打包区块。
区块广播
区块广播同样在Lisk 网络中扮演重要角色。区块以分散的形式在全网广播以达成共识,当产生一个新区块时,它将对全网节点进行广播。如果没有区块广播,系统将无法运行,区块链也会停止工作。
广播队列
广播队列是Lisk网络的一个基本功能。交易信息从一个节点传播到另一个节点,节点验证后打包进区块。广播队列从交易池中选择25条交易,把它们集成一个小包,5S后向全网广播。除了广播交易之外,小包还有防止过度传播的作用。小包有2次广播限制,每个小包的在原节点广播一次,在接受节点广播两次。
交易广播
交易必须从一个节点移动到所有其他节点,才能被包含在区块中。交易的广播队列从交易池中提取最多25笔交易,并对这些交易执行验证。然后将这些交易广播到带有JSON对象捆绑包的其他节点上。这可以表示为一组对象组,具体取决于交易类型。然后该捆绑包定期向网络广播,目前每5秒指定一次。时间延迟允许捆绑包从网络积累额外交易(最多25笔)。除了传播对象之外,绑定包还有一个中继限制,以防止向网络发送垃圾信息。在当前实现中,中继限制被设置为3,这意味着网络上的每个捆绑包最多广播3次。
交易池
交易池解决了Lisk的未确认交易的存储问题,在第6部分提到过,每个区块仅仅包含25笔交易,交易池仅仅能容纳5000条交易来排队打包进区块。可以把交易池理解为交易准备池,当交易准备好(也就是打包进区块)后,交易信息从交易池转入区块。
交易池的第二个作用是传播交易。当一个节点准备好打包交易时,它会从交易池选择25笔来打包,并验证这些交易合法性。节点随后会对这些交易进行广播,可以参考第5小节中的交易类型介绍。
为了维持交易池的稳定性,所有的未确认交易有一个有效时间,即10800秒或者产生1080个区块的时间
最后一个功能是存储即将签名的交易。即将签名的交易与未确认交易采用同样的存储模式。多重签名下的交易会在交易池中被隔离为未完成交易,就像是未确认交易,由于有效时间的限制,也会被交易池隔离出来一样。
更多专栏文章:http://www.qukuaiwang.com.cn/zhuanlan
声明:本文由入驻区块网专栏作者撰写,观点仅代表作者本人,绝不代表区块网赞同其观点或证实其描述。