名词解释
基础链 (baseChain, motherchain)
也称为母链,是使用工作量证明(POW)共识的一条公链,可以支持多条应用链。有多个Vnode节点组成。每个母链需要有一个chainId,需要在启动VNODE时作为输入参数,以便VNODE接入相应的母链。MOAC的主网chainId为99,测试网为101。
Vnode
MOAC母链节点软件,用于构建母链(又称基础链)和连接应用链,可以进行POW挖矿,账本同步,交易以及应用链数据传输的节点。在启动VNODE时,需要指定接入区块链的编号chainId,默认值为主网99。
应用链 (appChain,subchain, microchain)
也称为子链,是构建在MOAC基础链之上,用于独立运行一个或者多个智能合约的区块链。每个应用链有自己独立的应用链地址。
SCS
MOAC应用链节点软件,用于应用链挖矿,应用链账本同步以及应用链业务逻辑执行的节点,也称为应用链矿工。目前MOAC有两种SCS,分别对应两种类型的应用链:ProcWind和FileStorm。
应用链矿工池 (SCS pool)
存储应用链矿工的池子,本质上是一个智能合约。SCS节点需要注册才能加入应用链的验证。当应用链产生之后,会注册到一个SCS pool里面,并随机抽取符合条件的SCS加入应用链进行验证。
母链节点代理池(Vnode pool)
存储vnode代理节点的池子,本质上池子是一个智能合约,应用链节点注册后,需要vnode节点。
应用链控制合约
用于控制整个应用链的流程,文件名一般为DappBase.sol
监听节点(Monitor)
监听节点是一个特殊的SCS节点,可以用来监听某条应用链的运行情况,当一个节点成为监听节点后,其只负责同步该应用链的区块信息,不参与应用链出块。Dapp用户可以通过该节点监控应用链运行情况
刷新(flush)
应用链的一个特殊操作,每条正常运行的应用链每隔一段时间需要向母链进行状态刷新,并且同时完成:Scs矿工的收益发放;有币应用链和母链之间的货币充提等操作。flush周期可在部署应用链控制合约时设置,当应用链交易数不活跃时,flush周期将变大,直到有交易时收敛到设置值;刷新的发起者为应用链中随机选择的一个SCS验证节点。
应用链部署者的地址(Owner account)
部署应用链时需要消耗母链的原生moac,提供这些moac的帐号即成为应用链部署者。目前ProcWind SCS 节点有两种合约部署方式,默认只有应用链部署者可以在应用链上发布合约,也可以调整为所有的帐号都可以发布合约。
应用链合约余额 (AppChain Balance)
应用链帐号的moac余额,由三个部分组成,应用链节点押金,应用链原生货币兑换押金,应用链可用运行押金。其中,SCS节点押金为SCS加入时缴纳,当SCS的网络行为发生异常时,应用链会扣取此SCS的部分押金,为0时,应用链会移除SCS节点;应用链原生货币兑换押金仅在应用链为ASM或者AST的情况下使用;
应用链节点押金(BondLimit)
当SCS在SCS pool中,被应用链选中时,需要缴纳押金才能为应用链进行验证。这部分押金会被存储在应用链帐号里面,当SCS节点的服务不能满足要求时,相应SCS的押金会被扣除。当一个SCS节点的押金在应用链里面为0时,不能参与应用链共识的过程。
应用链节点押金(BondLimit)
当SCS在SCS pool中,被应用链选中时,需要缴纳押金才能为应用链进行验证。这部分押金会被存储在应用链帐号里面,当SCS节点的服务不能满足要求时,相应SCS的押金会被扣除。当一个SCS节点的押金在应用链里面为0时,不能参与应用链共识的过程。
应用链维护费用(Cost of AppChain)
应用链的维护费用包括矿工费用、向母链flush状态的费用,以及母链充提gas返还费用三部分。这个维护消耗可以通过调整应用链的flush周期来部分改变。
接入奖励(Via Reward)
应用链给予VNODE连接节点的奖励。
区块奖励(Block reward)
应用链给予每个区块的收益。
交易奖励(Tx reward)
为了鼓励SCS对更多的交易进行验证,应用链对每个打包的交易都提供了奖励。scs出空块和scs打包10个交易的块,奖励是不一样的。
应用链多合约版本
nuwa 1.0.8版本后的新功能,用于在应用链上部署多合约的基础控制合约。