From 360adee9f36b8402b7e9197a2ac08dd2d7198035 Mon Sep 17 00:00:00 2001 From: xander42280 Date: Sun, 13 Oct 2024 10:38:39 +0800 Subject: [PATCH 1/3] Add dockerfile --- Dockerfile | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..2d997cd5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,57 @@ +FROM rustlang/rust:nightly AS builder +RUN apt-get update && apt-get install -y \ + autoconf \ + automake \ + libtool \ + curl \ + make \ + gcc \ + g++ \ + unzip \ + pkg-config \ + openssl \ + libssl-dev \ + wget \ + vim \ + && rm -rf /var/lib/apt/lists/* + +# install musl cross compiler +RUN wget http://musl.cc/mips-linux-muslsf-cross.tgz +RUN mkdir -p "/root/.mipsrust" +RUN tar -xzf "mips-linux-muslsf-cross.tgz" -C "/root/.mipsrust" + +ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_LINKER="/root/.mipsrust/mips-linux-muslsf-cross/bin/mips-linux-muslsf-gcc" +ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_RUSTFLAGS='--cfg target_os="zkvm" -C target-feature=+crt-static -C link-arg=-g' + +# install golang +ENV GOLANG_VERSION 1.23.2 +ENV GOLANG_DOWNLOAD_URL https://go.dev/dl/ +ENV GOLANG_DOWNLOAD_SHA256_AMD64 542d3c1705f1c6a1c5a80d5dc62e2e45171af291e755d591c5e6531ef63b454e +ENV GOLANG_DOWNLOAD_SHA256_ARM64 f626cdd92fc21a88b31c1251f419c17782933a42903db87a174ce74eeecc66a9 + +RUN ARCH=$(uname -m) && \ + if [ "$ARCH" = "x86_64" ]; then \ + GOARCH=amd64; \ + GO_SHA256=$GOLANG_DOWNLOAD_SHA256_AMD64; \ + elif [ "$ARCH" = "aarch64" ]; then \ + GOARCH=arm64; \ + GO_SHA256=$GOLANG_DOWNLOAD_SHA256_ARM64; \ + else \ + echo "Unsupported architecture"; exit 1; \ + fi && \ + wget ${GOLANG_DOWNLOAD_URL}go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz && \ + echo "${GO_SHA256} go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz" | sha256sum -c - && \ + tar -C /usr/local -xzf go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz && \ + rm go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz +RUN git clone https://github.com/zkMIPS/zkm.git +# compile rust mips +RUN cd zkm/prover/examples/sha2-rust && cargo build -r --target=mips-unknown-linux-musl +RUN cd zkm/prover/examples/revme && cargo build -r --target=mips-unknown-linux-musl + +# compile examples +RUN cd zkm/prover && cargo build -r --examples + +# compile go mips +ENV PATH /usr/local/go/bin:$PATH +RUN cd zkm/prover/examples/add-go && GOOS=linux GOARCH=mips GOMIPS=softfloat go build . +RUN cd zkm/prover/examples/sha2-go && GOOS=linux GOARCH=mips GOMIPS=softfloat go build . \ No newline at end of file From a802aa2abd9f47a16c5bd53894cf42c2c7721c10 Mon Sep 17 00:00:00 2001 From: xander42280 Date: Sun, 13 Oct 2024 11:27:00 +0800 Subject: [PATCH 2/3] Remove compile --- Dockerfile | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2d997cd5..60e36113 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,10 +24,10 @@ ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_LINKER="/root/.mipsrust/mips-linux-musl ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_RUSTFLAGS='--cfg target_os="zkvm" -C target-feature=+crt-static -C link-arg=-g' # install golang -ENV GOLANG_VERSION 1.23.2 -ENV GOLANG_DOWNLOAD_URL https://go.dev/dl/ -ENV GOLANG_DOWNLOAD_SHA256_AMD64 542d3c1705f1c6a1c5a80d5dc62e2e45171af291e755d591c5e6531ef63b454e -ENV GOLANG_DOWNLOAD_SHA256_ARM64 f626cdd92fc21a88b31c1251f419c17782933a42903db87a174ce74eeecc66a9 +ENV GOLANG_VERSION=1.23.2 +ENV GOLANG_DOWNLOAD_URL=https://go.dev/dl/ +ENV GOLANG_DOWNLOAD_SHA256_AMD64=542d3c1705f1c6a1c5a80d5dc62e2e45171af291e755d591c5e6531ef63b454e +ENV GOLANG_DOWNLOAD_SHA256_ARM64=f626cdd92fc21a88b31c1251f419c17782933a42903db87a174ce74eeecc66a9 RUN ARCH=$(uname -m) && \ if [ "$ARCH" = "x86_64" ]; then \ @@ -43,15 +43,15 @@ RUN ARCH=$(uname -m) && \ echo "${GO_SHA256} go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz" | sha256sum -c - && \ tar -C /usr/local -xzf go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz && \ rm go${GOLANG_VERSION}.linux-${GOARCH}.tar.gz -RUN git clone https://github.com/zkMIPS/zkm.git -# compile rust mips -RUN cd zkm/prover/examples/sha2-rust && cargo build -r --target=mips-unknown-linux-musl -RUN cd zkm/prover/examples/revme && cargo build -r --target=mips-unknown-linux-musl -# compile examples -RUN cd zkm/prover && cargo build -r --examples +ENV PATH=/usr/local/go/bin:$PATH +# docker build -t zkm/zkmips:comiple . +# docker run -it --rm -v ./:/zkm zkm/zkmips:comiple +# compile rust mips +# cd /zkm/prover/examples/sha2-rust && cargo build -r --target=mips-unknown-linux-musl +# cd /zkm/prover/examples/revme && cargo build -r --target=mips-unknown-linux-musl # compile go mips -ENV PATH /usr/local/go/bin:$PATH -RUN cd zkm/prover/examples/add-go && GOOS=linux GOARCH=mips GOMIPS=softfloat go build . -RUN cd zkm/prover/examples/sha2-go && GOOS=linux GOARCH=mips GOMIPS=softfloat go build . \ No newline at end of file +# cd /zkm/prover/examples/add-go && GOOS=linux GOARCH=mips GOMIPS=softfloat go build . +# cd /zkm/prover/examples/sha2-go && GOOS=linux GOARCH=mips GOMIPS=softfloat go build . + From e6aaba1bf4b7155cf1f7ac66c8a55ef1ada6fce5 Mon Sep 17 00:00:00 2001 From: xander42280 Date: Sun, 13 Oct 2024 11:31:06 +0800 Subject: [PATCH 3/3] Desc --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 60e36113..98b87ba6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,8 +46,8 @@ RUN ARCH=$(uname -m) && \ ENV PATH=/usr/local/go/bin:$PATH -# docker build -t zkm/zkmips:comiple . -# docker run -it --rm -v ./:/zkm zkm/zkmips:comiple +# docker build -t zkm/zkmips:compile . +# docker run -it --rm -v ./:/zkm zkm/zkmips:compile # compile rust mips # cd /zkm/prover/examples/sha2-rust && cargo build -r --target=mips-unknown-linux-musl # cd /zkm/prover/examples/revme && cargo build -r --target=mips-unknown-linux-musl