This repository has been archived by the owner on Sep 1, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Creating persistent configuration, but keeping config in Dockerfile a…
…nd not in github
- Loading branch information
Showing
12 changed files
with
151 additions
and
123 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
name: Build docker | ||
on: | ||
push: | ||
|
||
jobs: | ||
build-and-push-image: | ||
runs-on: ubuntu-22.04 | ||
permissions: | ||
contents: write | ||
packages: write | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
- name: Log into registry ${{ env.REGISTRY }} | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 14 | ||
|
||
- name: Build requirements | ||
run: | | ||
sudo apt install -y protobuf-compiler | ||
make configs webapp-build | ||
- name: Build and push Docker image for nodes | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: backend | ||
file: backend/Dockerfile.persistent | ||
push: true | ||
tags: ghcr.io/c4dt/service-stainless-persistent:latest | ||
|
||
- name: Build and push Docker image | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: webapp | ||
push: true | ||
tags: ghcr.io/c4dt/service-stainless-webapp:latest |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,41 @@ | ||
![Build Status](https://github.com/c4dt/service-stainless/actions/workflows/build.yml/badge.svg) | ||
# Stainless-ByzCoin Demonstrator has been Archived | ||
|
||
This repo has been archived and is only available to run the demo. | ||
|
||
# Stainless-ByzCoin Demonstrator | ||
|
||
The Stainless demonstrator shows how Stainless helps develop Smart Contracts free of errors. | ||
It provides an interactive environment where the user can verify prewritten Smart Contracts, | ||
deploy them on a blockchain, and call their functions. | ||
|
||
A first introductory scenario involves a Candy Shop that maintains its candy balance with a simple | ||
Smart Contract, which prevents people from cheating by taking away more candies than are available. | ||
A second scenario illustrates a bug in a Smart Contract that appeared on the Ethereum blockchain | ||
a few years ago, and led to a controversial fork to prevent significant monetary loss. | ||
It also explains how Stainless could have prevented it. | ||
|
||
Please refer to the [project's showcase](https://factory.c4dt.org/showcase/stainless-for-smart-contracts/presentation) | ||
for additional information on the project's theoretical background. | ||
|
||
## Running the Demo | ||
|
||
Steps to run locally: | ||
|
||
You first need to generate the node's configs | ||
``` | ||
make configs | ||
git clone https://github.com/c4dt/service-stainless | ||
cd service-stainless | ||
docker-compose up -d | ||
open localhost:8080 | ||
``` | ||
|
||
If you want our prebuilt images | ||
``` | ||
docker-compose pull | ||
``` | ||
Else if you want to build the images yourself | ||
``` | ||
make webapp-proto | ||
docker-compose build | ||
``` | ||
The demo has instructions how to run it. | ||
|
||
Launch it with | ||
``` | ||
docker-compose up | ||
``` | ||
## Persistent data | ||
|
||
On the first run, pre-computed data is copied to your repo at [./backend/configs]. | ||
It contains the state of the blockchain and some variables. | ||
|
||
And open a browser to http://localhost:80/stainless-demo/ | ||
If you want to start over, you have to: | ||
- delete the [./backend/configs] | ||
- [remove the local storage](https://intercom.help/scoutpad/en/articles/3478364-how-to-clear-local-storage-of-web-browser) | ||
from your browser |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
/build/ | ||
/configs/ | ||
/cothority/ | ||
/proto/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,19 @@ | ||
FROM golang:1 as builder | ||
FROM golang:1.21 as builder | ||
|
||
RUN apt update \ | ||
&& apt install --no-install-recommends --yes unzip | ||
|
||
COPY build/*.go build/go.* /src/main/ | ||
COPY *.go go.* /backend/ | ||
COPY cothority/ /backend/cothority/ | ||
COPY proto/ /backend/proto/ | ||
COPY stainless/ /backend/stainless/ | ||
COPY *.go go.* /src/ | ||
COPY cothority /src/cothority/ | ||
COPY proto /src/proto/ | ||
COPY stainless /src/stainless/ | ||
|
||
RUN cd /src/main && go build -v -o /conode | ||
|
||
COPY build/stainless.zip /tmp/ | ||
RUN unzip -d /stainless /tmp/stainless.zip | ||
|
||
FROM debian:bookworm-slim as runner | ||
|
||
# libgomp is needed for z3 | ||
|
@@ -16,16 +22,12 @@ RUN apt update \ | |
procps \ | ||
openjdk-17-jre-headless \ | ||
libgomp1 \ | ||
npm \ | ||
unzip \ | ||
npm \ | ||
&& apt clean | ||
RUN npm install --global [email protected] | ||
|
||
COPY build/cvc4 /usr/local/bin/ | ||
|
||
COPY build/stainless.zip /tmp/ | ||
RUN unzip -d /usr/local/bin /tmp/stainless.zip && rm -f /tmp/stainless.zip | ||
|
||
COPY --from=builder /conode /usr/local/bin/conode | ||
COPY --from=builder /conode /stainless /usr/local/bin/ | ||
|
||
ENTRYPOINT ["/usr/local/bin/conode"] | ||
CMD /usr/local/bin/conode -d 2 -c /config/private.toml server |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
FROM ghcr.io/c4dt/service-stainless-backend | ||
|
||
COPY configs /configs/ | ||
ENV CONODE_SERVICE_PATH=/config | ||
|
||
CMD ( mkdir -p /config; test -f /config/private.toml || cp -a /configs/conode-$NODE_NBR/* /config ); /usr/local/bin/conode -d 2 -c /config/private.toml server |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
/node_modules/ | ||
/dist/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,15 @@ | ||
FROM node:16-alpine AS builder | ||
FROM node:14-alpine AS builder | ||
|
||
WORKDIR /webapp | ||
|
||
COPY package*.json . | ||
COPY package*.json ./ | ||
RUN npm ci | ||
|
||
COPY . . | ||
RUN npx ng build --prod | ||
|
||
FROM joseluisq/static-web-server:2 AS runner | ||
FROM python:3 | ||
|
||
COPY --from=builder /webapp/dist /webapp | ||
|
||
WORKDIR /webapp | ||
ENV SERVER_ROOT=/webapp | ||
CMD python3 -m http.server 8080 --directory /webapp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.