Skip to content

Commit 5e91f7d

Browse files
committed
rebase v1.24
fix: update docker fix: genesis new command feat: add network info command
1 parent 3699691 commit 5e91f7d

File tree

10 files changed

+241
-249
lines changed

10 files changed

+241
-249
lines changed

Dockerfile

+19-127
Original file line numberDiff line numberDiff line change
@@ -1,136 +1,28 @@
1-
#####################################
2-
FROM golang:1.19.12-bullseye AS lotus-builder
3-
MAINTAINER Lotus Development Team
1+
ARG RUNTIME_TAG=v1.14.0
42

5-
RUN apt-get update && apt-get install -y ca-certificates build-essential clang ocl-icd-opencl-dev ocl-icd-libopencl1 jq libhwloc-dev
3+
FROM filvenus/venus-buildenv:v1.14.0 AS buildenv
64

7-
ENV XDG_CACHE_HOME="/tmp"
5+
WORKDIR /build
86

9-
### taken from https://github.com/rust-lang/docker-rust/blob/master/1.63.0/buster/Dockerfile
10-
ENV RUSTUP_HOME=/usr/local/rustup \
11-
CARGO_HOME=/usr/local/cargo \
12-
PATH=/usr/local/cargo/bin:$PATH \
13-
RUST_VERSION=1.63.0
7+
ENV GOPROXY="https://goproxy.cn,direct"
148

15-
RUN set -eux; \
16-
dpkgArch="$(dpkg --print-architecture)"; \
17-
case "${dpkgArch##*-}" in \
18-
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='5cc9ffd1026e82e7fb2eec2121ad71f4b0f044e88bca39207b3f6b769aaa799c' ;; \
19-
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='e189948e396d47254103a49c987e7fb0e5dd8e34b200aa4481ecc4b8e41fb929' ;; \
20-
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
21-
esac; \
22-
url="https://static.rust-lang.org/rustup/archive/1.25.1/${rustArch}/rustup-init"; \
23-
wget "$url"; \
24-
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
25-
chmod +x rustup-init; \
26-
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
27-
rm rustup-init; \
28-
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
29-
rustup --version; \
30-
cargo --version; \
31-
rustc --version;
9+
COPY ./go.mod /build/
10+
COPY ./exter[n] ./go.mod /build/extern/
11+
RUN go mod download
3212

33-
COPY ./ /opt/filecoin
34-
WORKDIR /opt/filecoin
13+
COPY . /build
14+
RUN make dist-clean
15+
RUN make deps
16+
RUN make force
3517

36-
RUN scripts/docker-git-state-check.sh
18+
FROM filvenus/venus-runtime:${RUNTIME_TAG}
3719

38-
### make configurable filecoin-ffi build
39-
ARG FFI_BUILD_FROM_SOURCE=0
40-
ENV FFI_BUILD_FROM_SOURCE=${FFI_BUILD_FROM_SOURCE}
20+
ARG BUILD_TARGET=
21+
ENV VENUS_COMPONENT=${BUILD_TARGET}
4122

42-
RUN make clean deps
23+
# copy the app from build env
24+
COPY --from=buildenv /build/lotus /lotus
25+
COPY --from=buildenv /build/lotus-miner /lotus-miner
26+
COPY --from=buildenv /build/lotus-seed /lotus-seed
4327

