区块链 · 数字资产知识 · 行业资讯
文章库关于本站

区块链基础

区块链分片究竟分了什么|数据发布与账户状态分工怎样区分

摘要

同样称为分片,资料可能讨论数据可用性、账户状态或执行职责。对照以太坊与NEAR原始说明,从被分配的对象入手,避免把更多数据空间理解成新增独立执行链。

区块链分片的科技主题配图

先给被拆分的工作写出名称

读到区块链分片,先不要把一张分成几格的示意图当成完整架构。应继续问:格子代表交易数据、账户状态,还是执行交易的任务?数据如何传递、状态怎样更新和由谁检查结果,是不同职责。只知道系统分成若干部分,还不能判断某个合约的计算交给了谁。

这个区分也适用于资料归档。记录一项方案时,可分别写下分配对象、承担者和检查依据。若原文只解释了数据如何供其他参与者取得,就先保留这一范围,不自动补成多个节点分别执行不同合约。把缺少的说明留空,比用熟悉的另一条链模型替换更准确。

以太坊这条路线重点讨论数据

本轮读取的以太坊Danksharding路线页明确说明,传统分片链已不再属于该路线。它讨论的是围绕blob的数据分工与分布式采样,不能据此绘制出一组新分片链,再宣称每条链各自执行一批以太坊合约。名称里保留分片,并不表示此前所有架构设想都继续有效。

页面还说明,Proto-Danksharding让Rollup可以用blob发布数据,blob内容不能由EVM直接访问。数据可以取得,是检查执行结果所需的条件;它本身不等于执行已经正确完成。本文采用这些职责区别,不把路线页里的远期目标、旧数量示例或费用愿景当作今天已经测得的性能。

区块链扩容协议的科技主题配图

NEAR示例把账户状态与执行层分别解释

NEAR架构说明提供了另一种观察对象:每个账户属于某个分片,该账户的余额、合约代码、键值存储及访问密钥等信息也归入同一分片。区块链层把状态树分配到不同分片以分担负载。因此,这里读到的分片直接涉及账户状态的组织,不能直接拿以太坊blob的说明逐项代换。

同一文档又把区块链层与运行时分开:运行时处理交易和内部消息,区块链层负责把消息送到相应位置。消息中的receiver_id表示接收账户,消息自身并不知道目标分片。文档说可以假设每个账户独占一片,是帮助理解运行时可用信息的说法,并非宣称现实中一个账户就必须新建一个物理分片。

用两张虚构任务卡检查有没有越界

设甲卡只写着把批次数据提供给检查者,乙卡写着根据收到的操作更新某账户状态。这是两张虚构的职责卡,不对应真实节点。即使甲卡的数据传输能力提高,也不能仅凭这一条变化断定乙卡执行速度按相同比例提高;还需要知道执行工作是否改变,以及两者如何连接。

因此,比较分片资料时,先对应工作对象,再看消息传递和状态检查机制,最后才阅读性能数字。概念配图中的通道数量并不是实际分片数。不同版本的设计说明、部署记录和运行测量也要分开保存,不能把一份路线文档同时当作上线证明和扩容结果。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验