织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

Layer 2:深入理解Arbitrum(2)

时间:2021-06-25 15:29来源:未知 作者:admin 点击:
using value = std::variant; enum ValueTypes { NUM, CODEPT, HASH_PRE_IMAGE, TUPLE, BUFFER = 12, CODE_POINT_STUB = 13 }; uint256_t - 整数类型 CodePoint - 当前代码指令表示 Tuple - 元组,由

  using value =

  std::variant;

  enum ValueTypes { NUM, CODEPT, HASH_PRE_IMAGE, TUPLE, BUFFER = 12, CODE_POINT_STUB = 13 };

  •   uint256_t - 整数类型

  •   CodePoint - 当前代码指令表示

  •   Tuple - 元组,由8个Value组成。元组中的某个元素依然可以是元组

  •   Buffer - 数组,最长为2^64

  •   HashPreImage - 固定的hash类型,hashValue = hash(value, prevHashValue)

  每种数据类型除了数据表示外,还能非常方便地计算其hash值作为状态。详细看看CodePoint和Tuple基本数据类型。

CodePoint

  CodePoint类型将多个操作“捆绑”在一起,每个CodePoint除了记录当前的Operation外,还包括前一个CodePoint的hash信息。这样所有的Operation可以串连起来,当前的CodePoint除了能表达当前的Operation外,还能明确Operation的依赖关系。CodePoint的类型定义在:packages/arb-avm-cpp/avm_values/include/avm_values/codepoint.hpp。

  struct CodePoint {

  Operation op;

  uint256_t nextHash;

  CodePoint(Operation op_, uint256_t nextHash_)

  : op(op_), nextHash(nextHash_) {}

  bool isError() const {

  return nextHash == 0 && op == Operation{static_cast(0)};

  }

  };Tuple

  Tuple类型由RawTuple实现。RawTuple是由一组value组成。Tuple限制最多8个value。

  struct RawTuple {

  HashPreImage cachedPreImage;

  std::vector data;

  bool deferredHashing = true;

  RawTuple() : cachedPreImage({}, 0), deferredHashing(true) {}

  };

  Tuple的类型定义在:packages/arb-avm-cpp/avm_values/include/avm_values/tuple.hpp。

  在理解了基础类型的基础上,DataStack可以由一系列Tuple实现:

  总结一下,AVM中的PC,Stack,Register等等的状态都能通过hash结果表示。AVM整个状态由这些hash值的拼接数据的hash表示。

  Rollup Challenge

  在提交到L1的状态有分歧时,挑战双方(Asserter和Challenger)先将状态分割,找出“分歧点”。明确分歧点后,挑战双方都可提供执行环境,L1执行相关操作确定之前提交的状态是否正确。L1的挑战处理逻辑实现在arb-bridge-eth/contracts/challenge/Challenge.sol。整个挑战机制有超时机制保证,为了突出核心流程,简化流程如下图所示:

  挑战者通过initializeChallenge函数发起挑战。接下来挑战者(Challenger)和应战者(Asserter)通过bisectExecution确定不可再分割的“分歧点”。在确定分歧点后,挑战者通过oneStepProveExecution函数确定Assert之前提交的状态是否正确。

  •   initializeChallenge (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容