区块链optimism主网节点搭建

2023-12-06 13:28

本文主要是介绍区块链optimism主网节点搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 官方参考资料
  • 编译
    • 环境搭建
    • 编译Optimism Monorepo
    • 编译op-geth
  • 执行
    • 下载数据快照
    • 生成op-geth和op-node通信密钥
    • op-geth
      • 执行脚本
    • op-node
      • 执行脚本
  • 启动日志
    • op-geth
    • op-node

本文是按照官方参考资料基于源码的方式成功搭建optimism主网节点。

官方参考资料

源码:https://github.com/ethereum-optimism/optimism/
文档:https://community.optimism.io/docs/developers/nodes/mainnet/

编译

环境搭建

在这里插入图片描述
按照要求安装以上软件。

编译Optimism Monorepo

下载源码

git clone https://github.com/ethereum-optimism/optimism.git

安装模块

cd optimism
pnpm install

编译op-node

make op-node
pnpm build

这个过程需要一些时间,可以在这个时候继续做下边步骤。

编译op-geth

下载源码

git clone https://github.com/ethereum-optimism/op-geth.git

编译

cd op-geth    
make geth

执行

下载数据快照

一定要做,可大大减少数据同步的时间。
下载

wget https://datadirs.optimism.io/mainnet-bedrock.tar.zst

解压
进入op-geth目录下,新建datadir,并把下载的mainnet-bedrock.tar.zst解压到datadir下

mkdir datadir
cd datadir
tar xvf <<PATH_TO_DATA_DIR>>

PATH_TO_DATA_DIR 就是mainnet-bedrock.tar.zst的文件路径

生成op-geth和op-node通信密钥

进入op-geth目录下,执行

openssl rand -hex 32 > jwt.txt

把jwt.txt文件拷贝到op-node目录下,保证geth和node用jwt内容相同。(其实我感觉路径下边的jwt路径设置相同就行)

cp jwt.txt ../optimism/op-node

op-geth

新建一个scripts 用来存放执行脚本
新建脚本文件,并修改文件属性为可执行

touch run-op-geth.sh
chmod +x run-op-geth.sh

执行脚本

#! /usr/bin/bashSEQUENCER_URL=https://mainnet-sequencer.optimism.io/cd /data/op/src/op-geth./build/bin/geth \--datadir=./datadir \--http \--http.port=8545\--http.addr=0.0.0.0 \--authrpc.addr=localhost \--authrpc.jwtsecret=./jwt.txt \--verbosity=3 \--rollup.sequencerhttp=$SEQUENCER_URL \--nodiscover \--syncmode=full \--maxpeers=10 \--port=30303  \--authrpc.port=8551\--gcmode=full \--history.state=0     \--history.transactions=0

参数解释
Path to op-geth directory:自己的op-geth文件夹路径
–maxpeers=10:最大的邻节点数量,官网写的0,感觉有问题,我这里写10。
–gcmode=full 我也不知道干嘛的,官网没写,其他地方有人写这个,我就写上了,不写应该也没事。
–history.state=0:
–history.transactions:从0开始为所有交易建立索引,不然一年之前的交易会查不到。
–datadir: 为自己存放数据库的地址:前面已经做过了,这里就不用改了。

最后执行

 ./run-op-geth.sh

这里可以使用nohup 后台启动,不然窗口一关,程序就停了

op-node

和op-geth方法类似,这里简写了。

touch run-op-node.sh
chmod +x run-op-node.sh

执行脚本

关键是这个配置文件啊,自己在这里卡了很久,这里放上我的配置文件。

#!/usr/bin/bashL1URL=https://eth-mainnet.g.alchemy.com/v2/xxxxxxxxxxxxxxxxxxxxxxxxxxx
L1KIND=any
NET=mainnetcd /data/op/src/optimism/op-node./bin/op-node \--l1=$L1URL  \--l1.rpckind=$L1KIND \--l2=http://localhost:8551\--l2.jwt-secret=./jwt.txt \--network=$NET \--rpc.addr=127.0.0.1 \--l1.trustrpc      \--rpc.port=8547

主要是这个–l1,可以写https://ethereum.publicnode.com/,但因为用的人很多,所以请求会失败。
我是到alchemy官网https://www.alchemy.com/注册了个账号,并建立一个以太坊项目,获得一个apikey,作为L1URL。其他的配置和我保持一致就可以,如果有的端口被占用了,就换端口。

启动日志

op-geth

在这里插入图片描述

这样就是启动成功了,因为我使用了history.transactions=0,Indexing transactions就是在建立交易索引的意思。

op-node

刚启动会出现下边这个日志
在这里插入图片描述

这是在找邻节点。大约持续几分钟或几十分钟,我这里启动了2次,都差不多半个小时。过后就开始同步,会出现下边这个日志。
在这里插入图片描述

op-geth也就开始同步了
在这里插入图片描述

搞定!!!

这篇关于区块链optimism主网节点搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/461992

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步