前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈:区块链多链挖矿dapp系统开发技术逻辑

浅谈:区块链多链挖矿dapp系统开发技术逻辑

原创
作者头像
开发v_hkkf5566
发布2022-11-09 17:23:17
6950
发布2022-11-09 17:23:17
举报
文章被收录于专栏:技术开发分享技术开发分享

多链(multi-chain)不同于跨链(cross-chain),多链不需要第三方的跨链桥、跨链协议,也不存在抵押增发跨链资产,是指在相同的通信协议下无缝转移原生资产(native assets)。跨链与多链的本质性区别是安全性不一样,多链是确保状态一致,即如果回滚那么也会状态一致的回滚。但跨链受制于不同区块链的状态不同,无法做到同步一致,一旦发生攻击,那么跨链资产的平衡将会打破。

层次设计

多链一共分为3层,链管理层SMC,通过一个合约SMC管理验证节点押金,验证节点随机抽样等;Date为具体的交易数据层,各个子链分别维护各个子链的全状态数据和主链的全状态;state层主要是交易的产生层,也可以说是智能合约的执行层。

基本的分片结构

假如一台计算机的处理能力为C笔交易,主链节点能观察C条子链,则整个系统能处理C*C笔交易。

多链系统中的大多数用户都会运行两部分程序。

多链架构图

主链变更

本子链协议可单独于现有MainChain主链实施。只需再主链中作出如下修改,其中第二个变更非技术必须。

在MainChain主链上增加合约;该合约支持存入DEPOSIT_SIZE的ETH;deposit函数以:

代码语言:javascript
复制
fields = {

    # Hash of the parent block

    'parent_hash': 'hash32',

    # Slot number (for the PoS mechanism)

    'slot_number': 'int64',

    # Randao commitment reveal

    'randao_reveal': 'hash32',

    # Attestations

    'attestations': [AttestationRecord],

    # Reference to bumo chain block

    'bu_chain_ref': 'hash32',

    # Hash of the active state

    'active_state_root': 'hash32',

    # Hash of the crystallized state

    'crystallized_state_root': 'hash32',

}

主链状态分为活跃状态和结晶状态两种。

以下为活跃状态

代码语言:javascript
复制
/ActiveState:

fields = {

    # Attestations that have not yet been processed

    'pending_attestations': [AttestationRecord],

    # Most recent 2 * CYCLE_LENGTH block hashes, older to newer

    'recent_block_hashes': ['hash32']

}

MainChain主链处理

处理MainChain链与处理bu1.0链在很多方面非常类似。客户端下载并处理区块,维护当前“规范链”,终止于当前的“头部”。但是,由于主链链与现有bu1.0链的关系,并且本身是一个多链的架构,所以(处理)也存在一定的差异。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 层次设计
  • 基本的分片结构
  • 多链架构图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档