Arbitrum 的 Nitro 项目启动和交易执行源码解析

这篇具有很好参考价值的文章主要介绍了Arbitrum 的 Nitro 项目启动和交易执行源码解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 交易执行细节

1 合约部署

在节点启动之前,会先去部署 L1 上的合约,L2 上的合约是预部署的,接口部分有 solidity 来编写,实现是由 go 代码来实现的,合约实现对应的 go 代码为 precompiles 项目的代码目录,接口定义为 /nitro/contracts/src/precompiles 的代码。

2.1 L1 上的合约部署

合约部署代码入口为/nitro/cmd/deploy/deploy.go,
调用链:arbnode.DeployOnL1 -> deployRollupCreator -> deployBridgeCreator deployChallengeFactory DeployRollupAdminLogic DeployRollupUserLogic
核心代码示例如下

 deployPtr, err := arbnode.DeployOnL1(
   ctx,
   l1client,
   l1TransactionOpts,
   sequencerAddress,
   *authorizevalidators,
   headerReaderConfig,
   machineConfig,
   arbnode.GenerateRollupConfig(*prod, common.HexToHash(*wasmmoduleroot), ownerAddress, l2ChainId, loserEscrowAddress),
)
rollupCreator, rollupCreatorAddress, validatorUtils, validatorWalletCreator, err := deployRollupCreator(ctx, l1Reader, deployAuth)
if err != nil {
   return nil, fmt.Errorf("error deploying rollup creator: %w", err)
}
func deployRollupCreator(ctx context.Context, l1Reader *headerreader.HeaderReader, auth *bind.TransactOpts) (*rollupgen.RollupCreator, common.Address, common.Address, common.Address, error) {
   bridgeCreator, err := deployBridgeCreator(ctx, l1Reader, auth)
   if err != nil {
      return nil, common.Address{}, common.Address{}, common.Address{}, err
   }

   ospEntryAddr, challengeManagerAddr, err := deployChallengeFactory(ctx, l1Reader, auth)
   if err != nil {
      return nil, common.Address{}, common.Address{}, common.Address{}, err
   }
   ......

1.2 L2 上的合约部署

预部署合约, 执行 docker exec nitro_sequencer_1 cat /config/deployment.json 的时候会去部署一些合约, 部署生成的合约如下:文章来源地址https://www.toymoban.com/news/detail-624638.html

{
  "l1Network": {
    "blockTime": 10,
    "chainID": 1337,
    "explorerUrl": "",
    "isCustom": true,
    "name": "EthLocal",
    "partnerChainIDs": [
      412346,
      412346
    ],
    "rpcURL": "http://localhost:8545"
  },
  "l2Network": {
    "chainID": 412346,
    "confirmPeriodBlocks": 20,
    "ethBridge": {
      "bridge": "0x815b0ce130aa4c1db18ba0c4c92fcfbf6062ab08",
      "inbox": "0x07061a11d42da58c7bd08ddbf4ef6e60232ba966",
      "outbox": "0xE7098C657B3Ee7c92939f20A4E308efCdd656163",
      "rollup": "0x532016aa3f129f35214559723aa7a0faa435f7ce",
      "sequencerInbox": "0xda7b4b25cac35e41f62cf79744b7e4d50f177b64"
    },
    "explorerUrl": "",
    "isArbitrum": true,
    "isCustom": true,
    "name": "ArbLocal",
    "partnerChainID": 1337,
    "rpcURL": "http://localhost:8547",
    "retryableLifetimeSeconds": 604800,
    "depositTimeout": 900000,
    "tokenBridge": {
      "l1CustomGateway": "0xDe67138B609Fbca38FcC2673Bbc5E33d26C5B584",
      "l1ERC20Gateway": "0x0Bdb0992B3872DF911260BfB60D72607eb22d5d4",
      "l1GatewayRouter": "0x4535771b8D5C43100f126EdACfEc7eb60d391312",
      "l1MultiCall": "0x36BeF5fD671f2aA8686023dE4797A7dae3082D5F",
      "l1ProxyAdmin": "0xF7818cd5f5Dc379965fD1C66b36C0C4D788E7cDB",
      "l1Weth": "0x24067223381F042fF36fb87818196dB4D2C56E9B",
      "l1WethGateway": "0xBa3d12E370a4b592AAF0CA1EF09971D196c27aAd",
      "l2CustomGateway": "0x0Bdb0992B3872DF911260BfB60D72607eb22d5d4",
      "l2ERC20Gateway": "0x4535771b8D5C43100f126EdACfEc7eb60d391312",
      "l2GatewayRouter": "0xF7818cd5f5Dc379965fD1C66b36C0C4D788E7cDB",
      "l2Multicall": "0x14a00f381A870878Ae6A055C656520FF2Cbff985",
      "l2ProxyAdmin": "0x8c366Cfd28bC93729e14Da4fcf94d20862A7f266",
      "l2Weth": "0x9b890cA9dE3D317b16

到了这里,关于Arbitrum 的 Nitro 项目启动和交易执行源码解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SSM+mysql基于区块链的物联网数据交易-计算机毕业设计源码46193

    摘  要 物联网技术作为继互联网技术后新一代的通信信息集成应用的典范,其巨大的应用前景受到了学术界和政商界的广泛关注。物联网技术在一些传统行业已经有了很深入的应用,例如,其在商品生产信息溯源、环境监测保护、物流、供应链、能源等领域的成功应用。 与

    2024年02月04日
    浏览(50)
  • 在线股票配资配资股票交易整站源码/牛股跟投带实盘策略区块链网站整站源码

    ☑️ 编号:ym210 ☑️ 品牌:thinkPHP ☑️ 语言:php ☑️ 大小:47.3MB ☑️ 类型:在线股票配资配资 ☑️ 支持:pc 🎉 欢迎免费领取(注明编号) 🎉 ✨ 源码介绍 在线股票配资配资股票交易整站源码,牛股跟投带实盘策略区块链网站整站源码,这套源码再某站上能卖到1000+

    2024年02月11日
    浏览(35)
  • 【区块链 | L2】作为Layer2赛道的领跑者,如何理解 Arbitrum?

    上周我们介绍了以太坊L2扩展解决方案Optimism,本周我们继续介绍另一个L2解决方案——Arbitrum。 Arbitrum 是以太坊的一个 Optimistic Rollup L2 可扩展性解决方案。 Arbitrum 是一个构建在以太坊之上的区块链网络。你可以使用 Arbitrum 链来做任何在以太坊上做的事情——使用 Web3 应用程

    2024年02月09日
    浏览(53)
  • django+Web+区块链的大宗商品交易B2B服务平台网站(源码+mysql+论文)

    本系统(程序 + 源码)带文档 lw 万字以上   文末可获取本课题的源码和程序 选题背景: 随着科技的不断发展,区块链技术已经成为近年来的热门话题。区块链是一种去中心化、分布式的数据库技术,通过加密算法确保数据的安全性和不可篡改性。大宗商品交易B2B服务平台是

    2024年04月11日
    浏览(51)
  • 【源码解析】Mybatis执行原理

    MyBatis 是一款优秀的持久层框架,MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 Mybatis中的mapper接口并没有具体实

    2024年02月16日
    浏览(34)
  • MYSQL+SSM基于区块链的物联网数据交易-46193,免费领源码,【计算机毕业设计开题选题+程序定制+论文书写+答辩ppt书写 全流程 】

    SSM基于区块链的物联网数据交易 系    院 XXXX 学科门类 XXX 专    业  XXX 班级 XXX 学    号 XXX 姓    名 XXX 指导教师 XXX 教师职称 XXX 2022 年 12 月 4 日 摘  要 物联网技术作为继互联网技术后新一代的通信信息集成应用的典范,其巨大的应用前景受到了学术界和政商界的广

    2024年02月05日
    浏览(54)
  • 【Mybatis源码解析】mapper实例化及执行流程源码分析

    基础环境:JDK17、SpringBoot3.0、mysql5.7 储备知识:《【Spring6源码・AOP】AOP源码解析》、《JDBC详细全解》 基于SpringBoot的Mybatis源码解析: 1.如何对mapper实例化bean 在加载BeanDefinition时,会将SqlSessionFactory、SqlSessionTemplate、MapperScannerConfigurer加载到注册表中,以供后续进行实例化。

    2024年02月01日
    浏览(41)
  • SpringAOP源码解析之advice执行顺序(三)

    上一章我们分析了Aspect中advice的排序为Around.class, Before.class, After.class, AfterReturning.class, AfterThrowing.class,然后advice真正的执行顺序是什么?多个Aspect之间的执行顺序又是什么?就是我们本章探讨的问题。 既然需要知道advide的执行顺序,那么我们就得有Aspect。我们还是使用之前

    2024年02月08日
    浏览(38)
  • 基于微信小程序平台实现二手物品交易小程序设计【附项目源码】

    基于微信小程序平台实现二手物品交易小程序设计演示 随着二手物品交易市场的不断扩大,越来越多的人开始寻找更加便捷、高效的交易方式。基于微信小程序平台实现的二手物品交易系统便应运而生,为人们提供了一个方便快捷的交易平台。 平台概述 该交易系统基于微信

    2024年02月09日
    浏览(57)
  • 【源码解析】flink sql执行源码概述:flink sql执行过程中有哪些阶段,这些阶段的源码大概位置在哪里

    本文大致分析了flink sql执行过程中的各个阶段的源码逻辑,这样可以在flink sql执行过程中, 能够定位到任务执行的某个阶段的代码大概分布在哪里,为更针对性的分析此阶段的细节逻辑打下基础,比如create 的逻辑是怎么执行的,select的逻辑是怎么生成的,优化逻辑都做了哪

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包