美文网首页井英俱乐部阿Q茶馆
学习使我快乐番外篇九:关于子链(4)

学习使我快乐番外篇九:关于子链(4)

作者: 7451762bf1b8 | 来源:发表于2018-09-03 21:37 被阅读5次

    今天本小白学习小虎总的系列文章——子链实现三部曲,具体为子链创建过程子链刷新过程选择子链节点。本小白不懂技术,只能看个大概了。


    子链创建过程

    子链创建的前提条件是已经创建子链的协议合约,子链创建必须设置以下参数:

    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部署者重新发起这个过程。

    值得注意的是,在这篇文章的描述中,子链的英文是subchain,而在最近的专访以及文章中,子链对应的英文是microchain。文中用图示给出了子链的创建过程。


    子链刷新过程

    子链的刷新,即子链的flush过程,即子链通过定期与母链进行数据/哈希值的同步,使子链得到母链的最终确认,达到最终共识的过程。子链刷新的参数在subchainbase.sol中定义,包括刷新周期、刷新id索引、刷新过期数值等。

    子链进行刷新的具体过程如下:

    1. 刷新周期到的时候,SCS节点调用子链合约的createProposal,发起一个刷新请求交易flushTX;

    2. V-node接受到flushTX后,处理相应的逻辑,并将推送消息到相应的scs node,告知有新的proposal;

    3. 如果SCS node发现没有问题,它们不需要反应;

    4. 如果SCS node发现这个proposal有问题,它可以发起一个新的proposal,并通过TX调用DisbuteProposal,之后触发v-node将推送消息到相应的scs node。一旦SCS节点收到消息,那么所有的SCS必须响应,一个SCS只能对其中的一个进行投票(由智能合约保证);

    5. 最初发起proposal和发起disbute的SCS节点设置timer,在指导的时间内,获得投票的结果。如果得票超过50%,那么这个节点就发起一个TX来调用子链合约的Approval function;

    6. 合法的proposal被接受,并被记录到区块链中,错误的proposal和所有对错误的proposal进行投票的人将被扣掉相应的保证金。

    值得注意的是,子链向母链的刷新过程,只是将哈希值传输到母链并进行确认,子链自身的数据仍保存在SCS节点上。


    选择子链节点

    子链节点的选择通过三个步骤实现:

    1. 子链设定一个需要选择的SCS节点数范围[min,max]。然后调用子链协议合约的getSelectionTarget(),根据当前的注册的SCS总数,得到一个selection target。

    2. V-node比较子链地址和与自己相连的SCS地址的距离,如果小于selection target,则通知SCS。

    3. SCS得到register的通知,必须主动调用子链的RegisterAsSCS来确定自己参与到该子链。

    通过以上的选择过程,可以实现:

    1. 选择的过程是随机的

    2. SCS的选择根据当前的SCS节点总数自动调整

    3. SCS的显示确认保证SCS的liveness

    这样的选择方式,保证了子链节点的稳定性和安全性,子链节点的IP和端口是保密的,极大提升了攻击难度,增加了子链运行的可靠性。


    以上就是本小白今天的学习内容,技术文章看的还是晕晕乎乎的,希望以后可以看懂哈。

    相关文章

      网友评论

      • 7451762bf1b8:关于子链,墨客官方前几天发布了“珍妮小姐姐教你部署墨客子链”系列视频,有兴趣的朋友可以去看看哈。

      本文标题:学习使我快乐番外篇九:关于子链(4)

      本文链接:https://www.haomeiwen.com/subject/vkiiwftx.html