44-
ARG RUSTFLAGS=""
45-
ARG GOFLAGS=""
46-
47-
RUN make buildall
48-
49-
#####################################
50-
FROM ubuntu:20.04 AS lotus-base
51-
MAINTAINER Lotus Development Team
52-
53-
# Base resources
54-
COPY --from=lotus-builder /etc/ssl/certs /etc/ssl/certs
55-
COPY --from=lotus-builder /lib/*/libdl.so.2 /lib/
56-
COPY --from=lotus-builder /lib/*/librt.so.1 /lib/
57-
COPY --from=lotus-builder /lib/*/libgcc_s.so.1 /lib/
58-
COPY --from=lotus-builder /lib/*/libutil.so.1 /lib/
59-
COPY --from=lotus-builder /usr/lib/*/libltdl.so.7 /lib/
60-
COPY --from=lotus-builder /usr/lib/*/libnuma.so.1 /lib/
61-
COPY --from=lotus-builder /usr/lib/*/libhwloc.so.* /lib/
62-
COPY --from=lotus-builder /usr/lib/*/libOpenCL.so.1 /lib/
63-
64-
RUN useradd -r -u 532 -U fc \
65-
&& mkdir -p /etc/OpenCL/vendors \
66-
&& echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
67-
68-
#####################################
69-
FROM lotus-base AS lotus
70-
MAINTAINER Lotus Development Team
71-
72-
COPY --from=lotus-builder /opt/filecoin/lotus /usr/local/bin/
73-
COPY --from=lotus-builder /opt/filecoin/lotus-shed /usr/local/bin/
74-
COPY scripts/docker-lotus-entrypoint.sh /
75-
76-
ARG DOCKER_LOTUS_IMPORT_SNAPSHOT https://snapshots.mainnet.filops.net/minimal/latest
77-
ENV DOCKER_LOTUS_IMPORT_SNAPSHOT ${DOCKER_LOTUS_IMPORT_SNAPSHOT}
78-
ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters
79-
ENV LOTUS_PATH /var/lib/lotus
80-
ENV DOCKER_LOTUS_IMPORT_WALLET ""
81-
82-
RUN mkdir /var/lib/lotus /var/tmp/filecoin-proof-parameters
83-
RUN chown fc: /var/lib/lotus /var/tmp/filecoin-proof-parameters
84-
85-
VOLUME /var/lib/lotus
86-
VOLUME /var/tmp/filecoin-proof-parameters
87-
88-
USER fc
89-
90-
EXPOSE 1234
91-
92-
ENTRYPOINT ["/docker-lotus-entrypoint.sh"]
93-
94-
CMD ["-help"]
95-
96-
#####################################
97-
FROM lotus-base AS lotus-all-in-one
98-
99-
ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters
100-
ENV LOTUS_MINER_PATH /var/lib/lotus-miner
101-
ENV LOTUS_PATH /var/lib/lotus
102-
ENV LOTUS_WORKER_PATH /var/lib/lotus-worker
103-
ENV WALLET_PATH /var/lib/lotus-wallet
104-
105-
COPY --from=lotus-builder /opt/filecoin/lotus /usr/local/bin/
106-
COPY --from=lotus-builder /opt/filecoin/lotus-seed /usr/local/bin/
107-
COPY --from=lotus-builder /opt/filecoin/lotus-shed /usr/local/bin/
108-
COPY --from=lotus-builder /opt/filecoin/lotus-wallet /usr/local/bin/
109-
COPY --from=lotus-builder /opt/filecoin/lotus-gateway /usr/local/bin/
110-
COPY --from=lotus-builder /opt/filecoin/lotus-miner /usr/local/bin/
111-
COPY --from=lotus-builder /opt/filecoin/lotus-worker /usr/local/bin/
112-
COPY --from=lotus-builder /opt/filecoin/lotus-stats /usr/local/bin/
113-
COPY --from=lotus-builder /opt/filecoin/lotus-fountain /usr/local/bin/
114-
115-
RUN mkdir /var/tmp/filecoin-proof-parameters
116-
RUN mkdir /var/lib/lotus
117-
RUN mkdir /var/lib/lotus-miner
118-
RUN mkdir /var/lib/lotus-worker
119-
RUN mkdir /var/lib/lotus-wallet
120-
RUN chown fc: /var/tmp/filecoin-proof-parameters
121-
RUN chown fc: /var/lib/lotus
122-
RUN chown fc: /var/lib/lotus-miner
123-
RUN chown fc: /var/lib/lotus-worker
124-
RUN chown fc: /var/lib/lotus-wallet
125-
126-
127-
VOLUME /var/tmp/filecoin-proof-parameters
128-
VOLUME /var/lib/lotus
129-
VOLUME /var/lib/lotus-miner
130-
VOLUME /var/lib/lotus-worker
131-
VOLUME /var/lib/lotus-wallet
132-
133-
EXPOSE 1234
134-
EXPOSE 2345
135-
EXPOSE 3456
136-
EXPOSE 1777
28+
# ENTRYPOINT ["/script/init.sh"]

Makefile

+26
Original file line numberDiff line numberDiff line change
@@ -379,3 +379,29 @@ print-%:
379379

380380
circleci:
381381
go generate -x ./.circleci
382+
383+
TAG:=test
384+
docker: $(BUILD_DEPS)
385+
# ifdef DOCKERFILE
386+
# cp $(DOCKERFILE) ./dockerfile
387+
# else
388+
# curl -o dockerfile https://raw.githubusercontent.com/filecoin-project/venus-docs/master/script/docker/dockerfile
389+
# endif
390+
docker build --build-arg HTTPS_PROXY=$(BUILD_DOCKER_PROXY) --build-arg BUILD_TARGET=lotus -t lotus .
391+
docker tag lotus filvenus/lotus:$(TAG)
392+
ifdef PRIVATE_REGISTRY
393+
docker tag lotus $(PRIVATE_REGISTRY)/filvenus/lotus:$(TAG)
394+
endif
395+
.PHONY: docker
396+
397+
docker-push: docker
398+
ifdef PRIVATE_REGISTRY
399+
docker push $(PRIVATE_REGISTRY)/filvenus/lotus:$(TAG)
400+
docker tag $(PRIVATE_REGISTRY)/filvenus/lotus:$(TAG) $(PRIVATE_REGISTRY)/filvenus/lotus:latest
401+
docker push $(PRIVATE_REGISTRY)/filvenus/lotus:latest
402+
else
403+
docker push filvenus/lotus:$(TAG)
404+
docker tag filvenus/lotus:$(TAG) filvenus/lotus:latest
405+
docker push filvenus/lotus:latest
406+
endif
407+
.PHONY: docker-push

build/params_force.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ const GenesisFile = ""
2121

2222
var NetworkBundle = "testing"
2323
var BundleOverrides map[actorstypes.Version]string
24+
var ActorDebugging = true
2425

25-
const GenesisNetworkVersion = network.Version18
26+
const GenesisNetworkVersion = network.Version20
2627

2728
var UpgradeBreezeHeight = abi.ChainEpoch(-1)
2829

@@ -60,9 +61,11 @@ var UpgradeSharkHeight = abi.ChainEpoch(-20)
6061

6162
var UpgradeHyggeHeight = abi.ChainEpoch(-21)
6263

63-
var UpgradeLightningHeight = abi.ChainEpoch(30)
64+
var UpgradeLightningHeight = abi.ChainEpoch(-22)
6465

65-
var UpgradeThunderHeight = abi.ChainEpoch(1000)
66+
var UpgradeThunderHeight = abi.ChainEpoch(-23)
67+
68+
var UpgradeWatermelonHeight = abi.ChainEpoch(200)
6669

6770
var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
6871
0: DrandMainnet,
@@ -140,4 +143,8 @@ const InteractivePoRepConfidence = 6
140143

141144
const BootstrapPeerThreshold = 1
142145

146+
// ChainId defines the chain ID used in the Ethereum JSON-RPC endpoint.
147+
// As per https://github.com/ethereum-lists/chains
148+
const Eip155ChainId = 31415926
149+
143150
var WhitelistedBlock = cid.Undef

chain/stmgr/forks.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -174,13 +174,16 @@ func (us UpgradeSchedule) GetNtwkVersion(e abi.ChainEpoch) (network.Version, err
174174
return build.GenesisNetworkVersion, nil
175175
}
176176

177+
// noMigrationResultCache will not use cached migration results
178+
var noMigrationResultCache = os.Getenv("LOTUS_NO_MIGRATION_RESULT_CACHE") == "1"
179+
177180
func (sm *StateManager) HandleStateForks(ctx context.Context, root cid.Cid, height abi.ChainEpoch, cb ExecMonitor, ts *types.TipSet) (cid.Cid, error) {
178181
retCid := root
179182
u := sm.stateMigrations[height]
180183
if u != nil && u.upgrade != nil {
181184
migCid, ok, err := u.migrationResultCache.Get(ctx, root)
182185
if err == nil {
183-
if ok {
186+
if ok && !noMigrationResultCache {
184187
log.Infow("CACHED migration", "height", height, "from", root, "to", migCid)
185188
return migCid, nil
186189
}

cli/state.go

+28-5
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ var StateCmd = &cli.Command{
7878
StateMinerInfo,
7979
StateMarketCmd,
8080
StateExecTraceCmd,
81-
StateNtwkVersionCmd,
81+
StateNtwkInfoCmd,
8282
StateMinerProvingDeadlineCmd,
8383
StateSysActorCIDsCmd,
8484
},
@@ -1836,9 +1836,9 @@ var stateMarketBalanceCmd = &cli.Command{
18361836
},
18371837
}
18381838

1839-
var StateNtwkVersionCmd = &cli.Command{
1840-
Name: "network-version",
1841-
Usage: "Returns the network version",
1839+
var StateNtwkInfoCmd = &cli.Command{
1840+
Name: "network-info",
1841+
Usage: "Returns the network info",
18421842
Action: func(cctx *cli.Context) error {
18431843
if cctx.Args().Present() {
18441844
return ShowHelp(cctx, fmt.Errorf("doesn't expect any arguments"))
@@ -1862,7 +1862,30 @@ var StateNtwkVersionCmd = &cli.Command{
18621862
return err
18631863
}
18641864

1865-
fmt.Printf("Network Version: %d\n", nv)
1865+
params, err := api.StateGetNetworkParams(ctx)
1866+
if err != nil {
1867+
return err
1868+
}
1869+
1870+
partUpgradeHeight := func() []string {
1871+
var out []string
1872+
rv := reflect.ValueOf(params.ForkUpgradeParams)
1873+
rt := rv.Type()
1874+
numField := rt.NumField()
1875+
for i := numField - 3; i < numField; i++ {
1876+
out = append(out, fmt.Sprintf("%s: %v", rt.Field(i).Name, rv.Field(i).Interface()))
1877+
}
1878+
return out
1879+
}
1880+
1881+
fmt.Println("Network Name:", params.NetworkName)
1882+
fmt.Println("Network Version:", nv)
1883+
for _, one := range partUpgradeHeight() {
1884+
fmt.Println(one)
1885+
}
1886+
fmt.Println("BlockDelaySecs:", params.BlockDelaySecs)
1887+
fmt.Println("PreCommitChallengeDelay:", params.PreCommitChallengeDelay)
1888+
// fmt.Println("Chain ID:", params.Eip155ChainID)
18661889

18671890
return nil
18681891
},

cmd/lotus-seed/genesis.go

+10-4
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,22 @@ var genesisNewCmd = &cli.Command{
5757
if !cctx.Args().Present() {
5858
return xerrors.New("seed genesis new [genesis.json]")
5959
}
60+
networkName := cctx.String("network-name")
61+
if len(networkName) == 0 {
62+
// If it is a force network, use forcenet as the network name.
63+
if strings.Contains(build.UserVersion(), "force") {
64+
networkName = "forcenet"
65+
} else {
66+
networkName = "localnet-" + uuid.New().String()
67+
}
68+
}
6069
out := genesis.Template{
6170
NetworkVersion: build.GenesisNetworkVersion,
6271
Accounts: []genesis.Actor{},
6372
Miners: []genesis.Miner{},
6473
VerifregRootKey: gen.DefaultVerifregRootkeyActor,
6574
RemainderAccount: gen.DefaultRemainderAccountActor,
66-
NetworkName: cctx.String("network-name"),
67-
}
68-
if out.NetworkName == "" {
69-
out.NetworkName = "localnet-" + uuid.New().String()
75+
NetworkName: networkName,
7076
}
7177

7278
genb, err := json.MarshalIndent(&out, "", " ")

0 commit comments

Comments
 (0)