Commit d877563a authored by pengjun's avatar pengjun

update

parent a0fcd286
# 联盟链扩展分析
# 联盟链扩展分析
......@@ -16,16 +16,15 @@ Chain33逧ケウ陦碁得譫カ譫夊ソ黄螻穂セァ體セ螟炊謖ョ壼粋郤ヲ逧コ、譏捺擂謠仙合
![balance](resource/balance.jpg)
> 新增和删除链对历史交易不做改动,新增链需要将路由信息同步到其他链,删除链或者链出故障如何处理?
### 3.2 网络拓扑
![topology](resource/topology.jpg)
* 方案一 路由节点
路由节点仅负责路由转发功能,路由性能高,但中心化程度高,一旦路由节点宕机,则对应的链就孤立了。另外客户端只能连接到路由节点
* 方案二 路由+共识节点
由单个或多个共识节点开启路由功能,路由性能相比于路由节点可能要低,但是相对去中心化,路由信息可通过智能合约更新
![topology1](resource/topology1.jpg)
* 方案二 路由+共识节点
在共识节点上集成路由模块,由单个或多个共识节点开启路由功能,路由性能相比于路由节点可能要低,但是相对去中心化,路由信息可通过智能合约更新
![topology2](resource/topology2.jpg)
### 3.3 跨链
* 智能合约单独部署在一条链上时,当其他链收到该合约的交易需要打包到目的链执行
......@@ -35,6 +34,7 @@ Chain33逧ケウ陦碁得譫カ譫夊ソ黄螻穂セァ體セ螟炊謖ョ壼粋郤ヲ逧コ、譏捺擂謠仙合
![cross2](resource/cross2.jpg)
跨链需要配合路由模块或路由节点,获取目的链信息
### 3.4 路由信息更新
* 方案一,直接更新路由节点
......@@ -42,6 +42,7 @@ Chain33逧ケウ陦碁得譫カ譫夊ソ黄螻穂セァ體セ螟炊謖ョ壼粋郤ヲ逧コ、譏捺擂謠仙合
![cross3](resource/cross3.jpg)
> 新增和删除链对历史交易不做改动,新增链需要将路由信息同步到其他链,删除链或者链出故障如何处理?
### 3.5 合约部署
类似2.4路由信息,部署新合约想其他链广播合约信息,其他链执行合约更新本地路由表
......@@ -51,10 +52,17 @@ Chain33逧ケウ陦碁得譫カ譫夊ソ黄螻穂セァ體セ螟炊謖ョ壼粋郤ヲ逧コ、譏捺擂謠仙合
### 4.1 模块
![module](resource/module.jpg)
* 路由模块:包括交易分发和合约路由。当交易到达时,路由模块会根据交易中from address,将其路由到对应的链;另一方面,如果交易对应的合约不在本链,需要跨链将交易或所在区块同步到目的链时,也需要路由模块的信息。
* 路由模块/路由节点
* 多链和合约路由信息维护
* 路由信息更新(路由更新交易的合约执行)
* 路由节点还需要交易分发
* 根据from_address路由到具体链
* 根据合约名路由到具体部署链
* 跨链模块:包括链间通信和跨链确认。该模块将需要跨链的查询请求和区块或者交易同步到对应链。
### 4.2 流程
> 针对方案二的交易路由和合约跨链的流程,方案一只需将mempool换成路由节点
![process](resource/process.jpg)
* mempool通过交易from地址识别时候本链交易,如果是放入本链交易队列,反之放入跨链交易队列,可实现一个mempool的plugin插件,用来将跨链消息单独成队列,跨链模块定时获取。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment