Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
b243af30
Commit
b243af30
authored
Mar 11, 2025
by
vicotor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update script
parent
9bef9c39
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
210 additions
and
128 deletions
+210
-128
.gitignore
.gitignore
+3
-0
Makefile
Makefile
+3
-125
MakefileBak
MakefileBak
+201
-0
generate.sh
generate.sh
+1
-1
init.sh
init.sh
+1
-1
start.sh
start.sh
+1
-1
No files found.
.gitignore
View file @
b243af30
...
@@ -46,3 +46,6 @@ __pycache__
...
@@ -46,3 +46,6 @@ __pycache__
# Ignore echidna artifacts
# Ignore echidna artifacts
crytic-export
crytic-export
bin
data
.node
Makefile
View file @
b243af30
# provide JUSTFLAGS for just-backed targets
include
./justfiles/flags.mk
BEDROCK_TAGS_REMOTE
?=
origin
OP_STACK_GO_BUILDER
?=
us-docker.pkg.dev/oplabs-tools-artifacts/images/op-stack-go:latest
# Requires at least Python v3.9; specify a minor version below if needed
PYTHON
?=
python3
help
:
##
Prints this help message
help
:
##
Prints this help message
@
grep
-E
'^[a-zA-Z0-9_-]+:.*?## .*$$'
$(MAKEFILE_LIST)
|
awk
'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
@
grep
-E
'^[a-zA-Z0-9_-]+:.*?## .*$$'
$(MAKEFILE_LIST)
|
awk
'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
...
@@ -28,21 +20,6 @@ lint-go-fix: ## Lints Go code with specific linters and fixes reported issues
...
@@ -28,21 +20,6 @@ lint-go-fix: ## Lints Go code with specific linters and fixes reported issues
golangci-lint run
-E
goimports,sqlclosecheck,bodyclose,asciicheck,misspell,errorlint
--timeout
5m
-e
"errors.As"
-e
"errors.Is"
./...
--fix
golangci-lint run
-E
goimports,sqlclosecheck,bodyclose,asciicheck,misspell,errorlint
--timeout
5m
-e
"errors.As"
-e
"errors.Is"
./...
--fix
.PHONY
:
lint-go-fix
.PHONY
:
lint-go-fix
ci-builder
:
##
Builds the CI builder Docker image
docker build
-t
ci-builder
-f
ops/docker/ci-builder/Dockerfile .
.PHONY
:
ci-builder
golang-docker
:
##
Builds Docker images for Go components using buildx
# We don't use a buildx builder here, and just load directly into regular docker, for convenience.
GIT_COMMIT
=
$$
(
git rev-parse HEAD
)
\
GIT_DATE
=
$$
(
git show
-s
--format
=
'%ct'
)
\
IMAGE_TAGS
=
$$
(
git rev-parse HEAD
)
,latest
\
docker buildx bake
\
--progress
plain
\
--load
\
-f
docker-bake.hcl
\
op-node op-batcher op-proposer op-challenger op-dispute-mon op-supervisor
.PHONY
:
golang-docker
docker-builder-clean
:
##
Removes the Docker buildx builder
docker-builder-clean
:
##
Removes the Docker buildx builder
docker buildx
rm
buildx-build
docker buildx
rm
buildx-build
...
@@ -53,33 +30,6 @@ docker-builder: ## Creates a Docker buildx builder
...
@@ -53,33 +30,6 @@ docker-builder: ## Creates a Docker buildx builder
--driver
=
docker-container
--name
=
buildx-build
--bootstrap
--use
--driver
=
docker-container
--name
=
buildx-build
--bootstrap
--use
.PHONY
:
docker-builder
.PHONY
:
docker-builder
# add --print to dry-run
cross-op-node
:
##
Builds cross-platform Docker image for op-node
# We don't use a buildx builder here, and just load directly into regular docker, for convenience.
GIT_COMMIT
=
$$
(
git rev-parse HEAD
)
\
GIT_DATE
=
$$
(
git show
-s
--format
=
'%ct'
)
\
IMAGE_TAGS
=
$$
(
git rev-parse HEAD
)
,latest
\
PLATFORMS
=
"linux/arm64"
\
GIT_VERSION
=
$(
shell
tags
=
$$
(
git tag
--points-at
$(GITCOMMIT)
|
grep
'^op-node/'
|
sed
's/op-node\///'
|
sort
-V
)
;
\
preferred_tag
=
$$
(
echo
"
$$
tags"
|
grep
-v
--
'-rc'
|
tail
-n
1
)
;
\
if
[
-z
"
$$
preferred_tag"
]
;
then
\
if
[
-z
"
$$
tags"
]
;
then
\
echo
"untagged"
;
\
else
\
echo
"
$$
tags"
|
tail
-n
1
;
\
fi
\
else
\
echo
$$
preferred_tag
;
\
fi
)
\
docker buildx bake
\
--progress
plain
\
--builder
=
buildx-build
\
--load
\
--no-cache
\
-f
docker-bake.hcl
\
op-node
.PHONY
:
cross-op-node
contracts-bedrock-docker
:
##
Builds Docker image for Bedrock contracts
contracts-bedrock-docker
:
##
Builds Docker image for Bedrock contracts
IMAGE_TAGS
=
$$
(
git rev-parse HEAD
)
,latest
\
IMAGE_TAGS
=
$$
(
git rev-parse HEAD
)
,latest
\
docker buildx bake
\
docker buildx bake
\
...
@@ -95,74 +45,17 @@ submodules: ## Updates git submodules
...
@@ -95,74 +45,17 @@ submodules: ## Updates git submodules
op-node
:
##
Builds op-node binary
op-node
:
##
Builds op-node binary
just
$(JUSTFLAGS)
./op-node/op-node
go build
-o
./bin/op-node ./op-node/cmd
.PHONY
:
op-node
.PHONY
:
op-node
generate-mocks-op-node
:
##
Generates mocks for op-node
make
-C
./op-node generate-mocks
.PHONY
:
generate-mocks-op-node
generate-mocks-op-service
:
##
Generates mocks for op-service
make
-C
./op-service generate-mocks
.PHONY
:
generate-mocks-op-service
op-batcher
:
##
Builds op-batcher binary
op-batcher
:
##
Builds op-batcher binary
just
$(JUSTFLAGS)
./op-batcher/op-batcher
go build
-o
./bin/op-batcher ./op-batcher/cmd
.PHONY
:
op-batcher
.PHONY
:
op-batcher
op-proposer
:
##
Builds op-proposer binary
op-proposer
:
##
Builds op-proposer binary
just
$(JUSTFLAGS)
./op-proposer/op-proposer
go build
-o
./bin/op-proposer ./op-proposer/cmd
.PHONY
:
op-proposer
.PHONY
:
op-proposer
op-challenger
:
##
Builds op-challenger binary
make
-C
./op-challenger op-challenger
.PHONY
:
op-challenger
op-dispute-mon
:
##
Builds op-dispute-mon binary
make
-C
./op-dispute-mon op-dispute-mon
.PHONY
:
op-dispute-mon
op-program
:
##
Builds op-program binary
make
-C
./op-program op-program
.PHONY
:
op-program
cannon
:
##
Builds cannon binary
make
-C
./cannon cannon
.PHONY
:
cannon
reproducible-prestate
:
##
Builds reproducible-prestate binary
make
-C
./op-program reproducible-prestate
.PHONY
:
reproducible-prestate
# Include any files required for the devnet to build and run.
DEVNET_CANNON_PRESTATE_FILES
:=
op-program/bin/prestate-proof.json op-program/bin/prestate.bin.gz op-program/bin/prestate-proof-mt.json op-program/bin/prestate-mt.bin.gz op-program/bin/prestate-interop.bin.gz
$(DEVNET_CANNON_PRESTATE_FILES)
:
make cannon-prestate
make cannon-prestate-mt
make cannon-prestate-interop
cannon-prestates
:
cannon-prestate cannon-prestate-mt cannon-prestate-interop
.PHONY
:
cannon-prestates
cannon-prestate
:
op-program cannon
##
Generates prestate using cannon and op-program
./cannon/bin/cannon load-elf
--type
singlethreaded-2
--path
op-program/bin/op-program-client.elf
--out
op-program/bin/prestate.bin.gz
--meta
op-program/bin/meta.json
./cannon/bin/cannon run
--proof-at
'=0'
--stop-at
'=1'
--input
op-program/bin/prestate.bin.gz
--meta
op-program/bin/meta.json
--proof-fmt
'op-program/bin/%d.json'
--output
""
mv
op-program/bin/0.json op-program/bin/prestate-proof.json
.PHONY
:
cannon-prestate
cannon-prestate-mt
:
op-program cannon
##
Generates prestate using cannon and op-program in the latest 64-bit multithreaded cannon format
./cannon/bin/cannon load-elf
--type
multithreaded64-3
--path
op-program/bin/op-program-client64.elf
--out
op-program/bin/prestate-mt.bin.gz
--meta
op-program/bin/meta-mt.json
./cannon/bin/cannon run
--proof-at
'=0'
--stop-at
'=1'
--input
op-program/bin/prestate-mt.bin.gz
--meta
op-program/bin/meta-mt.json
--proof-fmt
'op-program/bin/%d-mt.json'
--output
""
mv
op-program/bin/0-mt.json op-program/bin/prestate-proof-mt.json
.PHONY
:
cannon-prestate-mt
cannon-prestate-interop
:
op-program cannon
##
Generates interop prestate using cannon and op-program in the latest 64-bit multithreaded cannon format
./cannon/bin/cannon load-elf
--type
multithreaded64-3
--path
op-program/bin/op-program-client-interop.elf
--out
op-program/bin/prestate-interop.bin.gz
--meta
op-program/bin/meta-interop.json
./cannon/bin/cannon run
--proof-at
'=0'
--stop-at
'=1'
--input
op-program/bin/prestate-interop.bin.gz
--meta
op-program/bin/meta-interop.json
--proof-fmt
'op-program/bin/%d-interop.json'
--output
""
mv
op-program/bin/0-interop.json op-program/bin/prestate-proof-interop.json
.PHONY
:
cannon-prestate-interop
mod-tidy
:
##
Cleans up unused dependencies in Go modules
mod-tidy
:
##
Cleans up unused dependencies in Go modules
# Below GOPRIVATE line allows mod-tidy to be run immediately after
# Below GOPRIVATE line allows mod-tidy to be run immediately after
...
@@ -178,24 +71,9 @@ clean: ## Removes all generated files under bin/
...
@@ -178,24 +71,9 @@ clean: ## Removes all generated files under bin/
cd
packages/contracts-bedrock/
&&
forge clean
cd
packages/contracts-bedrock/
&&
forge clean
.PHONY
:
clean
.PHONY
:
clean
nuke
:
clean
##
Completely clean the project directory
git clean
-Xdf
.PHONY
:
nuke
test-unit
:
##
Runs unit tests for all components
make
-C
./op-node
test
make
-C
./op-proposer
test
make
-C
./op-batcher
test
make
-C
./op-e2e
test
(
cd
packages/contracts-bedrock
&&
just
test
)
.PHONY
:
test-unit
# Remove the baseline-commit to generate a nebula reading & show all issues
# Remove the baseline-commit to generate a nebula reading & show all issues
semgrep
:
##
Runs Semgrep checks
semgrep
:
##
Runs Semgrep checks
$
(
eval
DEV_REF :
=
$(
shell
git rev-parse develop
)
)
$
(
eval
DEV_REF :
=
$(
shell
git rev-parse develop
)
)
SEMGREP_REPO_NAME
=
ethereum-optimism/optimism semgrep ci
--baseline-commit
=
$(DEV_REF)
SEMGREP_REPO_NAME
=
ethereum-optimism/optimism semgrep ci
--baseline-commit
=
$(DEV_REF)
.PHONY
:
semgrep
.PHONY
:
semgrep
update-op-geth
:
##
Updates the Geth version used in the project
./ops/scripts/update-op-geth.py
.PHONY
:
update-op-geth
MakefileBak
0 → 100644
View file @
b243af30
# provide JUSTFLAGS for just-backed targets
include ./justfiles/flags.mk
BEDROCK_TAGS_REMOTE?=origin
OP_STACK_GO_BUILDER?=us-docker.pkg.dev/oplabs-tools-artifacts/images/op-stack-go:latest
# Requires at least Python v3.9; specify a minor version below if needed
PYTHON?=python3
help: ## Prints this help message
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
build: build-go build-contracts ## Builds Go components and contracts-bedrock
.PHONY: build
build-go: submodules op-node op-proposer op-batcher ## Builds op-node, op-proposer and op-batcher
.PHONY: build-go
build-contracts:
(cd packages/contracts-bedrock && just build)
.PHONY: build-contracts
lint-go: ## Lints Go code with specific linters
golangci-lint run -E goimports,sqlclosecheck,bodyclose,asciicheck,misspell,errorlint --timeout 5m -e "errors.As" -e "errors.Is" ./...
.PHONY: lint-go
lint-go-fix: ## Lints Go code with specific linters and fixes reported issues
golangci-lint run -E goimports,sqlclosecheck,bodyclose,asciicheck,misspell,errorlint --timeout 5m -e "errors.As" -e "errors.Is" ./... --fix
.PHONY: lint-go-fix
ci-builder: ## Builds the CI builder Docker image
docker build -t ci-builder -f ops/docker/ci-builder/Dockerfile .
.PHONY: ci-builder
golang-docker: ## Builds Docker images for Go components using buildx
# We don't use a buildx builder here, and just load directly into regular docker, for convenience.
GIT_COMMIT=$$(git rev-parse HEAD) \
GIT_DATE=$$(git show -s --format='%ct') \
IMAGE_TAGS=$$(git rev-parse HEAD),latest \
docker buildx bake \
--progress plain \
--load \
-f docker-bake.hcl \
op-node op-batcher op-proposer op-challenger op-dispute-mon op-supervisor
.PHONY: golang-docker
docker-builder-clean: ## Removes the Docker buildx builder
docker buildx rm buildx-build
.PHONY: docker-builder-clean
docker-builder: ## Creates a Docker buildx builder
docker buildx create \
--driver=docker-container --name=buildx-build --bootstrap --use
.PHONY: docker-builder
# add --print to dry-run
cross-op-node: ## Builds cross-platform Docker image for op-node
# We don't use a buildx builder here, and just load directly into regular docker, for convenience.
GIT_COMMIT=$$(git rev-parse HEAD) \
GIT_DATE=$$(git show -s --format='%ct') \
IMAGE_TAGS=$$(git rev-parse HEAD),latest \
PLATFORMS="linux/arm64" \
GIT_VERSION=$(shell tags=$$(git tag --points-at $(GITCOMMIT) | grep '^op-node/' | sed 's/op-node\///' | sort -V); \
preferred_tag=$$(echo "$$tags" | grep -v -- '-rc' | tail -n 1); \
if [ -z "$$preferred_tag" ]; then \
if [ -z "$$tags" ]; then \
echo "untagged"; \
else \
echo "$$tags" | tail -n 1; \
fi \
else \
echo $$preferred_tag; \
fi) \
docker buildx bake \
--progress plain \
--builder=buildx-build \
--load \
--no-cache \
-f docker-bake.hcl \
op-node
.PHONY: cross-op-node
contracts-bedrock-docker: ## Builds Docker image for Bedrock contracts
IMAGE_TAGS=$$(git rev-parse HEAD),latest \
docker buildx bake \
--progress plain \
--load \
-f docker-bake.hcl \
contracts-bedrock
.PHONY: contracts-bedrock-docker
submodules: ## Updates git submodules
git submodule update --init --recursive
.PHONY: submodules
op-node: ## Builds op-node binary
just $(JUSTFLAGS) ./op-node/op-node
.PHONY: op-node
generate-mocks-op-node: ## Generates mocks for op-node
make -C ./op-node generate-mocks
.PHONY: generate-mocks-op-node
generate-mocks-op-service: ## Generates mocks for op-service
make -C ./op-service generate-mocks
.PHONY: generate-mocks-op-service
op-batcher: ## Builds op-batcher binary
just $(JUSTFLAGS) ./op-batcher/op-batcher
.PHONY: op-batcher
op-proposer: ## Builds op-proposer binary
just $(JUSTFLAGS) ./op-proposer/op-proposer
.PHONY: op-proposer
op-challenger: ## Builds op-challenger binary
make -C ./op-challenger op-challenger
.PHONY: op-challenger
op-dispute-mon: ## Builds op-dispute-mon binary
make -C ./op-dispute-mon op-dispute-mon
.PHONY: op-dispute-mon
op-program: ## Builds op-program binary
make -C ./op-program op-program
.PHONY: op-program
cannon: ## Builds cannon binary
make -C ./cannon cannon
.PHONY: cannon
reproducible-prestate: ## Builds reproducible-prestate binary
make -C ./op-program reproducible-prestate
.PHONY: reproducible-prestate
# Include any files required for the devnet to build and run.
DEVNET_CANNON_PRESTATE_FILES := op-program/bin/prestate-proof.json op-program/bin/prestate.bin.gz op-program/bin/prestate-proof-mt.json op-program/bin/prestate-mt.bin.gz op-program/bin/prestate-interop.bin.gz
$(DEVNET_CANNON_PRESTATE_FILES):
make cannon-prestate
make cannon-prestate-mt
make cannon-prestate-interop
cannon-prestates: cannon-prestate cannon-prestate-mt cannon-prestate-interop
.PHONY: cannon-prestates
cannon-prestate: op-program cannon ## Generates prestate using cannon and op-program
./cannon/bin/cannon load-elf --type singlethreaded-2 --path op-program/bin/op-program-client.elf --out op-program/bin/prestate.bin.gz --meta op-program/bin/meta.json
./cannon/bin/cannon run --proof-at '=0' --stop-at '=1' --input op-program/bin/prestate.bin.gz --meta op-program/bin/meta.json --proof-fmt 'op-program/bin/%d.json' --output ""
mv op-program/bin/0.json op-program/bin/prestate-proof.json
.PHONY: cannon-prestate
cannon-prestate-mt: op-program cannon ## Generates prestate using cannon and op-program in the latest 64-bit multithreaded cannon format
./cannon/bin/cannon load-elf --type multithreaded64-3 --path op-program/bin/op-program-client64.elf --out op-program/bin/prestate-mt.bin.gz --meta op-program/bin/meta-mt.json
./cannon/bin/cannon run --proof-at '=0' --stop-at '=1' --input op-program/bin/prestate-mt.bin.gz --meta op-program/bin/meta-mt.json --proof-fmt 'op-program/bin/%d-mt.json' --output ""
mv op-program/bin/0-mt.json op-program/bin/prestate-proof-mt.json
.PHONY: cannon-prestate-mt
cannon-prestate-interop: op-program cannon ## Generates interop prestate using cannon and op-program in the latest 64-bit multithreaded cannon format
./cannon/bin/cannon load-elf --type multithreaded64-3 --path op-program/bin/op-program-client-interop.elf --out op-program/bin/prestate-interop.bin.gz --meta op-program/bin/meta-interop.json
./cannon/bin/cannon run --proof-at '=0' --stop-at '=1' --input op-program/bin/prestate-interop.bin.gz --meta op-program/bin/meta-interop.json --proof-fmt 'op-program/bin/%d-interop.json' --output ""
mv op-program/bin/0-interop.json op-program/bin/prestate-proof-interop.json
.PHONY: cannon-prestate-interop
mod-tidy: ## Cleans up unused dependencies in Go modules
# Below GOPRIVATE line allows mod-tidy to be run immediately after
# releasing new versions. This bypasses the Go modules proxy, which
# can take a while to index new versions.
#
# See https://proxy.golang.org/ for more info.
export GOPRIVATE="github.com/ethereum-optimism" && go mod tidy
.PHONY: mod-tidy
clean: ## Removes all generated files under bin/
rm -rf ./bin
cd packages/contracts-bedrock/ && forge clean
.PHONY: clean
nuke: clean ## Completely clean the project directory
git clean -Xdf
.PHONY: nuke
test-unit: ## Runs unit tests for all components
make -C ./op-node test
make -C ./op-proposer test
make -C ./op-batcher test
make -C ./op-e2e test
(cd packages/contracts-bedrock && just test)
.PHONY: test-unit
# Remove the baseline-commit to generate a nebula reading & show all issues
semgrep: ## Runs Semgrep checks
$(eval DEV_REF := $(shell git rev-parse develop))
SEMGREP_REPO_NAME=ethereum-optimism/optimism semgrep ci --baseline-commit=$(DEV_REF)
.PHONY: semgrep
update-op-geth: ## Updates the Geth version used in the project
./ops/scripts/update-op-geth.py
.PHONY: update-op-geth
generate.sh
View file @
b243af30
#!/bin/bash
#!/bin/bash
./
op
node genesis l2
--deploy-config
./deployer/config.json
--l1-deployments
./deployer/artifact.json
--l2-allocs
./deployer/alloc.json
--outfile
.l2 ./deployer/genesis.json
--outfile
.rollup ./deployer/rollup.json
--l1-rpc
=
http://18.168.16.120:18888
./
bin/op-
node genesis l2
--deploy-config
./deployer/config.json
--l1-deployments
./deployer/artifact.json
--l2-allocs
./deployer/alloc.json
--outfile
.l2 ./deployer/genesis.json
--outfile
.rollup ./deployer/rollup.json
--l1-rpc
=
http://18.168.16.120:18888
init.sh
View file @
b243af30
#!/bin/bash
#!/bin/bash
rm
-rf
node
rm
-rf
node
./
op
node genesis init
--data-dir
node
--genesis
./deployer/genesis.json
./
bin/op-
node genesis init
--data-dir
node
--genesis
./deployer/genesis.json
start.sh
View file @
b243af30
#!/bin/bash
#!/bin/bash
source
.envrc
source
.envrc
echo
"l1=
$L1_RPC_URL
"
echo
"l1=
$L1_RPC_URL
"
./
op
node
\
./
bin/op-
node
\
--data-dir
node
\
--data-dir
node
\
--sequencer
.enabled
\
--sequencer
.enabled
\
--sequencer
.l1-confs
=
5
\
--sequencer
.l1-confs
=
5
\
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment