找回密码
 立即注册

新浪微博登陆

只需一步, 快速开始

0

Nxt区块链2.0 - 主链和子链

nxt 2016-2-11 09:331075 人围观 原作者: Jean-Luc 来自: NxtForum

简介 :Nxt区块链2.0已经在讨论和计划实施中了,其核心思路就是要通过主链(Main Chain)和子链(Child Chain)的这种架构来增加Nxt区块链的可扩展性和可删减性,从而解决长期存在的区块链膨胀等问题;主链只有维护网络安全 ...

Nxt区块链2.0已经在讨论和计划实施中了,其核心思路就是要通过主链(Main Chain)和子链(Child Chain)的这种架构来增加Nxt区块链的可扩展性和可删减性,从而解决长期存在的区块链膨胀等问题;

主链只有维护网络安全的功能,其中的代币称之为fNXT(Forging NXT),只有发送转账基本功能和锻造功能(维护网络安全);子链则拥有所有目前NXT的功能,所有子链的交易都用自己子链的代币,但最终的交易需要使用主链的代币fNXT来广播至网络并被节点确认;因此目前的NXT区块链也将成为一条子链,同时会创建新的主链。

具体增加的内容如下:
  • 创建一条主链,其中的代币只有锻造维护网络功能,代币称之为“forgingNXT"。目前的NXT生态系统则变为一条子链,保留除了锻造以外的所有功能和属性。在硬分叉区块,每一个NXT的持有者将会按照1:1的比例获得主链的fNXT和目前子链的NXT,所有的其它功能和属性都将迁移至NXT子链;
  • 可以随时按照市场价格将NXT交易为fNXT;
  • 所有子链运行的程序是一样的,但是每一条子链可以根据自己的需要来选择设置功能。目前的NXT子链将拥有所有的交易类型和功能;
  • 每一条子链都将使用自己的代币,所有的支付交易、资产交易、数字商品交易市场等等都将使用子链内部的代币,子链的交易费要使用自己的代币;
  • 所有子链的交易都需要由所有节点来处理。所有的节点至少保留所有子链的最新的1440个区块的交易数据。备份节点可以选择将子链的交易数据存储时间延长,或一直保存这些交易数据;
  • 如果节点没有进行特别备份设置的话,所有子链的交易将会在1440个区块后全部删除。重新下载区块链的新节点需要价值:锻造者和所有运行区块链的节点批准了这些当时未删减的交易,在那个时间点它们也必须是有效的,尽管要验证它们的数据已经不存在了。
  • 必须要能够验证锻造者的fNXT余额。这就是为什么主链(锻造链)上与fNXT余额变化的相关的交易不能删除的原因,主链必须要保留一些必要的交易类型;
  • 子链上的区块将会是可删减的单个(每一条链每一个区块中的每一个交易)交易。任何人都可以创建子链区块交易。然而,需要由在主链上创建区块的锻造者来决定是否将这个子链区块交易写入到主链区块中。与其它所有节点一样,锻造者会验证子链区块中的所有子链交易,前提是这些数据还没有被删除。
  • 如果子链中没有交易,就没必要创建子链区块交易,这与主链不同,在主链中我们需要持续的创建时间为60秒的区块,无论区块中是否有交易。我们可以考虑缩短主链的区块时间来让让更多的子链区块出现;
  • 锻造者只接受fNXT类型的交易费,最小交易费是由软件自己来计算的;
  • 当锻造者将一个子链区块交易写入到主链中时,子链区块交易的创建者需要给锻造者支付一定费用的fNXT。这个交易费是由子链区块创建者决定的,但是一定要大于软件协议所设定的最小费用。同时,子链区块创建者也会获得交易费,这些交易费则是以子链中的代币,是由资料交易的发送者支付的;
  • 子链代币和fNXT的兑换比率将由市场决定。如果没有人愿意将子链交易写入子链区块,这意味着支付的子链交易费没有达到所需的最小fNXT费用,这样的话将以将不会得到确认。如果子链的代币价格跌为0,没有人愿意创建子链区块的话,这条子链上的交易将会停止;
  • 子链将会互相竞争来希望被写入到主区块中,因为最终锻造者将会查看 费用/交易大小 比,希望最大化它们的锻造收益,当然这些交易大小受制于主区块链的区块大小和交易数目限制;
  • 在删减之前,每一个节点不仅要验证子区块交易哈希是否匹配,还要验证子链上的所有交易都是有效的,例如,没有双重支付,以及其它所有的验证。这样的话节点才能知道某个子链上所有账户的当前余额。为了能够删减,我们需要快照交易,快照只记录当前子链的状态,不会记录之前的历史记录。然后,在交易被写入主区块中720个确认后,我们就认为该交易是有效的,就会删减掉快照之前的所有历史交易记录和之前的快照;
  • 子链的快照交易是由当前区块的锻造者按照以一定的时间间隔来创建的,例如1440个区块。它只包含快照的哈希值,并不包含快照的所有数据内容;
  • 当创建快照交易时,快照数据本身并不不需要广播至网络。每一个更新的节点都已经有子链快照时的状态了,因此它们就能够自己生产快照。只需要验证锻造者的快照哈希与自己的快照哈希相匹配即可;
  • 只有重新开始下载区块链的节点才需要下载最新的所有快照,这就是为什么每一个节点都必须生成并保留这个快照的另外一个原因,从而可以提供给这些重新下载区块链的新节点。快照的下载是torrent模式的,即从不同的节点下载不同的碎片;
  • 因为每一个更新的节点仍然需要验证所有当前的交易,尽管我们已经极大地减少了区块链长期膨胀的问题,这些问题包括占用大量的磁盘空间、区块链下载时间,但是仍然存在CPU处理所有子链数据的瓶颈、接受和处理所有子链当前交易的带宽问题。但是因为节点无需验资子链之前已经删减的交易数据,因此整体上下载区块链数据的速度会大大提高,CPU的占用也会大幅降低;
  • 主链(锻造链)用于保证安全,即使很多子链没有用户和交易,或者偶尔有交易。同样,这样以来所有子链都可以进行删减。子链不再需要保留它们之前所有的从创世块开始的旧数据了,因为它们不参与锻造,与网络安全无关;
  • 首先,我们会只有主链和目前的NXT一条子链,或者再加一条测试子链。一旦测试没完成,我们就开始实施动态创建新子链的功能,以及为创建的子链设置和编辑功能属性。


分享到新浪微博 收藏 邀请
鲜花
鲜花
握手
握手
雷人
雷人
路过
路过
鸡蛋
鸡蛋

最新评论

1框架
返回顶部