请选择 进入手机版 | 继续访问电脑版

Hi,Tokens

 找回密码
 立即注册
查看: 655|回复: 0

小虎谈子链

[复制链接]

698

主题

1064

帖子

3925

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3925
发表于 2018-8-6 09:29:42 | 显示全部楼层 |阅读模式
原文链接:https://mp.weixin.qq.com/s/nMNXfVpGUdPZqiX70iqBGw
子链创建过程
前提条件:子链协议合约已经创建

参数  
1、所采用的协议
2、子链的SCS个数[min,max],选择总节点数的千分比
3、子链刷新周期
4、子链逻辑代码Funccode

流程  
1、DAPP部署者在v-node端部署一个全局的子链合约,设置Funccode;
2、DAPP部署者调用RegisterOpen,允许SCS进来注册。同时调用V-node代码,如果检测到相连的scs符合要求,向scs推送一个enroll 的message;
3、SCS节点发起一个对子链合约的RegisterAsSCS的调用,来确认参与这个子链;
4、DAPP部署者调用RegisterClose,关闭注册,V-node在执行时,判断条件是否满足。如果满足,v-node向scs推送一个newSubchain msg。SCS端触发一系列的初始化操作,完成subchain的设置。

如果条件不满足,DAPP部署者重新发起这个过程。



子链刷新过程
原文链接:https://mp.weixin.qq.com/s/r-o4cDRSvb7OnS61rKjxoA
参数
子链刷新的参数在subchainbase.sol中定义。参数列表如下:

1. 刷新周期Round数值:定义子链经过多少区块后刷新。假如子链有100个节点,每个节点依次产生block,定义Round数为5,则每过500block 刷新一次。
2. 当前刷新id索引:指定下次刷新的id在Nodelist中的索引值。
3. 刷新过期数值expiration:指定的id在block [0, 2*expiration]必须完成刷新,否则由下一个id重新发起刷新。
4. 刷新作假惩罚:如果节点在propose,dispute,或者vote阶段作假,将从预先缴纳的bond中扣除相应的惩罚数额(MOAC),并被踢出NodeList。


流程
1. Proposal的格式如下:


2. 刷新周期到的时候,SCS节点调用子链合约的createProposal,发起一个刷新请求交易flushTX;
3. V-node接受到flushTX后,处理相应的逻辑,并将推送消息到相应的scs node,告知有新的proposal;
4. 如果SCS node发现没有问题,它们不需要反应;
5. 如果SCS node发现这个proposal有问题,它可以发起一个新的proposal,并通过TX调用DisbuteProposal,之后触发v-node将推送消息到相应的scs node。一旦SCS节点收到消息,那么所有的SCS必须响应,一个SCS只能对其中的一个进行投票(由智能合约保证);
6. 最初发起proposal和发起disbute的SCS节点设置timer,在指导的时间内,获得投票的结果。如果得票超过50%,那么这个节点就发起一个TX来调用子链合约的Approval function;
7. 合法的proposal被接受,并被记录到区块链中,错误的proposal和所有对错误的proposal进行投票的人将被扣掉相应的保证金。






子链刷新过程与SubchainBase合约的调用


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

本帖被以下淘专辑推荐:

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Hi,Tokens  |网站地图

GMT+8, 2019-11-12 23:29 , Processed in 0.059831 second(s), 7 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表