MetaForce佛萨奇2.0系统开发(升级版)丨MetaForce佛萨奇2.0系统开发详细(dapp智能合约开发源码)

简介: 网络应用层:是指使用Liquid来实现网络通讯的上层应用集合,Liquid是使用应用协议(protocol.ID)来区分标识上层应用的,每个应用模块都应该有一个全局唯一的应用协议。应用协议描述详见4.1。消息发布及订阅模块(PubSub)是Liquid内置的一个应用。

 1.Liquid整体架构
Liquid架构在功能层面由上至下总共划分为三个层级,分别是:网络应用层、网络管理层、安全传输层。

功能架构图如下:

网络应用层:是指使用Liquid来实现网络通讯的上层应用集合,Liquid是使用应用协议(protocol.ID)来区分标识上层应用的,每个应用模块都应该有一个全局唯一的应用协议。应用协议描述详见4.1。消息发布及订阅模块(PubSub)是Liquid内置的一个应用。

网络管理层:负责Liquid网络节点间连接状态管理,由多个管理组件组成,它们包括但不限于:应用协议管理(包含应用协议交换机)、节点信息管理(PeerStore)、连接管理(ConnMgr)、数据流管理(SendStreamPool/SendStreamMgr/ReceiveStreamMgr)、组播组件、连接状态维护组件(ConnSupervisor)、节点发现(Discovery)、节点路由(PeerRouting)、节点中继、NAT穿透等。其中应用协议交换、节点发现也是基于应用协议支持实现的,它们属于管理层内置的应用模块。

安全传输层:负责底层网络协议支持及传输加密,目前已实现TCP/TLS、QUIC两种协议支持,未来会有更多(比如WebSocket、SCTP等)协议支持。

2.Liquid核心包
Liquid网络核心包里包含了框架核心接口定义、通用类型定义及概念抽象定义。

核心包内每个子包说明如下:

core/basic 基础接口包,包含Starter、Stopper以及两者组合封装接口Switcher。

core/blacklist 黑名单接口定义。

core/broadcast PubSub消息发布/订阅功能接口定义。

core/discovery 节点发现相关接口定义,包含Announcer、Discoverer以及两者组合封装接口Discovery。

core/groupmulticast 组播组件接口定义。

core/handler 用于回调的处理器函数类型定义。

core/host 网络Host接口定义、网络活动事件通知接口定义。

core/mgr 管理组件接口定义,包含连接管理(ConnMgr)、连接状态维护(ConnSupervisor)、应用协议管理器(ProtocolManager)、应用协议交换机(ProtocolExchanger)、发送流池(SendStreamPool)、发送流池管理(SendStreamPoolManager)、接收流管理(ReceiveStreamManager)等接口定义。

core/network 传输层网络状态机相关接口定义,包含发送流(SendStream)、接收流(ReceiveStream)、双向流(Stream)、连接(Conn)、状态(Stat)、拨号器(Dialer)、监听器(Listener)、网络状态机(network)等以及相关的其他的接口或类型定义。

core/peer 节点相关概念接口定义,主要包括节点ID(peer.ID)类型定义。

core/protocol 协议相关定义,主要包括应用协议(protocol.ID)类型定义及网络数据包结构体定义。

core/reuse 端口复用相关。

core/routing 节点路由相关接口定义。

core/store 节点信息存储相关概念接口定义,主要包括节点地址簿(AddrBook)、节点协议簿(ProtocolBook)以及两者组合封装接口(PeerStore)定义。

core/types 通用类型或结构体,包括先进先出缓存(FIFOCache)、固定大小超时控制缓存(FixedCapDurationCache)、连续数字记录集(IntervalSet)、通用集(Set)等。

core/util 通用工具集合。

3. Liquid实现代码结构
在Liquid开发时,我们尽可能的保证了它的通用性。Liquid虽然是为了chainmaker而生,但我们并不限于它只能被chainmaker集成使用。我们也尽可能将不需要使用者关心的组件及配置进行了隐藏(非导出处理),为了能让开发者更容易读懂我们的代码结构,所以Liquid实现代码并没有严格按照2.1中描述的框架设计。以下内容都是描述Liquid内部默认实现,开发者可以根据核心包定义接口自行编写实现来替换Liquid内置默认实现。

BasicHost(在net/liquid/host/host.go中)是Liquid内置默认Host实现,也是网络初始化的总入口。

相关文章
DAPP合约系统开发逻辑技术丨DAPP成熟系统开发技术方案
动态调用允许调用者在运行时指定被调用合约及方法,无需预先知道接口。中断配置通常包括:启用外设中断、设置中断优先级分组和使能中断请求。NVIC_InitTypeDef结构体用于中断配置,包含中断源、抢占优先级、响应优先级和使能状态。中断源定义在IRQn_Type枚举中,如WWDG_IRQn、PVD_IRQn等。抢占优先级值依赖于优先级分组设定。
|
8月前
|
安全 区块链
DAPP模式系统开发设计方案丨DAPP合约系统开发技术方案
DAPP模式系统开发设计方案丨DAPP合约系统开发技术方案
|
存储 算法 区块链
DAPP合约公排系统开发案例|DAPP互助系统开发
去中心化就是指网络中各个节点的地位相等,传输内容和交易数据不再需要通过某个中心节点进行
|
前端开发 安全 JavaScript
区块链智能合约dapp系统开发实现技术原理及详细/案例介绍/源码程序
  一般来说,区块链可按许可权限分为公有区块链、联盟区块链和私有区块链,其中,公有链面向全球所有用户,任何人都可以在其中读取数据和发送交易;联盟链由若干业务相关的机构共同参与管理,每个机构都运行着一个或多个节点,读写权限仅对联盟内的节点有限度地开放。
|
区块链 存储
DAPP智能合约系统开发详细技术及方案项目
区块的作用就是将不同时间阶段内的交易数据按照一定的格式和数量,打包成结构化数据,方便存储和管理。
|
JavaScript 前端开发 Go
区块链Dapp智能合约系统开发(开发功能)丨dapp/defi代币合约项目系统开发成熟案例版及源码部署
The following are important technical points in the development process of smart contract DApp:
|
存储 人工智能 安全
Opsea NFT智能合约平台系统开发方案介绍/功能详解/源码说明/项目案例
  DAPP是去中心化应用程序(Decentralized Application),它是建立在区块练技术之上的应用程序,具有去中心化、开放性、透明性、安全性等特点,DAPP可以实现各种功能,例如数字货币钱包、去中心化交易所、去中心化社交网络等。O
|
存储 区块链 数据安全/隐私保护
USDToch(优多趣)智能合约系统开发实现技术方案/源码功能
那智能合约到底是什么呢?In short,a smart contract is a contract that uses Computer language instead of Legal writing to record terms and is automatically executed by a program.简换句话说,智能合约就是传统合约的数字化版本,跑在区块链网络上,由程序自动执行。
DAPP钱包交易所系统开发技术详细/方案项目/案例详细/源码功能
Blockchain technology is generally used to build transaction systems, and it is necessary to ensure that the transaction information is authentic, traceable, and tamper proof. The information of each transaction is confirmed and stored in a block,。
|
前端开发 测试技术 区块链
什么是SolaRoad索拉迪智能合约系统开发丨索拉迪SolaRoad系统开发(开发案例)及源码项目
部署智能合约,使用平台提供的工具将编写好的智能合约发布到区块链上;