From e41f78ab0ce3b785bd7254bb08157aa13c4ffd6b Mon Sep 17 00:00:00 2001 From: geleeroyale Date: Thu, 15 Jun 2023 15:43:17 +0200 Subject: [PATCH 1/3] mvp --- dappnode_package.json | 35 +++++------------------------------ docker-compose.yml | 38 ++++++++++++++------------------------ releases.json | 18 +++--------------- 3 files changed, 22 insertions(+), 69 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index e15f4e1..8a6c67a 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,37 +1,12 @@ { "name": "trueblocks.public.dappnode.eth", - "version": "0.50.0", - "shortDescription": "Lightweight indexing for any EVM-based blockchain", - "description": "TrueBlocks is a collection of libraries, tools, and applications that improve access to the Ethereum data while remaining fully local. To configure, go to configure.trueblocks.public.dappnode", + "version": "0.1.0", + "description": "TrueBlocks packaged for DAppNode", "type": "service", - "mainService": "core", - "author": "TrueBlocks, LLC. (https://trueblocks.io)", - "contributors": [], - "categories": ["Developer tools", "Blockchain", "Communications"], - "keywords": ["trueblocks", "index", "indexing", "ipfs", "data"], - "backup": [ - { - "name": "trueblocks_data", - "path": "/root/.local/share/trueblocks", - "service": "core" - } - ], - "exposable": [], - "repository": { - "type": "git", - "url": "https://github.com/TrueBlocks/trueblocks-dappnode" - }, - "bugs": { - "url": "https://github.com/TrueBlocks/trueblocks-dappnode/issues" - }, - "warnings": { - "onInstall": "After installing TrueBlocks, please go to Packages -> TrueBlocks and click Settings link to configure this package." - }, + "author": "geleeroyale", + "categories": ["Developer tools"], "links": { - "settings": "http://configure.trueblocks.public.dappnode", - "api": "http://trueblocks.public.dappnode:8080", - "readme": "https://github.com/TrueBlocks/trueblocks-dappnode", "homepage": "https://trueblocks.io" }, - "license": "GLP-3.0" + "license": "GPL-3.0" } diff --git a/docker-compose.yml b/docker-compose.yml index fa457d6..d6da85f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,29 +1,19 @@ version: "3.5" services: - core: - image: "trueblocks/core:v0.50.0-beta" - entrypoint: | - bash -c "\ - while [ ! -f /configuration/entrypoint.sh ] \ - do \ - echo No configuration found. Please use TrueBlocks Configuration Tool first. \ - echo If you are using DAppNode, click Info tab above, then Settings link. \ - echo Will try to re-read the configuration in a few seconds \ - sleep 5 \ - done \ - . /configuration/configuration.sh && \ - sh /configuration/entrypoint.sh" - ports: - - "8080:8080/tcp" - restart: unless-stopped - volumes: - - "configuration:/configuration" - - "trueblocks:/root/.local/share/trueblocks" - configure: - image: "trueblocks/config:v0.44.0-beta" + trueblocks.public.dappnode.eth: + build: . + image: "trueblocks.public.dappnode.eth:0.1.0" + environment: + TB_SETTINGS_DEFAULTCHAIN: mainnet + TB_CHAINS_MAINNET_RPCPROVIDER: "http://erigon.dappnode:8545" + TB_SETTINGS_CACHEPATH: /cache + TB_SETTINGS_INDEXPATH: /unchained restart: unless-stopped + ports: + - "8085:8080" volumes: - - "configuration:/output" + - "cache:/cache" + - "unchained:/unchained" volumes: - configuration: {} - trueblocks: {} + cache: {} + unchained: {} diff --git a/releases.json b/releases.json index aa7fda7..a5b0c13 100644 --- a/releases.json +++ b/releases.json @@ -1,20 +1,8 @@ { - "0.37.0": { - "hash": "/ipfs/Qmc1TBFy7neU151bjQWmNygwowScwk4yFXXMuukjFAeEFJ", + "0.0.1": { + "hash": "/ipfs/QmcayDk4G4i3WEVErBUeC5sXzuPaAz9Jxk4aEo34TZWxSg", "uploadedTo": { - "dappnode": "Thu, 07 Jul 2022 11:46:29 GMT" - } - }, - "0.45.0": { - "hash": "/ipfs/QmZZfEGDKu5tNyERx15pnABvc6wTBCqWetuTV8fzRYosUS", - "uploadedTo": { - "dappnode": "Thu, 22 Dec 2022 12:00:59 GMT" - } - }, - "0.50.0": { - "hash": "/ipfs/QmUk3f97DK2AVC4HRtnnHJjFB24C5ywP748p9FwGossTou", - "uploadedTo": { - "dappnode": "Fri, 23 Dec 2022 07:19:08 GMT" + "http://172.33.1.5:5001": "Thu, 15 Jun 2023 12:10:27 GMT" } } } From 1c0046d0808bd71f817243625a72dbf437aaad59 Mon Sep 17 00:00:00 2001 From: geleeroyale Date: Thu, 15 Jun 2023 15:47:09 +0200 Subject: [PATCH 2/3] upgrade to 0.70.0-beta --- Dockerfile | 38 ++ configuration/docker/Dockerfile | 32 -- configuration/go.mod | 3 - configuration/main.go | 243 ----------- configuration/static/index.html | 712 -------------------------------- configuration/static/logo.png | Bin 61526 -> 0 bytes 6 files changed, 38 insertions(+), 990 deletions(-) create mode 100644 Dockerfile delete mode 100644 configuration/docker/Dockerfile delete mode 100644 configuration/go.mod delete mode 100644 configuration/main.go delete mode 100644 configuration/static/index.html delete mode 100644 configuration/static/logo.png diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3918b1e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +FROM golang:1.20-alpine as builder + +RUN apk --no-cache add g++ gcc make cmake git nano libcurl python3 python3-dev \ + curl bash curl-dev linux-headers sqlite-dev sed + +WORKDIR /root + +# ARG UPSTREAM_VER=feature/docker-version +# ADD https://api.github.com/repos/TrueBlocks/trueblocks-core/git/refs/heads/$UPSTREAM_VER version.json + +# UPDATE_VERSION_HERE +ARG UPSTREAM_VER=v0.70.0-beta +# ARG UPSTREAM_VER=develop +RUN git clone -b "${UPSTREAM_VER}" --single-branch --progress --depth 1 \ + https://github.com/TrueBlocks/trueblocks-core.git && \ + cd trueblocks-core && \ + cat src/libs/CMakeLists.txt | grep -v "test-libs" >x && \ + cat x >src/libs/CMakeLists.txt && \ + cat src/CMakeLists.txt | grep -v "examples" | grep -v dev_tools >x && \ + cat x >src/CMakeLists.txt && \ + rm -f x && \ + mkdir -p build && \ + cd build && \ + cmake ../src && \ + make -j 5 + +FROM alpine:latest + +RUN apk --no-cache add gzip libstdc++ libgcc libcurl python3 python3-dev procps bash curl nano findutils + +COPY --from=builder /root/trueblocks-core/bin /usr/local/bin +COPY --from=builder /root/.local/bin/chifra /root/.local/bin/chifra +COPY --from=builder /root/.local/share/trueblocks /root/.local/share/trueblocks + +ARG SERVE_PORT=8080 +EXPOSE ${SERVE_PORT} + +CMD ["chifra", "daemon", "--api", "on", "--scrape", "index"] diff --git a/configuration/docker/Dockerfile b/configuration/docker/Dockerfile deleted file mode 100644 index 14a3416..0000000 --- a/configuration/docker/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -# Latest golang as builder -FROM golang:1.18-alpine as builder - -# Install build depenedencies -RUN apk --no-cache add git nano - -# Set workdir -WORKDIR /root - -# Try to get upstream version (default v0.44.0-beta) -ARG UPSTREAM_VER=v0.44.0-beta - -# Clone and make TrueBlocks Core -# make -j 5 is a fairly safe number -RUN git clone -b "${UPSTREAM_VER}" --single-branch --progress --depth 1 \ - https://github.com/TrueBlocks/trueblocks-dappnode.git && \ - cd trueblocks-dappnode/configuration && go build -o server - -# Switch to alpine container -FROM alpine:latest - -# Install binary dependencies and nice to haves -RUN apk --no-cache add nano - -# Copy files from builder -COPY --from=builder /root/trueblocks-dappnode/configuration/server /app/server -COPY --from=builder /root/trueblocks-dappnode/configuration/static /app/static - -EXPOSE 80 - -# Run entrypoint -ENTRYPOINT /app/server --static /app/static diff --git a/configuration/go.mod b/configuration/go.mod deleted file mode 100644 index 5f86150..0000000 --- a/configuration/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/TrueBlocks/trueblocks-dappnode/configuration - -go 1.18 diff --git a/configuration/main.go b/configuration/main.go deleted file mode 100644 index b9ccfea..0000000 --- a/configuration/main.go +++ /dev/null @@ -1,243 +0,0 @@ -package main - -import ( - "encoding/json" - "flag" - "fmt" - "io/ioutil" - "log" - "net/http" - "os" - "path" - "strconv" - "strings" -) - -type ConfigurationItem struct { - Name string - Rpc string - ChainId string - Symbol string - IpfsGateway string - LocalExplorer string - RemoteExplorer string - ScraperArgs string - ScraperFile string -} - -type GlobalConfiguration struct { - RunScraper bool - InitBlooms bool - InitIndex bool - MonitorArgs string - MonitorFile string - EtherscanKey string - DefaultGateway string -} - -type ConfigurationPost struct { - Global GlobalConfiguration - Chains []ConfigurationItem -} - -func EnvsFromConfiguration(item ConfigurationItem) string { - var b strings.Builder - - prefix := fmt.Sprintf("export TB_CHAINS_%s_", strings.ToUpper(item.Name)) - b.WriteString(prefix + "CHAINID=" + item.ChainId + "\n") - b.WriteString(prefix + "RPCPROVIDER=" + item.Rpc + "\n") - b.WriteString(prefix + "SYMBOL=" + item.Symbol + "\n") - - if item.IpfsGateway != "" { - b.WriteString(prefix + "IPFSGATEWAY=" + item.IpfsGateway + "\n") - } - if item.LocalExplorer != "" { - b.WriteString(prefix + "LOCALEXPLORER=" + item.LocalExplorer + "\n") - } - if item.RemoteExplorer != "" { - b.WriteString(prefix + "REMOTEEXPLORER=" + item.RemoteExplorer + "\n") - } - if item.ScraperArgs != "" { - b.WriteString(fmt.Sprintf("export SCRAPER_%s_ARGS=%s\n", strings.ToUpper(item.Name), normalizeUserInput(item.ScraperArgs))) - } - if item.ScraperFile != "" { - b.WriteString(fmt.Sprintf("export SCRAPER_%s_FILE=%s\n", strings.ToUpper(item.Name), normalizeUserInput(item.ScraperFile))) - } - - return b.String() -} - -func WriteEnvFile(path string, contents string) (err error) { - file, err := os.Create(path) - defer func() { - err := file.Close() - if err != nil { - panic(err) - } - }() - if err != nil { - return - } - - _, err = file.WriteString(contents) - if err != nil { - return - } - - return nil -} - -func normalizeUserInput(content string) string { - return strconv.Quote(content) -} - -func SaveConfiguration(path string, config ConfigurationPost) (err error) { - lines := []string{ - "#!/bin/bash", - fmt.Sprint("export RUN_SCRAPER=", config.Global.RunScraper), - fmt.Sprint("export BOOTSTRAP_BLOOM_FILTERS=", config.Global.InitBlooms), - fmt.Sprint("export BOOTSTRAP_FULL_INDEX=", config.Global.InitIndex), - fmt.Sprint("export TB_KEYS_ETHERSCAN_APIKEY=", normalizeUserInput(config.Global.EtherscanKey)), - fmt.Sprint("export TB_SETTINGS_DEFAULTGATEWAY=", config.Global.DefaultGateway), - } - if config.Global.MonitorArgs != "" { - lines = append(lines, fmt.Sprint("export MONITORS_ARGS=", normalizeUserInput(config.Global.MonitorArgs))) - } - if config.Global.MonitorFile != "" { - lines = append(lines, fmt.Sprint("export MONITORS_FILE=", normalizeUserInput(config.Global.MonitorFile))) - } - - for _, item := range config.Chains { - lines = append(lines, EnvsFromConfiguration(item)) - } - err = WriteEnvFile(path, strings.Join(lines, "\n")) - return err -} - -func SaveEntrypointScript(path string, config ConfigurationPost) (err error) { - scraperOpts := "off" - if (config.Global.RunScraper && config.Global.InitBlooms) { - scraperOpts = "blooms" - } - if (config.Global.RunScraper && config.Global.InitIndex) { - scraperOpts = "full-index" - } - cmdOpts := []string{ - "chifra daemon", - "--api on", - "--scrape", - scraperOpts, - "--monitor", - } - - script := []string{ - "#!/bin/bash", - "", - strings.Join(cmdOpts, " "), - "", - } - - err = WriteEnvFile(path, strings.Join(script, "\n")) - if err != nil { - return err - } - err = os.Chmod(path, 0700) - return err -} - -func SaveJson(path string, config ConfigurationPost) (err error) { - contents, err := json.MarshalIndent(config, "", " ") - if err != nil { - return - } - - file, err := os.Create(path) - if err != nil { - return - } - - file.Write(contents) - return nil -} - -func ReadJson(path string) (contents []byte, err error) { - contents, err = ioutil.ReadFile(path) - if err != nil { - return - } - - return -} - -func makeConfigurationHandler(outputDir string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - if r.Method != http.MethodPost && r.Method != http.MethodGet { - http.Error(w, "unsupported method", http.StatusMethodNotAllowed) - return - } - - if r.Method == http.MethodPost { - log.Println("POST /configuration") - - p := ConfigurationPost{} - - err := json.NewDecoder(r.Body).Decode(&p) - if err != nil { - log.Println("error", err) - http.Error(w, err.Error(), http.StatusBadRequest) - return - } - - err = SaveConfiguration(path.Join(outputDir, "configuration.sh"), p) - if err != nil { - http.Error(w, fmt.Sprintf("Could not save configuration file: %s", err), http.StatusInternalServerError) - return - } - err = SaveEntrypointScript(path.Join(outputDir, "entrypoint.sh"), p) - if err != nil { - http.Error(w, fmt.Sprintf("Could not update entrypoint script: %s", err), http.StatusInternalServerError) - return - } - err = SaveJson(path.Join(outputDir, "configuration.json"), p) - if err != nil { - http.Error(w, fmt.Sprintf("Could not save JSON configuration file: %s", err), http.StatusInternalServerError) - return - } - } - - if r.Method == http.MethodGet { - log.Println("GET /configuration") - - data, err := ReadJson(path.Join(outputDir, "configuration.json")) - if err != nil { - http.Error(w, fmt.Sprintf("Could not read JSON configuration file: %s", err), http.StatusInternalServerError) - return - } - w.Header().Set("Content-Type", "application/json") - w.Write(data) - } - } -} - -func main() { - var outputPath string - var port string - var staticDir string - - flag.StringVar(&outputPath, "dir", "/output/", "Path to output directory") - flag.StringVar(&port, "port", "80", "Port to listen on") - flag.StringVar(&staticDir, "static", "./static", "Directory to serve static files from") - flag.Parse() - log.Println("Will save output to", outputPath) - - http.HandleFunc("/configuration", makeConfigurationHandler(outputPath)) - - fs := http.FileServer(http.Dir(staticDir)) - http.Handle("/", fs) - - log.Print("Listening on ", port) - err := http.ListenAndServe(fmt.Sprintf(":%s", port), nil) - if err != nil { - log.Fatal(err) - } -} diff --git a/configuration/static/index.html b/configuration/static/index.html deleted file mode 100644 index b0cd429..0000000 --- a/configuration/static/index.html +++ /dev/null @@ -1,712 +0,0 @@ - - - - - Configure TrueBlocks - - - -
-
-
- TrueBlocks logo -

Configure TrueBlocks

-
-
-

- This tool makes it easier to configure TrueBlocks Core DAppNode package. You can add or remove chains and change monitor watch options. -

-

- Remember to restart our DAppNode package after changing the configuration -

-

- If you need help, let us know on Discord or create new issue. -

-
-
-
- -
-
-
- -
-
- -
-
-
- -
- -

Do you want to remove this chain?

-

- This action cannot be undone. -

-
- - -
-
- - - - - - - - - - - - - - -
-

Global settings

- -
-
- - Run scraper - -
- - -
-

- Scan the chain and update the TrueBlocks index of appearances. This requires an endpoint that supports trace_* methods as your RPC Provider (not geth). -

-
-
- - Download bloom filters: - -
- - -
-

- Download mainnet bloom filters on startup? Otherwise they must be generated locally. This is recommended (~3GB). -

-
- - - -
- Advanced settings -
-
- - Download full index: - -
- - -
-

- Download the entire mainnet index on startup? This is NOT recommended as it takes up considerable space (~80GB). -

-
- - -
-
-
- - - -

Chains

-
- -
-
- -
- - - - - \ No newline at end of file diff --git a/configuration/static/logo.png b/configuration/static/logo.png deleted file mode 100644 index b33aca164786715e1da3e2301e45019f8ad62630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61526 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 From 09ac7eb5bebcafbb2169b6ed33dae50c95fd4bae Mon Sep 17 00:00:00 2001 From: geleeroyale Date: Tue, 4 Jul 2023 16:20:23 +0200 Subject: [PATCH 3/3] bump version --- dappnode_package.json | 3 ++- docker-compose.yml | 2 +- releases.json | 24 ++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 8a6c67a..7dd0d9c 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,6 +1,7 @@ { "name": "trueblocks.public.dappnode.eth", - "version": "0.1.0", + "version": "0.0.7", + "upstreamVersion": "0.70.0-beta", "description": "TrueBlocks packaged for DAppNode", "type": "service", "author": "geleeroyale", diff --git a/docker-compose.yml b/docker-compose.yml index d6da85f..83a1ee8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.5" services: trueblocks.public.dappnode.eth: build: . - image: "trueblocks.public.dappnode.eth:0.1.0" + image: "trueblocks.public.dappnode.eth:0.0.7" environment: TB_SETTINGS_DEFAULTCHAIN: mainnet TB_CHAINS_MAINNET_RPCPROVIDER: "http://erigon.dappnode:8545" diff --git a/releases.json b/releases.json index a5b0c13..bc9934c 100644 --- a/releases.json +++ b/releases.json @@ -4,5 +4,29 @@ "uploadedTo": { "http://172.33.1.5:5001": "Thu, 15 Jun 2023 12:10:27 GMT" } + }, + "0.1.0": { + "hash": "/ipfs/QmNcghRgQHxY8ytwhJnKTeU5ohkb4N7fN1qZfYJkPJQcmx", + "uploadedTo": { + "http://172.33.1.5:5001": "Thu, 15 Jun 2023 13:52:52 GMT" + } + }, + "0.1.1": { + "hash": "/ipfs/Qme1zwZQ2PdpG6MqiaZWAocmnPhCzCVzV1Kxow8eatMYW7", + "uploadedTo": { + "http://172.33.1.5:5001": "Thu, 15 Jun 2023 14:04:41 GMT" + } + }, + "0.1.2": { + "hash": "/ipfs/Qma4AuNe2vvSHqkJLxYThVZRn6oFLmXEZJ4XGruy4Tq2LP", + "uploadedTo": { + "http://172.33.1.5:5001": "Thu, 15 Jun 2023 14:25:53 GMT" + } + }, + "0.0.6": { + "hash": "/ipfs/QmeXiHfhar45Y9M494Ykc3Tp8jYzer2gxjzzDoRNZa5sP1", + "uploadedTo": { + "http://172.33.1.5:5001": "Thu, 15 Jun 2023 15:09:53 GMT" + } } }