mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 06:06:44 +00:00
feat: turn libscroll_zstd dynamic lib into static (#794)
* feat: remove .so file dependency of libscroll_zstd * bump version * remove wget installment * simplify dockerfile and add envs * revert alpine changes * fix * fix CI * update dependency * chore: auto version bump [bot] --------- Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
This commit is contained in:
parent
7c74239e49
commit
e162fbb7c0
9 changed files with 27 additions and 99 deletions
|
|
@ -2,7 +2,6 @@
|
||||||
ARG COMMIT=""
|
ARG COMMIT=""
|
||||||
ARG VERSION=""
|
ARG VERSION=""
|
||||||
ARG BUILDNUM=""
|
ARG BUILDNUM=""
|
||||||
ARG LIBSCROLL_ZSTD_VERSION=v0.1.0-rc0-ubuntu20.04
|
|
||||||
ARG SCROLL_LIB_PATH=/scroll/lib
|
ARG SCROLL_LIB_PATH=/scroll/lib
|
||||||
|
|
||||||
# Build libzkp dependency
|
# Build libzkp dependency
|
||||||
|
|
@ -28,14 +27,12 @@ FROM scrolltech/go-rust-builder:go-1.20-rust-nightly-2022-12-10 as builder
|
||||||
|
|
||||||
ADD . /go-ethereum
|
ADD . /go-ethereum
|
||||||
|
|
||||||
ARG LIBSCROLL_ZSTD_VERSION
|
|
||||||
ARG SCROLL_LIB_PATH
|
ARG SCROLL_LIB_PATH
|
||||||
|
|
||||||
RUN mkdir -p $SCROLL_LIB_PATH
|
RUN mkdir -p $SCROLL_LIB_PATH
|
||||||
|
|
||||||
COPY --from=zkp-builder /app/target/release/libzkp.so $SCROLL_LIB_PATH
|
COPY --from=zkp-builder /app/target/release/libzkp.so $SCROLL_LIB_PATH
|
||||||
COPY --from=zkp-builder /app/target/release/libzktrie.so $SCROLL_LIB_PATH
|
COPY --from=zkp-builder /app/target/release/libzktrie.so $SCROLL_LIB_PATH
|
||||||
RUN wget -O $SCROLL_LIB_PATH/libscroll_zstd.so https://github.com/scroll-tech/da-codec/releases/download/$LIBSCROLL_ZSTD_VERSION/libscroll_zstd.so
|
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
||||||
ENV CGO_LDFLAGS="-L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
ENV CGO_LDFLAGS="-L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
||||||
|
|
@ -46,21 +43,19 @@ RUN cd /go-ethereum && env GO111MODULE=on go run build/ci.go install -buildtags
|
||||||
FROM ubuntu:20.04
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
RUN apt-get -qq update \
|
RUN apt-get -qq update \
|
||||||
&& apt-get -qq install -y --no-install-recommends ca-certificates wget
|
&& apt-get -qq install -y --no-install-recommends ca-certificates
|
||||||
|
|
||||||
COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/
|
COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/
|
||||||
|
|
||||||
ARG LIBSCROLL_ZSTD_VERSION
|
|
||||||
ARG SCROLL_LIB_PATH
|
ARG SCROLL_LIB_PATH
|
||||||
|
|
||||||
RUN mkdir -p $SCROLL_LIB_PATH
|
RUN mkdir -p $SCROLL_LIB_PATH
|
||||||
|
|
||||||
COPY --from=zkp-builder /app/target/release/libzkp.so $SCROLL_LIB_PATH
|
COPY --from=zkp-builder /app/target/release/libzkp.so $SCROLL_LIB_PATH
|
||||||
COPY --from=zkp-builder /app/target/release/libzktrie.so $SCROLL_LIB_PATH
|
COPY --from=zkp-builder /app/target/release/libzktrie.so $SCROLL_LIB_PATH
|
||||||
RUN wget -O $SCROLL_LIB_PATH/libscroll_zstd.so https://github.com/scroll-tech/da-codec/releases/download/$LIBSCROLL_ZSTD_VERSION/libscroll_zstd.so
|
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
||||||
ENV CGO_LDFLAGS="-L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
ENV CGO_LDFLAGS="-ldl -L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
||||||
|
|
||||||
EXPOSE 8545 8546 30303 30303/udp
|
EXPOSE 8545 8546 30303 30303/udp
|
||||||
ENTRYPOINT ["geth"]
|
ENTRYPOINT ["geth"]
|
||||||
|
|
|
||||||
|
|
@ -2,43 +2,23 @@
|
||||||
ARG COMMIT=""
|
ARG COMMIT=""
|
||||||
ARG VERSION=""
|
ARG VERSION=""
|
||||||
ARG BUILDNUM=""
|
ARG BUILDNUM=""
|
||||||
ARG LIBSCROLL_ZSTD_VERSION=v0.1.0-rc0-ubuntu20.04
|
|
||||||
ARG SCROLL_LIB_PATH=/scroll/lib
|
ARG SCROLL_LIB_PATH=/scroll/lib
|
||||||
|
|
||||||
# Build Geth in a stock Go builder container
|
# Build Geth in a stock Go builder container
|
||||||
FROM scrolltech/go-rust-builder:go-1.20-rust-nightly-2022-12-10 as builder
|
FROM scrolltech/go-rust-builder:go-1.20-rust-nightly-2022-12-10 as builder
|
||||||
|
|
||||||
ADD . /go-ethereum
|
ADD . /go-ethereum
|
||||||
|
RUN cd /go-ethereum && env GO111MODULE=on go run build/ci.go install ./cmd/geth
|
||||||
ARG LIBSCROLL_ZSTD_VERSION
|
|
||||||
ARG SCROLL_LIB_PATH
|
|
||||||
|
|
||||||
RUN mkdir -p $SCROLL_LIB_PATH
|
|
||||||
|
|
||||||
RUN apt-get -qq update && apt-get -qq install -y wget
|
|
||||||
RUN wget -O $SCROLL_LIB_PATH/libscroll_zstd.so https://github.com/scroll-tech/da-codec/releases/download/$LIBSCROLL_ZSTD_VERSION/libscroll_zstd.so
|
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
|
||||||
ENV CGO_LDFLAGS="-L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
|
||||||
|
|
||||||
RUN cd /go-ethereum && env GO111MODULE=on go run build/ci.go install ./cmd/geth
|
RUN cd /go-ethereum && env GO111MODULE=on go run build/ci.go install ./cmd/geth
|
||||||
|
|
||||||
# Pull Geth into a second stage deploy alpine container
|
# Pull Geth into a second stage deploy alpine container
|
||||||
FROM ubuntu:20.04
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
|
ENV CGO_LDFLAGS="-ldl"
|
||||||
|
|
||||||
COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/
|
COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/
|
||||||
|
|
||||||
ARG LIBSCROLL_ZSTD_VERSION
|
|
||||||
ARG SCROLL_LIB_PATH
|
|
||||||
|
|
||||||
RUN mkdir -p $SCROLL_LIB_PATH
|
|
||||||
|
|
||||||
RUN apt-get -qq update && apt-get -qq install -y wget
|
|
||||||
RUN wget -O $SCROLL_LIB_PATH/libscroll_zstd.so https://github.com/scroll-tech/da-codec/releases/download/$LIBSCROLL_ZSTD_VERSION/libscroll_zstd.so
|
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
|
||||||
ENV CGO_LDFLAGS="-L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
|
||||||
|
|
||||||
EXPOSE 8545 8546 30303 30303/udp
|
EXPOSE 8545 8546 30303 30303/udp
|
||||||
ENTRYPOINT ["geth"]
|
ENTRYPOINT ["geth"]
|
||||||
|
|
||||||
|
|
|
||||||
29
Makefile
29
Makefile
|
|
@ -2,30 +2,22 @@
|
||||||
# with Go source code. If you know what GOPATH is then you probably
|
# with Go source code. If you know what GOPATH is then you probably
|
||||||
# don't need to bother with make.
|
# don't need to bother with make.
|
||||||
|
|
||||||
.PHONY: geth android ios evm all test clean libzkp libzstd
|
.PHONY: geth android ios evm all test clean libzkp
|
||||||
|
|
||||||
GOBIN = ./build/bin
|
GOBIN = ./build/bin
|
||||||
GO ?= latest
|
GO ?= latest
|
||||||
GORUN = go run
|
GORUN = env GO111MODULE=on go run
|
||||||
LIBSCROLL_ZSTD_VERSION = v0.1.0-rc0-ubuntu20.04
|
|
||||||
SCROLL_LIB_PATH = /scroll/lib
|
|
||||||
|
|
||||||
libzkp:
|
libzkp:
|
||||||
cd $(PWD)/rollup/circuitcapacitychecker/libzkp && make libzkp
|
cd $(PWD)/rollup/circuitcapacitychecker/libzkp && make libzkp
|
||||||
|
|
||||||
libzstd:
|
nccc_geth: ## geth without circuit capacity checker
|
||||||
@sudo mkdir -p $(SCROLL_LIB_PATH)
|
$(GORUN) build/ci.go install ./cmd/geth
|
||||||
@sudo wget -O $(SCROLL_LIB_PATH)/libscroll_zstd.so https://github.com/scroll-tech/da-codec/releases/download/$(LIBSCROLL_ZSTD_VERSION)/libscroll_zstd.so
|
|
||||||
|
|
||||||
nccc_geth: libzstd ## geth without circuit capacity checker
|
|
||||||
@LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(SCROLL_LIB_PATH)" CGO_LDFLAGS="-L$(SCROLL_LIB_PATH) -Wl,-rpath,$(SCROLL_LIB_PATH)" $(GORUN) build/ci.go install ./cmd/geth
|
|
||||||
@echo "Done building."
|
@echo "Done building."
|
||||||
@echo "Run \"$(GOBIN)/geth\" to launch geth."
|
@echo "Run \"$(GOBIN)/geth\" to launch geth."
|
||||||
|
|
||||||
geth: libzkp libzstd
|
geth: libzkp
|
||||||
@sudo cp $(PWD)/rollup/circuitcapacitychecker/libzkp/libzkp.so $(SCROLL_LIB_PATH)
|
$(GORUN) build/ci.go install -buildtags circuit_capacity_checker ./cmd/geth
|
||||||
@sudo cp $(PWD)/rollup/circuitcapacitychecker/libzkp/libzktrie.so $(SCROLL_LIB_PATH)
|
|
||||||
@LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(SCROLL_LIB_PATH)" CGO_LDFLAGS="-L$(SCROLL_LIB_PATH) -Wl,-rpath,$(SCROLL_LIB_PATH)" $(GORUN) build/ci.go install -buildtags circuit_capacity_checker ./cmd/geth
|
|
||||||
@echo "Done building."
|
@echo "Done building."
|
||||||
@echo "Run \"$(GOBIN)/geth\" to launch geth."
|
@echo "Run \"$(GOBIN)/geth\" to launch geth."
|
||||||
|
|
||||||
|
|
@ -44,14 +36,17 @@ ios:
|
||||||
@echo "Done building."
|
@echo "Done building."
|
||||||
@echo "Import \"$(GOBIN)/Geth.framework\" to use the library."
|
@echo "Import \"$(GOBIN)/Geth.framework\" to use the library."
|
||||||
|
|
||||||
test:
|
test: all
|
||||||
./run_test.sh
|
# genesis test
|
||||||
|
cd ${PWD}/cmd/geth; go test -test.run TestCustomGenesis
|
||||||
|
# module test
|
||||||
|
$(GORUN) build/ci.go test ./consensus ./core ./eth ./miner ./node ./trie ./rollup/...
|
||||||
|
|
||||||
lint: ## Run linters.
|
lint: ## Run linters.
|
||||||
$(GORUN) build/ci.go lint
|
$(GORUN) build/ci.go lint
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
go clean -cache
|
env GO111MODULE=on go clean -cache
|
||||||
rm -fr build/_workspace/pkg/ $(GOBIN)/*
|
rm -fr build/_workspace/pkg/ $(GOBIN)/*
|
||||||
|
|
||||||
# The devtools target installs tools required for 'go generate'.
|
# The devtools target installs tools required for 'go generate'.
|
||||||
|
|
|
||||||
|
|
@ -232,6 +232,9 @@ func doInstall(cmdline []string) {
|
||||||
// Show packages during build.
|
// Show packages during build.
|
||||||
gobuild.Args = append(gobuild.Args, "-v")
|
gobuild.Args = append(gobuild.Args, "-v")
|
||||||
|
|
||||||
|
// Add -ldl flags for libscroll_zstd.a.
|
||||||
|
gobuild.Args = append(gobuild.Args, "-ldflags", "-extldflags -ldl")
|
||||||
|
|
||||||
// Now we choose what we're even building.
|
// Now we choose what we're even building.
|
||||||
// Default: collect all 'main' packages in cmd/ and build those.
|
// Default: collect all 'main' packages in cmd/ and build those.
|
||||||
packages := flag.Args()
|
packages := flag.Args()
|
||||||
|
|
|
||||||
4
go.mod
4
go.mod
|
|
@ -50,8 +50,8 @@ require (
|
||||||
github.com/prometheus/tsdb v0.7.1
|
github.com/prometheus/tsdb v0.7.1
|
||||||
github.com/rjeczalik/notify v0.9.1
|
github.com/rjeczalik/notify v0.9.1
|
||||||
github.com/rs/cors v1.7.0
|
github.com/rs/cors v1.7.0
|
||||||
github.com/scroll-tech/da-codec v0.0.0-20240516115958-db04f5e6772c
|
github.com/scroll-tech/da-codec v0.0.0-20240605080813-32bfc9fccde7
|
||||||
github.com/scroll-tech/zktrie v0.8.4
|
github.com/scroll-tech/zktrie v0.8.2
|
||||||
github.com/shirou/gopsutil v3.21.11+incompatible
|
github.com/shirou/gopsutil v3.21.11+incompatible
|
||||||
github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4
|
github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4
|
||||||
github.com/stretchr/testify v1.9.0
|
github.com/stretchr/testify v1.9.0
|
||||||
|
|
|
||||||
8
go.sum
8
go.sum
|
|
@ -392,10 +392,10 @@ github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncj
|
||||||
github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
|
github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
|
||||||
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
|
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
|
||||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/scroll-tech/da-codec v0.0.0-20240516115958-db04f5e6772c h1:Vi1BGENMGO8yjmnJe6QP9Eb1OPPuEi4+wd8d/DxhJ6Q=
|
github.com/scroll-tech/da-codec v0.0.0-20240605080813-32bfc9fccde7 h1:CDrPMqifvAVyYqu0x1J5qickVV0b51tApPnOwDYLESI=
|
||||||
github.com/scroll-tech/da-codec v0.0.0-20240516115958-db04f5e6772c/go.mod h1:1wWYii0OPwd5kw+xrz0PFgS420xNadrNF1x/ELJT+TM=
|
github.com/scroll-tech/da-codec v0.0.0-20240605080813-32bfc9fccde7/go.mod h1:1wWYii0OPwd5kw+xrz0PFgS420xNadrNF1x/ELJT+TM=
|
||||||
github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE=
|
github.com/scroll-tech/zktrie v0.8.2 h1:UMuIfA+jdgWMLmTgTL64Emo+zzMOdcnH0+eYdDcshxQ=
|
||||||
github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk=
|
github.com/scroll-tech/zktrie v0.8.2/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk=
|
||||||
github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
|
github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
|
||||||
github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
|
github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import (
|
||||||
const (
|
const (
|
||||||
VersionMajor = 5 // Major version component of the current release
|
VersionMajor = 5 // Major version component of the current release
|
||||||
VersionMinor = 3 // Minor version component of the current release
|
VersionMinor = 3 // Minor version component of the current release
|
||||||
VersionPatch = 35 // Patch version component of the current release
|
VersionPatch = 36 // Patch version component of the current release
|
||||||
VersionMeta = "mainnet" // Version metadata to append to the version string
|
VersionMeta = "mainnet" // Version metadata to append to the version string
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# Running unit tests
|
|
||||||
|
|
||||||
Follow these steps to run unit tests, in the repo's root dir:
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull scrolltech/go-rust-builder:go-1.21-rust-nightly-2023-12-03 --platform linux/amd64
|
|
||||||
docker run -it --rm -v "$(PWD):/workspace" -w /workspace scrolltech/go-rust-builder:go-1.21-rust-nightly-2023-12-03
|
|
||||||
|
|
||||||
export LIBSCROLL_ZSTD_VERSION=v0.1.0-rc0-ubuntu20.04
|
|
||||||
export SCROLL_LIB_PATH=/scroll/lib
|
|
||||||
|
|
||||||
mkdir -p $SCROLL_LIB_PATH
|
|
||||||
wget -O $SCROLL_LIB_PATH/libscroll_zstd.so https://github.com/scroll-tech/da-codec/releases/download/$LIBSCROLL_ZSTD_VERSION/libscroll_zstd.so
|
|
||||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
|
||||||
export CGO_LDFLAGS="-L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
|
||||||
go test -v -race ./rollup/rollup_sync_service/...
|
|
||||||
```
|
|
||||||
28
run_test.sh
28
run_test.sh
|
|
@ -1,28 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Download .so files
|
|
||||||
export LIBSCROLL_ZSTD_VERSION=v0.1.0-rc0-ubuntu20.04
|
|
||||||
export SCROLL_LIB_PATH=/scroll/lib
|
|
||||||
|
|
||||||
sudo mkdir -p $SCROLL_LIB_PATH
|
|
||||||
|
|
||||||
sudo wget -O $SCROLL_LIB_PATH/libscroll_zstd.so https://github.com/scroll-tech/da-codec/releases/download/$LIBSCROLL_ZSTD_VERSION/libscroll_zstd.so
|
|
||||||
|
|
||||||
# Set the environment variable
|
|
||||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SCROLL_LIB_PATH
|
|
||||||
export CGO_LDFLAGS="-L$SCROLL_LIB_PATH -Wl,-rpath,$SCROLL_LIB_PATH"
|
|
||||||
|
|
||||||
# Download and install the project dependencies
|
|
||||||
go run build/ci.go install
|
|
||||||
go get ./...
|
|
||||||
|
|
||||||
# Save the root directory of the project
|
|
||||||
ROOT_DIR=$(pwd)
|
|
||||||
|
|
||||||
# Run genesis test
|
|
||||||
cd $ROOT_DIR/cmd/geth
|
|
||||||
go test -test.run TestCustomGenesis
|
|
||||||
|
|
||||||
# Run module tests
|
|
||||||
cd $ROOT_DIR
|
|
||||||
go run build/ci.go test ./consensus ./core ./eth ./miner ./node ./trie ./rollup/...
|
|
||||||
Loading…
Reference in a new issue