当前位置: 首页 > news >正文

区块链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:区块链垃圾回收模式,官网没配这个参数,其他地方有人写这个,我就写上了。不写也没事,默认就是full。
–history.state=0:要保留状态历史记录的最近块数。
–history.transactions:要维护事务索引的最近块数
–datadir: 为自己存放数据库的地址:前面已经做过了,这里就不用改了。

op的命令行和eth的命令行应该是一样的 可以参考
https://geth.ethereum.org/docs/fundamentals/command-line-options
最后执行

 ./run-op-geth.sh

这里可以使用nohup 后台启动,不然 ctrl+c, 程序就停了。如果有的端口被占用了,就换端口,比如8545、8551都可以替换,但如果端口换了,下边op-node的端口也要换,保持一致。

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主网节点搭建

文章目录 官方参考资料编译环境搭建编译Optimism Monorepo编译op-geth 执行下载数据快照生成op-geth和op-node通信密钥op-geth执行脚本 op-node执行脚本 启动日志op-gethop-node 本文是按照官方参考资料基于源码的方式成功搭建optimism主网节点。 官方参考资料 源码&#xff1…...

Bounding boxes augmentation for object detection

Different annotations formats Bounding boxes are rectangles that mark objects on an image. There are multiple formats of bounding boxes annotations. Each format uses its specific representation of bouning boxes coordinates 每种格式都使用其特定的边界框坐标…...

【计算机网络学习之路】HTTP请求

目录 前言 HTTP请求报文格式 一. 请求行 HTTP请求方法 GET和POST的区别 URL 二. 请求头 常见的Header 常见的额请求体数据类型 三. 请求体 结束语 前言 HTTP是应用层的一个协议。实际我们访问一个网页&#xff0c;都会像该网页的服务器发送HTTP请求&#xff0c;服务…...

java之字符串常用处理函数

在Java中&#xff0c;你可以使用Collections.sort()方法对字符串中的字符进行排序。这个方法会按照字母顺序对字符进行排序。 以下是一个例子&#xff1a; import java.util.Arrays; import java.util.Collections; public class Main { public static void main(…...

【XILINX】ERROR:Place:1136 - This design contains a global buffer instance

记录一个ISE软件使用过程中遇到的问题及解决方案。 芯片&#xff1a;spartan6 问题 ERROR:Place:1136 - This design contains a global buffer instance, , driving the net,>, that is driving the following (first 30) non-clock load pins. This is not a recommended…...

【文件上传系列】No.0 利用 FormData 实现文件上传、监控网路速度和上传进度(原生前端,Koa 后端)

利用 FormData 实现文件上传 基础功能&#xff1a;上传文件 演示如下&#xff1a; 概括流程&#xff1a; 前端&#xff1a;把文件数据获取并 append 到 FormData 对象中后端&#xff1a;通过 ctx.request.files 对象拿到二进制数据&#xff0c;获得 node 暂存的文件路径 前端…...

web前端之JavaScrip的笔试题

MENU Promise笔试题-02prototype和__proto__的笔试题JavaScript引用类型值值操和运算符优先级比较--笔试原型与原型链--笔试-05作用域-笔试事件队列-笔试题JavaScript之变量提升-笔试题JavaScript之原型链--笔试题 Promise笔试题-02 console.log(1); // 宏仁务 2 setTimeout(_…...

生活、工作常用API免费接口

身份证识别OCR&#xff1a;传入身份证照片&#xff0c;识别照片文字信息并返回&#xff0c;包括姓名、身份证号码、性别、民族、出生年月日、地址、签发机关及有效期。二维码识别OCR&#xff1a;对图片中的二维码、条形码进行检测和识别&#xff0c;返回存储的文字内容。银行卡…...

PHP使用mkcert本地开发生成HTTPS证书 PhpEnv集成环境

PHP使用mkcert本地开发生成HTTPS证书 PhpEnv集成环境 前言一、介绍 mkcert二、安装/使用 mkcert1. 安装2. 使用 总结 前言 本地开发时有些功能只有在 https 证书的情况下才能使用, 例如一些 Web API 一、介绍 mkcert Github地址 mkcert 是一个制作本地可信开发证书的简单工具。…...

DHTMLX Scheduler PRO 6.0.5 Crack

功能丰富的 JavaScript调度程序 DHTMLX Scheduler 是一个 JavaScript 日程安排日历&#xff0c;具有 10 个视图和可定制的界面&#xff0c;用于开发任何类型的日程安排应用程序。 DHTMLX JS 调度程序库的主要特性 我们的 JS 调度程序最需要的功能之一是时间轴视图。借助时间轴…...

AddressSanitizer和LeakSanitizer有什么区别

AddressSanitizer&#xff08;ASan&#xff09;和LeakSanitizer&#xff08;LSan&#xff09;都是用于内存错误检测的工具&#xff0c;它们的主要区别在于检测的问题类型和应用场景。 AddressSanitizer&#xff08;ASan&#xff09;: ASan是一种用于检测内存错误的工具&#xf…...

CoreDNS实战(二)-CoreDNS+ETCD实现DNS服务发现

1 引言 在前面的文章中讲了如何搭建一个内网的DNS服务&#xff0c;但是这里有个问题&#xff0c;mxsm-register.local表示局域网的注册中心域名&#xff0c;如果需要将每台部署了注册中心的IP地址写到CoreDNS的配置文件中。这样就需要每次都去修改 Corefile 配置文件。那有没有…...

B站缓存视频M4S合并MP4(js + ffmpeg )

文章目录 B站缓存视频转MP4&#xff08;js ffmpeg &#xff09;1、说明 2、ffmpeg2.1 下载地址2.2 配置环境变量2.3 测试2.4 转换MP4命令 3、处理程序 B站缓存视频转MP4&#xff08;js ffmpeg &#xff09; 注意&#xff1a;这样的方式只用于个人之间不同设备的离线观看。请…...

学习IO的第四天

作业 : 使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一般内容&#xff0c;父进程用于回收两个子进程的资源 #include <head.h>int main(int argc, const char *argv[]) {int rd -1;if((rdopen("./01_test.c&quo…...

Linux:缓冲区的概念理解

文章目录 缓冲区什么是缓冲区&#xff1f;缓冲区的意义是什么&#xff1f;缓冲区的刷新方式 理解缓冲区用户缓冲区和内核缓冲区缓冲区在哪里&#xff1f; 本篇主要总结的是关于缓冲区的概念理解&#xff0c;以及再次基础上对文件的常用接口进行一定程度的封装 缓冲区 什么是缓…...

中山大学李华山、王彪课题组开发 SEN 机器学习模型,高精度预测材料性能

内容一览&#xff1a;了解全局晶体对称性并分析等变信息&#xff0c;对于预测材料性能至关重要&#xff0c;但现有的、基于卷积网络的算法尚且无法完全实现这些需求。针对于此&#xff0c;中山大学的李华山、王彪课题组&#xff0c;开发了一款名为 SEN 的机器学习模型&#xff…...

二百一十、Hive——Flume采集的JSON数据文件写入Hive的ODS层表后字段的数据残缺

一、目的 在用Flume把Kafka的数据采集写入Hive的ODS层表的HDFS文件路径后&#xff0c;发现HDFS文件中没问题&#xff0c;但是ODS层表中字段的数据却有问题&#xff0c;字段中的JSON数据不全 二、Hive处理JSON数据方式 &#xff08;一&#xff09;将Flume采集Kafka的JSON数据…...

【开放集检测OSR】开放集检测和闭集检测的区别和联系:从模型角度进行理解

定义一个分类器&#xff1a; D t r a i n { ( x i , y i ) } i 1 N ⊂ X C D_{train} \{(x_i, y_i)\}^N _{i1} ⊂ X C Dtrain​{(xi​,yi​)}i1N​⊂XC X&#xff1a;输入空间 ( x i , y i ) (x_i, y_i) (xi​,yi​): 输入的图像x以及其对象的类别标签yC &#xff1a;已知…...

【Flink】Flink核心概念简述

目录 一、Flink 简介二、Flink 组件栈1. API & Libraries 层2. runtime层3. 物理部署层 三、Flink 集群架构四、Flink基本编程模型五、Flink 的部署模式六、Flink 任务的执行模式五、Flink 的优点 一、Flink 简介 Apache Flink 的前身是柏林理工大学一个研究性项目&#x…...

linux-tar命令、解压、压缩

压缩 文件夹 命令&#xff1a;tar -zcvf ~/test/tar_t.tar.gz /target/ 将/target/文件夹及其子文件夹和文件压缩成tar_t.tar.gz文件&#xff0c;并放于~/test/路径下 文件 命令&#xff1a;tar -zcvf ~/test/tar_t.tar.gz /target/file 将/target/file文件压缩成tar_t.tar…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...