MOAC(墨客)子链正式上线
女娲版平台开启商用新时代
美西时间2018年8月10日,MOAC硅谷开发团队隆重发布MOAC(墨客)子链,标志着墨客女娲版平台现已正式诞生,区块链行业商业项目上链落地就此拉开序幕!
子链指的是在母链的平台上面派生出来的,具有独立功能的区块链。但子链是不能单独存在的,必须通过母链提供基础设施才能运行。它需要用到母链的一些资源,比如实现转账交易,全局的控制合约,所有的用户都可以自由的使用。 子链和侧链是两个不一样的概念,通常讲的是侧链和比特币的处理速度比较,墨客moac需要有一个快速的单独的链来做一些快速的处理,侧链是和主链平行运行的,是比较独立的,本身自己是能够独立运行的。
北京时间8月10日,墨客区块链底层节点更新到,墨客子链(MicroChain)功能正式上线。
用户在下载和安装好SCS软件(或者购买SCS硬件盒子)后,可以注册到子链节点矿池(SCS pool)中参与子链挖矿,并获得挖矿收益。
用户也可以在墨客区块链创建并拥有自己的子链,运行自己的区块链业务。
本文不含任何代码,让每个人都能读懂墨客子链。
简单说,就是提供去中心化、安全且可扩展的区块链底层技术。
当前区块链底层技术对DAPP不够友好,主要表现在:
基于墨客区块链的DAPP可以做到跟传统的DAPP一样,用户从APP store下载了之后就可以立刻免费或者以很低的成本使用APP。而不需要关心底层的区块链是什么样的,也根本不需要关心如何获得和支付gas费。
目前主流区块链的分配方式是通过挖矿。其理想是每个拥有计算机和网络的人都可以参与挖矿,并获得虚拟货币。这样,使得资产的分配过程去中心化,让更多的人可以获得并使用它,而不是控制在初始的少数人手里。但现实是挖矿已经变得非常昂贵,只有支付得起巨额的矿机和昂贵电力费用的人才能在这个分配过程中受益。
墨客区块链通过子链技术,使得更多的人、用更少的成本能够参与进来,从而实现有效的、更加去中心化的二次分配过程。
通过子链技术成百倍地增加TPS,使区块链应用真正能够落地。
2.墨客子链的实现技术
墨客区块链采用分层架构。底层(节点称为VNODE)采用POW的共识协议,解决全局一致性的问题。上层(节点称为SCS)采用分片技术,通过POS、PBFT或者自定义共识协议的方式实现子链功能。同时,子链采用定期刷新的机制将自己状态的hash写入底层区块链,以实现一致性。
通过分层,底层主要处理全局交易和合约,以及对子链的调用,用户的业务逻辑在上层的子链中执行,提高系统TPS至100倍。
墨客区块链是通过分片技术实现子链的。分片是把网络中大量的SCS节点分成较小的、能灵活组合和更容易管理的小组。
墨客区块链分片采用合约驱动的模式。一个合约对应于一个系统分片,也就是一条子链。
采用面向节点的分片,可以使得处理能力与节点数量线性相关。SCS节点越多,分片就可以越多,子链也就可以越多,当然TPS就越高。
墨客区块链子链工作机制灵活高效,其特点包括:
举例来说,用户可以根据自身DAPP的需要,通过参数设置实现:
整个系统的处理速度上去之后,会对VNODE的要求更高。体现在两个方面,一个是网络的带宽,另一个是存储的容量。当然还有每个节点的GPU运算能力。对于普通用户而言,因为有SCS可以参与挖矿,并不一定需要部署一个VNODE,只要有信任的VNODE可以连就可以。这样墨客系统就形成两个层次的挖矿节点:
PROXY VNODE:主网代理节点,用于提高子链节点的稳定性
SCS:子链矿工节点,参与子链业务逻辑
MONITOR SCS: 只用于查询子链业务状态,不参与共识
智能合约: 此处仅解释与子链相关的智能合约:
DAPP用户部署子链时,只需要关注子链控制合约和子链DAPP智能合约。
用户参与到墨客子链的挖矿中来,有两种方式:
4.1 作为SCS矿工参与子链的节点建设
要成为SCS矿工有两种途径:
SCS节点运行时需要自行操作的步骤(以SCS软件节点为例)包括:
SCS矿工的前期工作完成后,如果被选中参与子链的运行,将会在子链刷新之后,在Beneficiary中看到收益。
注意:SCS运行后不可频繁掉线,否则可能会被视为作假,被剔除出子链并扣除押金。
主链节点注册到VNODE矿池,变成PROXY VNODE,通过提供子链调用合约服务和子链历史数据中转服务,获取收益。
5.1 公共矿池合约部署
这两个合约,官方会部署,并提供相应的服务;第三方也可以部署,公开信息后,为dapp方提供服务。
1.部署子链合约:子链控制合约是DAPP用户使用子链的基本合约,其提供子链运行前和运行中的一些必要接口。
通常来说,子链控制合约需要设置:
2.选择SCS:子链控制合约部署成功后,会开放注册,符合条件的SCS都可以来注册,此时可以查看注册情况;
3.创建子链:如果注册的SCS数量达到要求,关闭注册后,创建子链完成并开始出块;如果没有足够的SCS来注册,需要重新开始该进程;
通常来说,子链业务合约需要设置:
6.1 子链的SCS的节点选择通过三个步骤实现:
6.2 通过这样的选择方法,可以实现:
7.1 子链刷新的参数设置
在子链控制合约subchainbase.sol中设置子链刷新参数:
7.2 子链刷新的流程