layer2简介是独立的区块链,完整运行所有区块链的事情。基于layer1进行对自身的验证和结算,继承了高安全性。按照结构拆解sequencer定序器:接收用户的交易,会排序交易,把交易重新发送给全节点以及记录到layer1上面。如果新加入的节点就可以直接从layer1同步历史交易。
<!--StartFragment-->
是独立的区块链,完整运行所有区块链的事情。基于layer1进行对自身的验证和结算,继承了高安全性。
sequencer定序器:接收用户的交易,会排序交易,把交易重新发送给全节点以及记录到layer1上面。如果新加入的节点就可以直接从layer1同步历史交易。保证消息同步正确。
在sequencer把消息发送到layer1,验证者也执行交易,需要从layer1上,有一个人认为结果是错误的,就可以从结果上去挑战他。这个步骤是在layer1上面进行的。
n个L2的validator——》layer1《——sequencer定序器《——n个fullnode
合约执行环境:
layer2 inbox contract对应sequencer,排序之后发送到的合约就是这个合约。
layer2 rollupcontract,validator把执行好的结果会发送到这个合约。然后会乐观的认为结果是正确的,如果是zk的话,会提交zkproof证明这个状态正确。如果是乐观rollup证明的话,就会默认正确,等待其他验证者挑战,如果其他验证者发起挑战,就会在layer1执行保证正确
layer2 outbox contract:记录layer1到layer2资金或者消息的转出,用户转出资金的时候需要确认你在layer2上面确实有资金,也会通过rollup contract读取状态,证明用户确实在layer2里面发起提款交易并成功提取到了layer1。
arbitrum交易速度为:
arbitrum orbit运行速度可加快至每区块0.1秒
主要三条链:
支持用rust开发合约
arbitrum nitro的技术栈
分为:
用户交易tx到达sequence,会先到先得的方式进行排序,排序好之后会有两个方式发送给其他节点,第一是sequencer feed方式,发送给全节点。第二是batch and compress ,这是发送给layer1.然后layer1就会发送到layer2 inbox contract进行记录。
第二个部分就是状态转移函数的一个过程。state transition function 与state交互
交易有三个部分:
软确认(1 sec):
订阅sequencer feed并执行状态转移函数
guarantee:如果sequencer feed正确,那最终结果就是正确的
确认(10 mins):
从L1读取batch,计算状态转移函数,等待L1最终确认。
guarantee:和L1最终性保持一致。
认证(7days)
等待L2块在L1上认证
仅用于L1合约
第一部分是node functionality :对外暴露的rpc函数,供用户使用layer2
第二部分arbos,是调度rpc请求放到 执行
第三部分核心地方,执行evm的地方
state transition function在第二部分和第三部分
执行和证明分开的。
节点会把三个部分都打包编译,compile to native ——》run as code
后面两个部分会用wasm编译速度更快 compile to wasm ——》use for proving
区块系统中有执行速度和验证速度。保证安全必须要执行速度<=验证速度
如果验证者结果不同,执行挑战就会在相同区块数内执行一个二分法,执行到2/n个blocks,中间状态。如果验证者同意了中间状态,那么说明问题出现在后半部分。那后半部分继续用二分法的方式去验证。如果验证不同意中间状态,那说明问题出在前面,所以循环找到问题。
当验证者找到问题指令后,会把指令发送到layer1,交给合约执行。由整个layer1验证者对其进行安全保证。
这就是为啥安全基于layer1的根本原因。
跟上面的对比就是多了个数据委员会。
应用程序想更进一步,利用one和nova的技术退出自己专用的rollup 或者anytrust链,无需许可可以创建自己的区块链
部署
技术架构:
可以将arbitrum rollup核心合约部署到L2或者ethereum
好处是:任意修改状态转换:账户抽象、加入各种加密算法支持、访问控制、其他改动
这是你的dapp的专有链,节约用户自身gas成本。
anytrust模式支持自定义代币作为gas费。
如何使用orbit sdk?参考github案例
STF定义如何从输入消息(交易)生成新的区块。
STF由arbos和geth code两部分构成
添加新的rpc接口来查询多个块中的地址余额,不会修改stf,因为不会修改链上余额和块哈希
更改排序规则也不会影响stf,因为输入时是需要已经排序好的交易。
支持wasm系统语言
计算能力提高70倍,效率提高1000倍
与evm完全组合性
开发内容:
docs.arbitrum.io
安装rust
推荐vscode、rust-analyzer拓展
hackquest
<https://www.staging.hackquest.io/learning-track>
部署测试
相关资源
<!--EndFragment-->
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!