PIL链质押挖矿系统丨PIL链质押挖矿系统开发(详情及方案)丨 PIL链质押挖矿开发源码模式

简介: TCP传输是以TCP作为底层传输协议的一种传输层实现,默认实现在liquid/host/tcp包内。底层使用golang官方net库实现。

1.TCP(TLS)传输
TCP传输是以TCP作为底层传输协议的一种传输层实现,默认实现在liquid/host/tcp包内。底层使用golang官方net库实现。

TCP传输支持明文、TLS加密、GMTLS(国密算法支持)加密传输三种模式。

由于net库的tcp连接没有流的概念,所以TCP传输的数据流(Stream)目前是基于yamux开源组件实现,按照数据流向可分为接收流、发送流、双向流三种。

  1. SNI扩展

liquid支持SNI扩展。liquid在获得一个节点的网络地址的时候,会自动识别网络地址中dns关键字后面的域名,将其作为TLS握手中的servername,TLS的服务端可以根据servername执行相应的逻辑,比如将网络链接转发到某个特点的节点。

  1. QUIC传输

QUIC传输是以Quic作为底层传输协议的一种传输层实现,默认实现在liquid/host/quic包内。底层使用我们修改过的quic-go开源库实现。我们在quic-go的实现基础上加入了对国密算法GMTLS的支持。

QUIC传输不支持明文传输,要求使用TLS加密传输。我们修改后同时支持国密TLS。

Quic协议本身就有数据流的概念定义,所以QUIC传输的数据流直接使用quic-go的Stream封装实现。

应用协议ID即Protocol.是将Liquid节点间相同应用关联起来的重要依据,只有应用协议ID相同的Liquid应用才能够互相通讯。上层应用在发送消息时,会将该应用的协议ID封装在网络数据包中,接收方会根据接收的数据包中的协议ID来将收到的数据告知拥有相同协议ID的上层应用。

每个上层应用必须拥有全局唯一的应用协议ID,Liquid会拒绝多次的相同应用协议ID注册请求。

由于Liquid内置部分组件也是基于应用协议实现,开发者在定义上层应用协议ID时,应避免与内置组件应用协议冲突。

liquid支持链隔离功能(或者叫链级消息发布)。在不同链上的协议ID一定不同,而且数据隔离。但是同一条链上的不同协议可以共用一个数据通道。这两种方式相结合的好处是:节约网络资源的前提下保证应用层的数据隔离性。

4.内置连接管理器实现
Liquid内置了一种基于优先级的连接管理器——simple.LevelConnManager,实现代码在simple/level_connmgr.go文件中。

LevelConnManager允许针对每个节点添加一定数量的连接,若节点连接数量达到设置上限,则IsAllowed方法返回false。

LevelConnManager将节点连接分为两种优先级:高优先级、低优先级。共识节点、种子节点将被设置为高优先级,其他节点将被设置为低优先级。

优先级与节点ID绑定,高优先级节点数量与低优先级节点数量之和作为总节点连接数量。

当总节点连接数达到设置上线时,若添加新节点连接,则根据设置的淘汰规则淘汰一个节点(关闭该节点所有连接)。

我们提供了三种淘汰策略:Random、FIFO、LIFO。

1)Random策略:

如果新节点优先级为高,优先随机淘汰一个低优先级节点,若没有低优先级节点,则随机淘汰一个高优先级节点。

如果新节点优先级为低,随机淘汰一个低优先级节点,若没有低优先级节点,则淘汰该新节点。

2)FIFO 先进先出策略:

如果新节点优先级为高,优先淘汰一个最早添加的低优先级节点,若没有低优先级节点,则淘汰一个最早添加的高优先级节点。

如果新节点优先级为低,淘汰一个低优先级节点,若没有低优先级节点,则淘汰该新节点。

3) LIFO 后进先出策略:

如果新节点优先级为高,优先淘汰一个最晚添加的低优先级节点,若没有低优先级节点,则淘汰该新节点。

如果新节点优先级为低,淘汰该新节点。

相关文章
|
开发框架 前端开发 JavaScript
合约挖矿/RNB质押挖矿模式系统模块及功能开发搭建
合约挖矿/RNB质押挖矿模式系统模块及功能开发搭建
|
区块链
区块链游戏质押挖矿系统开发规则源码解析
区块链游戏质押挖矿系统开发规则源码解析
质押USDT挖矿理财系统开发源码逻辑解析
质押USDT挖矿理财系统开发源码逻辑解析
代币燃烧挖矿系统运行规则 | 代币燃烧挖矿系统开发源码示例
在代币燃烧挖矿系统中,用户需要将一定数量的代币质押锁定在合约中,然后合约按照一定比例将对应数量的代币作为计算结果输出。这个过程实际上就是在消耗代币,从而实现对矿工的激励。
|
存储 区块链
迪斯克Disrupt DEX流动性质押挖矿系统开发详情介绍/案例开发/源码功能
Digital currency is another important application area of Web3.0 technology.Digital currency is a digital asset issued based on blockchain technology,which can achieve decentralized value exchange and storage.
|
安全 分布式数据库 区块链
Disrupt DEX迪斯克众筹质押挖矿系统开发(稳定版)丨迪斯克Disrupt DEX质押众筹挖矿系统开发(详情逻辑)/源码案例
 区块链技术是一种去中心化的分布式数据库技术,其本质是一种基于密码学原理、点对点网络和共识机制的数据管理方式。区块链可以记录所有参与者的交易,每个交易被记录在一个数据块(Block)中,并且每个数据块都包含了前一个数据块的信息,这样就形成了一个不可篡改的数据链(Chain),也就是所谓的“区块链”。
|
前端开发
LP子母双币质押流动性挖矿系统开发源代码|分红机制定制详情
LP子母双币质押流动性挖矿系统开发源代码|分红机制定制详情
|
存储 前端开发 JavaScript
流动性质押挖矿系统开发技术详情,LP/DAPP流动性质押挖矿系统开发应用方案及分析
What is dApp?   DApps are similar to regular applications,but they run on point-to-point networks(such as blockchains).   However,unlike traditional applications,dApps can run without any human intervention and are not owned by any entity,but distribute tokens to users representing ownership.To co
流动性质押挖矿系统开发技术详情,LP/DAPP流动性质押挖矿系统开发应用方案及分析
|
区块链 内存技术
浅谈DeFi质押流动性挖矿项目系统开发方案(技术详情)分析逻辑
浅谈DeFi质押流动性挖矿项目系统开发方案(技术详情)分析逻辑
133 0
|
区块链
详细分析:多链质押挖矿系统开发合约部署方案详细教程
详细分析:多链质押挖矿系统开发合约部署方案详细教程
详细分析:多链质押挖矿系统开发合约部署方案详细教程