From 80091783604e3eb66d55fc394c133fb434884d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Thu, 5 Sep 2019 17:29:24 +0200 Subject: [PATCH 001/140] Advance manifest to new version: 0.1.1 --- dappnode_package.json | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 2a97c86..fc4265f 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,30 +1,47 @@ { - "name": "ethchain-geth.public.dappnode.eth", - "version": "0.0.3", - "description": "Mainnet Geth", - "avatar": "/ipfs/QmTfnrUdZWaMgr2Zi1h1Z7zS5CbYtQZRs72yqKZQHj5fxT", + "name": "geth.dnp.dappnode.eth", + "version": "0.1.1", + "upstreamVersion": "1.9.3", + "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", + "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", + "avatar": "/ipfs/QmbxQDuXW8AjrP4UKbG7Aothehvzg5PdLDBn7cdGWjvpmU", "type": "library", "chain": "ethereum", "image": { - "path": "ethchain-geth.public.dappnode.eth_0.0.3.tar.xz", - "hash": "/ipfs/QmdQF3arvXiEkJ8DSR1auzCqxyhpmv1fGL1acTBQYyZvfr", - "size": 16184810, + "path": "", + "hash": "", + "size": "", "restart": "always", "ports": [ - "61313:30303", - "61313:30303/udp", - "61314:30304" + "30303", + "30303/udp", + "30304/udp" ], "volumes": [ - "ethchain-geth:/root/.ethereum/ethchain-geth" + "data:/root/.ethereum" ], "environment": [ "EXTRA_OPTS=--rpcapi eth,net,web3,txpool" ] }, - "author": "nanexcool", + "author": "DAppNode Association (https://github.com/dappnode)", + "contributors": [ + "Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)", + "Eduardo Antuña (https://github.com/eduadiez)" + ], + "categories": [ + "Blockchain" + ], "license": "GLP-3.0", "links": { - "endpoint": "http://my.ethchain-geth.public.dappnode.eth:8545" + "endpoint": "http://geth.dappnode:8545", + "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" + }, + "repository": { + "type": "git", + "url": "https://github.com/dappnode/DAppNodePackage-geth.git" + }, + "bugs": { + "url": "https://github.com/dappnode/DAppNodePackage-geth/issues" } } \ No newline at end of file From 4f8ff15c24d699964fad587930e8acf4525d01cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Thu, 5 Sep 2019 18:49:40 +0200 Subject: [PATCH 002/140] Update --- README.md | 69 ++++++++++++++++++++++++++++++++++++++++++ build/Dockerfile | 8 ++--- dappnode_package.json | 43 ++++++++++++++++++-------- docker-compose.yml | 8 ++--- geth-avatar.png | Bin 0 -> 4716 bytes 5 files changed, 107 insertions(+), 21 deletions(-) create mode 100644 README.md create mode 100644 geth-avatar.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..196c130 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# Görli testnet DAppNode package + +[![DAppNodeStore Available](https://img.shields.io/badge/DAppNodeStore-Available-brightgreen.svg)](http://my.dappnode/#/installer/geth.dnp.dappnode.eth) + + +[![Geth github](https://img.shields.io/badge/Geth-Github-blue.svg)](https://github.com/ethereum/go-ethereum) + +You can use this package without installing it in your DAppNode following these instructions: + +## Prerequisites + +- git + + Install [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) commandline tool. + +- docker + + Install [docker](https://docs.docker.com/engine/installation). The community edition (docker-ce) will work. In Linux make sure you grant permissions to the current user to use docker by adding current user to docker group, `sudo usermod -aG docker $USER`. Once you update the users group, exit from the current terminal and open a new one to make effect. + +- docker-compose + + Install [docker-compose](https://docs.docker.com/compose/install) + +**Note**: Make sure you can run `git`, `docker ps`, `docker-compose` without any issue and without sudo command. + + +## Buidling + +`docker-compose build` + +## Running + +### Start + +`docker-compose up -d` + +### View logs + +`docker-compose logs -f` + +### Stop + +`docker-compose down` + +## Extra options + +You can edit the `docker-compose.yml` and add extra options, such as: +``` + - EXTRA_OPTS=--wsapi db,eth,net,ssh,miner,web3,personal,admin,txpool +``` + +## Connect using web3js + +If the package is running and you're connected to your dappnode you can use: +``` +var Web3 = require('web3'); +var web3 = new Web3('ws://my.geth.dappnode:8546') +web3.eth.getBlockNumber().then(console.log) +``` +In case you are running it locally: +``` +var Web3 = require('web3'); +var web3 = new Web3('ws://127.0.0.1:8546') +web3.eth.getBlockNumber().then(console.log) +``` + +## License + +This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details diff --git a/build/Dockerfile b/build/Dockerfile index 0f11e46..b1aeadd 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -5,10 +5,10 @@ WORKDIR /usr/src/app RUN apk add --no-cache make gcc musl-dev linux-headers git jq -ARG COMMIT=cfbb969da803d4cc92e1a64fc1b3c06db299b564 +ARG BRANCH=v1.9.3 -RUN git clone https://github.com/ethereum/go-ethereum.git -RUN cd go-ethereum && git checkout $COMMIT && make geth +RUN git clone -b $BRANCH https://github.com/ethereum/go-ethereum.git +RUN cd go-ethereum && make geth # Pull Geth into a second stage deploy alpine container FROM alpine:latest @@ -16,4 +16,4 @@ FROM alpine:latest RUN apk add --no-cache ca-certificates COPY --from=builder /usr/src/app/go-ethereum/build/bin/geth /usr/local/bin/ -ENTRYPOINT geth --datadir /root/.ethereum/ethchain-geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 $EXTRA_OPTS +ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 $EXTRA_OPTS diff --git a/dappnode_package.json b/dappnode_package.json index 2a97c86..fc4265f 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,30 +1,47 @@ { - "name": "ethchain-geth.public.dappnode.eth", - "version": "0.0.3", - "description": "Mainnet Geth", - "avatar": "/ipfs/QmTfnrUdZWaMgr2Zi1h1Z7zS5CbYtQZRs72yqKZQHj5fxT", + "name": "geth.dnp.dappnode.eth", + "version": "0.1.1", + "upstreamVersion": "1.9.3", + "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", + "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", + "avatar": "/ipfs/QmbxQDuXW8AjrP4UKbG7Aothehvzg5PdLDBn7cdGWjvpmU", "type": "library", "chain": "ethereum", "image": { - "path": "ethchain-geth.public.dappnode.eth_0.0.3.tar.xz", - "hash": "/ipfs/QmdQF3arvXiEkJ8DSR1auzCqxyhpmv1fGL1acTBQYyZvfr", - "size": 16184810, + "path": "", + "hash": "", + "size": "", "restart": "always", "ports": [ - "61313:30303", - "61313:30303/udp", - "61314:30304" + "30303", + "30303/udp", + "30304/udp" ], "volumes": [ - "ethchain-geth:/root/.ethereum/ethchain-geth" + "data:/root/.ethereum" ], "environment": [ "EXTRA_OPTS=--rpcapi eth,net,web3,txpool" ] }, - "author": "nanexcool", + "author": "DAppNode Association (https://github.com/dappnode)", + "contributors": [ + "Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)", + "Eduardo Antuña (https://github.com/eduadiez)" + ], + "categories": [ + "Blockchain" + ], "license": "GLP-3.0", "links": { - "endpoint": "http://my.ethchain-geth.public.dappnode.eth:8545" + "endpoint": "http://geth.dappnode:8545", + "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" + }, + "repository": { + "type": "git", + "url": "https://github.com/dappnode/DAppNodePackage-geth.git" + }, + "bugs": { + "url": "https://github.com/dappnode/DAppNodePackage-geth/issues" } } \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 677b6e4..9cab3ae 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,10 @@ version: '3.4' services: - ethchain-geth.public.dappnode.eth: - image: 'ethchain-geth.public.dappnode.eth:0.0.3' + geth.dnp.dappnode.eth: + image: 'geth.dnp.dappnode.eth:0.1.1' build: ./build volumes: - - 'ethchain-geth:/root/.ethereum/ethchain-geth' + - 'geth:/root/.ethereum' environment: - EXTRA_OPTS= ports: @@ -14,4 +14,4 @@ services: - '61313:30303/udp' - '61314:30304/udp' volumes: - ethchain-geth: {} \ No newline at end of file + geth: {} diff --git a/geth-avatar.png b/geth-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..27b1dff22b88bc96c5186fbd17e23a49f5f0a221 GIT binary patch literal 4716 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 Date: Mon, 21 Oct 2019 16:11:14 +0200 Subject: [PATCH 003/140] Updated --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++ build/Dockerfile | 8 ++--- dappnode_package.json | 20 +------------ docker-compose.yml | 19 ++++++------ 4 files changed, 83 insertions(+), 33 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..196c130 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# Görli testnet DAppNode package + +[![DAppNodeStore Available](https://img.shields.io/badge/DAppNodeStore-Available-brightgreen.svg)](http://my.dappnode/#/installer/geth.dnp.dappnode.eth) + + +[![Geth github](https://img.shields.io/badge/Geth-Github-blue.svg)](https://github.com/ethereum/go-ethereum) + +You can use this package without installing it in your DAppNode following these instructions: + +## Prerequisites + +- git + + Install [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) commandline tool. + +- docker + + Install [docker](https://docs.docker.com/engine/installation). The community edition (docker-ce) will work. In Linux make sure you grant permissions to the current user to use docker by adding current user to docker group, `sudo usermod -aG docker $USER`. Once you update the users group, exit from the current terminal and open a new one to make effect. + +- docker-compose + + Install [docker-compose](https://docs.docker.com/compose/install) + +**Note**: Make sure you can run `git`, `docker ps`, `docker-compose` without any issue and without sudo command. + + +## Buidling + +`docker-compose build` + +## Running + +### Start + +`docker-compose up -d` + +### View logs + +`docker-compose logs -f` + +### Stop + +`docker-compose down` + +## Extra options + +You can edit the `docker-compose.yml` and add extra options, such as: +``` + - EXTRA_OPTS=--wsapi db,eth,net,ssh,miner,web3,personal,admin,txpool +``` + +## Connect using web3js + +If the package is running and you're connected to your dappnode you can use: +``` +var Web3 = require('web3'); +var web3 = new Web3('ws://my.geth.dappnode:8546') +web3.eth.getBlockNumber().then(console.log) +``` +In case you are running it locally: +``` +var Web3 = require('web3'); +var web3 = new Web3('ws://127.0.0.1:8546') +web3.eth.getBlockNumber().then(console.log) +``` + +## License + +This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details diff --git a/build/Dockerfile b/build/Dockerfile index 0f11e46..05231ed 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -5,10 +5,10 @@ WORKDIR /usr/src/app RUN apk add --no-cache make gcc musl-dev linux-headers git jq -ARG COMMIT=cfbb969da803d4cc92e1a64fc1b3c06db299b564 +ARG BRANCH=v1.9.6 -RUN git clone https://github.com/ethereum/go-ethereum.git -RUN cd go-ethereum && git checkout $COMMIT && make geth +RUN git clone -b $BRANCH https://github.com/ethereum/go-ethereum.git +RUN cd go-ethereum && make geth # Pull Geth into a second stage deploy alpine container FROM alpine:latest @@ -16,4 +16,4 @@ FROM alpine:latest RUN apk add --no-cache ca-certificates COPY --from=builder /usr/src/app/go-ethereum/build/bin/geth /usr/local/bin/ -ENTRYPOINT geth --datadir /root/.ethereum/ethchain-geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 $EXTRA_OPTS +ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 $EXTRA_OPTS diff --git a/dappnode_package.json b/dappnode_package.json index fc4265f..8a81b6e 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,29 +1,11 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.1", - "upstreamVersion": "1.9.3", + "upstreamVersion": "1.9.6", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", - "avatar": "/ipfs/QmbxQDuXW8AjrP4UKbG7Aothehvzg5PdLDBn7cdGWjvpmU", "type": "library", "chain": "ethereum", - "image": { - "path": "", - "hash": "", - "size": "", - "restart": "always", - "ports": [ - "30303", - "30303/udp", - "30304/udp" - ], - "volumes": [ - "data:/root/.ethereum" - ], - "environment": [ - "EXTRA_OPTS=--rpcapi eth,net,web3,txpool" - ] - }, "author": "DAppNode Association (https://github.com/dappnode)", "contributors": [ "Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)", diff --git a/docker-compose.yml b/docker-compose.yml index 677b6e4..b497f94 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,17 +1,16 @@ version: '3.4' services: - ethchain-geth.public.dappnode.eth: - image: 'ethchain-geth.public.dappnode.eth:0.0.3' + geth.dnp.dappnode.eth: + image: 'geth.dnp.dappnode.eth:0.1.1' build: ./build volumes: - - 'ethchain-geth:/root/.ethereum/ethchain-geth' + - 'geth:/root/.ethereum' environment: - - EXTRA_OPTS= + - EXTRA_OPTS=--rpcapi eth,net,web3,txpool ports: - - '127.0.0.1:8546:8546' - - '127.0.0.1:8545:8545' - - '61313:30303' - - '61313:30303/udp' - - '61314:30304/udp' + - '30303' + - '30303/udp' + - '30304/udp' + restart: always volumes: - ethchain-geth: {} \ No newline at end of file + geth: {} From fbdf676e299bf53dcb8ce7383f5da00514754805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 29 Nov 2019 22:48:38 +0100 Subject: [PATCH 004/140] Bump version to Geth v1.9.8 --- build/Dockerfile | 2 +- dappnode_package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 05231ed..fc8b524 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -5,7 +5,7 @@ WORKDIR /usr/src/app RUN apk add --no-cache make gcc musl-dev linux-headers git jq -ARG BRANCH=v1.9.6 +ARG BRANCH=v1.9.8 RUN git clone -b $BRANCH https://github.com/ethereum/go-ethereum.git RUN cd go-ethereum && make geth diff --git a/dappnode_package.json b/dappnode_package.json index 8a81b6e..6ac3d2b 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.1", - "upstreamVersion": "1.9.6", + "upstreamVersion": "v1.9.8", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", From b801b89887d65c0bbc2b46e8491ebfdec14cac68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Fri, 29 Nov 2019 22:53:22 +0100 Subject: [PATCH 005/140] Advance manifest to new version: 0.1.3 --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index 6ac3d2b..3e8e001 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,6 +1,6 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.1", + "version": "0.1.3", "upstreamVersion": "v1.9.8", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", From d31ca98b577c1352f7d3c44b8e64b1b0a007ee17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Fri, 29 Nov 2019 22:53:24 +0100 Subject: [PATCH 006/140] Advance compose to new version: 0.1.3 --- docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b497f94..2e86c26 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,16 +1,16 @@ version: '3.4' services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.1' + image: 'geth.dnp.dappnode.eth:0.1.3' build: ./build volumes: - 'geth:/root/.ethereum' environment: - - EXTRA_OPTS=--rpcapi eth,net,web3,txpool + - 'EXTRA_OPTS=--rpcapi eth,net,web3,txpool' ports: - '30303' - - '30303/udp' - - '30304/udp' + - 30303/udp + - 30304/udp restart: always volumes: geth: {} From 5a22cef32e8f599a8a062fb55eb97b342a1c51f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Tue, 17 Dec 2019 08:35:26 +0100 Subject: [PATCH 007/140] Bump version --- build/Dockerfile | 23 +++++++++-------------- docker-compose.yml | 2 +- releases.json | 10 ++++++++++ 3 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 releases.json diff --git a/build/Dockerfile b/build/Dockerfile index fc8b524..b652902 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,19 +1,14 @@ -# Build Geth in a stock Go builder container -FROM golang:1.11-alpine as builder +FROM ethereum/client-go:v1.9.9 as geth -WORKDIR /usr/src/app +# Pull Parity into a second stage deploy alpine container +FROM alpine:edge -RUN apk add --no-cache make gcc musl-dev linux-headers git jq +RUN apk --no-cache add \ + libstdc++ \ + eudev-libs \ + libgcc \ + bash -ARG BRANCH=v1.9.8 - -RUN git clone -b $BRANCH https://github.com/ethereum/go-ethereum.git -RUN cd go-ethereum && make geth - -# Pull Geth into a second stage deploy alpine container -FROM alpine:latest - -RUN apk add --no-cache ca-certificates -COPY --from=builder /usr/src/app/go-ethereum/build/bin/geth /usr/local/bin/ +COPY --from=geth /usr/local/bin/geth /usr/local/bin/geth ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 $EXTRA_OPTS diff --git a/docker-compose.yml b/docker-compose.yml index 2e86c26..e695d3d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,4 +13,4 @@ services: - 30304/udp restart: always volumes: - geth: {} + geth: {} \ No newline at end of file diff --git a/releases.json b/releases.json new file mode 100644 index 0000000..9bed314 --- /dev/null +++ b/releases.json @@ -0,0 +1,10 @@ +{ + "0.1.2": { + "hash": "/ipfs/QmZmT9gEw7YdXHh9Yx22sHZYtWri1f1SrQxBQs4ctKkSC2", + "type": "directory", + "uploadedTo": { + "dappnode": "Fri, 29 Nov 2019 21:53:08 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.2&h=%2Fipfs%2FQmZmT9gEw7YdXHh9Yx22sHZYtWri1f1SrQxBQs4ctKkSC2" + } +} \ No newline at end of file From 2e2762074501dc743e31b89f961cd93afededc38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:38:47 +0100 Subject: [PATCH 008/140] Advance manifest to new version: 0.1.4 --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index 3e8e001..6d73070 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,6 +1,6 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.3", + "version": "0.1.4", "upstreamVersion": "v1.9.8", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", From 6e9ac65ceee6573bbbbe0f967a68e68903a6c1e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:38:49 +0100 Subject: [PATCH 009/140] Advance compose to new version: 0.1.4 --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e695d3d..99086c6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.4' services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.3' + image: 'geth.dnp.dappnode.eth:0.1.4' build: ./build volumes: - 'geth:/root/.ethereum' @@ -13,4 +13,4 @@ services: - 30304/udp restart: always volumes: - geth: {} \ No newline at end of file + geth: {} From 09349ccb66febf0287fd699c440cfd41001547c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 3 Jan 2020 15:55:39 +0100 Subject: [PATCH 010/140] Bump geth version --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index 6d73070..39e0dbf 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.4", - "upstreamVersion": "v1.9.8", + "upstreamVersion": "v1.9.9", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", From f86c6a40d3ee9836bda536d1871287e46b2e7cd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Fri, 6 Mar 2020 15:06:35 +0100 Subject: [PATCH 011/140] Advance manifest to new version: 0.1.5 --- dappnode_package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 39e0dbf..d94c9b3 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.4", - "upstreamVersion": "v1.9.9", + "version": "0.1.5", + "upstreamVersion": "v1.9.11", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", From adaf06da2f792068ce215b3831159b78a1475751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Fri, 6 Mar 2020 15:06:36 +0100 Subject: [PATCH 012/140] Advance compose to new version: 0.1.5 --- docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 99086c6..d1b9f6a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,13 @@ version: '3.4' services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.4' + image: 'geth.dnp.dappnode.eth:0.1.5' build: ./build volumes: - 'geth:/root/.ethereum' environment: - 'EXTRA_OPTS=--rpcapi eth,net,web3,txpool' + - SYNCMODE ports: - '30303' - 30303/udp From 601a72de2eddea58bb344b1279686b7078936e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 6 Mar 2020 16:51:14 +0100 Subject: [PATCH 013/140] Added SYNCMODE env --- build/Dockerfile | 5 +++-- dappnode_package.json | 4 ++-- docker-compose.yml | 3 ++- releases.json | 16 ++++++++++++++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index b652902..f671b11 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,4 +1,4 @@ -FROM ethereum/client-go:v1.9.9 as geth +FROM ethereum/client-go:v1.9.11 as geth # Pull Parity into a second stage deploy alpine container FROM alpine:edge @@ -11,4 +11,5 @@ RUN apk --no-cache add \ COPY --from=geth /usr/local/bin/geth /usr/local/bin/geth -ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 $EXTRA_OPTS +ENV SYNCMODE fast +ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --nousb $EXTRA_OPTS diff --git a/dappnode_package.json b/dappnode_package.json index 39e0dbf..d94c9b3 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.4", - "upstreamVersion": "v1.9.9", + "version": "0.1.5", + "upstreamVersion": "v1.9.11", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", diff --git a/docker-compose.yml b/docker-compose.yml index 99086c6..d1b9f6a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,13 @@ version: '3.4' services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.4' + image: 'geth.dnp.dappnode.eth:0.1.5' build: ./build volumes: - 'geth:/root/.ethereum' environment: - 'EXTRA_OPTS=--rpcapi eth,net,web3,txpool' + - SYNCMODE ports: - '30303' - 30303/udp diff --git a/releases.json b/releases.json index 9bed314..3f4b98c 100644 --- a/releases.json +++ b/releases.json @@ -6,5 +6,21 @@ "dappnode": "Fri, 29 Nov 2019 21:53:08 GMT" }, "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.2&h=%2Fipfs%2FQmZmT9gEw7YdXHh9Yx22sHZYtWri1f1SrQxBQs4ctKkSC2" + }, + "0.1.3": { + "hash": "/ipfs/QmbrBkpBGmx79B5anoTQLhq8wnYPCiz69eNWwu4jiuMGFx", + "type": "directory", + "uploadedTo": { + "dappnode": "Fri, 03 Jan 2020 14:56:46 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.3&h=%2Fipfs%2FQmbrBkpBGmx79B5anoTQLhq8wnYPCiz69eNWwu4jiuMGFx" + }, + "0.1.4": { + "hash": "/ipfs/QmNqDvqAyy3pN3PvymB6chM7S1FgYyive8LosVKUuaDdfd", + "type": "directory", + "uploadedTo": { + "dappnode": "Fri, 06 Mar 2020 14:06:12 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.4&h=%2Fipfs%2FQmNqDvqAyy3pN3PvymB6chM7S1FgYyive8LosVKUuaDdfd" } } \ No newline at end of file From c999680a798185673463b88c0042cf036b09fd32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 17 Apr 2020 14:05:36 +0200 Subject: [PATCH 014/140] Bump version --- build/Dockerfile | 2 +- releases.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index b652902..e5228f3 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,4 +1,4 @@ -FROM ethereum/client-go:v1.9.9 as geth +FROM ethereum/client-go:v1.9.13 as geth # Pull Parity into a second stage deploy alpine container FROM alpine:edge diff --git a/releases.json b/releases.json index 9bed314..82255aa 100644 --- a/releases.json +++ b/releases.json @@ -6,5 +6,4 @@ "dappnode": "Fri, 29 Nov 2019 21:53:08 GMT" }, "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.2&h=%2Fipfs%2FQmZmT9gEw7YdXHh9Yx22sHZYtWri1f1SrQxBQs4ctKkSC2" - } } \ No newline at end of file From 1e509d9eacbe035843ff6bbc05ba25ed32ffdf47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Mon, 8 Jun 2020 18:34:11 +0200 Subject: [PATCH 015/140] bump version --- .github/workflows/auto_check.yml | 31 +++++++ .github/workflows/dispatch_release.yml | 123 +++++++++++++++++++++++++ .gitignore | 1 + build/Dockerfile | 3 +- dappnode_package.json | 4 +- docker-compose.yml | 2 +- releases.json | 16 ++++ 7 files changed, 176 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/auto_check.yml create mode 100644 .github/workflows/dispatch_release.yml diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml new file mode 100644 index 0000000..8d52ddb --- /dev/null +++ b/.github/workflows/auto_check.yml @@ -0,0 +1,31 @@ +name: Update DAppNode package + +on: + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '*/5 * * * *' +jobs: + dappnodepackage-update: + name: Trigger the DAppNode Package update + runs-on: ubuntu-latest + env: + DISPATCH_REPO: dappnode/DAppNodePackage-geth + UPSTREAM_REPO: ethereum/go-ethereum + steps: + - name: Get the tag + id: get_tag + run: | + UPSTREAM_TAG=$(curl https://api.github.com/repos/$UPSTREAM_REPO/releases/latest | jq .tag_name | tr -d "\"" ) + DNP_TAG=$(curl https://api.github.com/repos/$DISPATCH_REPO/releases/tags/$UPSTREAM_TAG | jq .tag_name | tr -d "\"" ) + if [ $UPSTREAM_TAG != $DNP_TAG ];then + echo "::set-output name=trigger_update::true" + fi + echo ::set-output name=TAG::$UPSTREAM_TAG + - name: Send dispatch event to the DAppNode Package repository + if: steps.get_tag.outputs.trigger_update == 'true' + run: | + curl -v -X POST -u "${{ secrets.PAT_GITHUB }}" \ + -H "Accept: application/vnd.github.everest-preview+json" \ + -H "Content-Type: application/json" \ + --data '{"event_type":"new_release", "client_payload": { "tag":"${{ steps.get_tag.outputs.TAG }}"}}' \ + https://api.github.com/repos/$DISPATCH_REPO/dispatches diff --git a/.github/workflows/dispatch_release.yml b/.github/workflows/dispatch_release.yml new file mode 100644 index 0000000..0a762d6 --- /dev/null +++ b/.github/workflows/dispatch_release.yml @@ -0,0 +1,123 @@ +name: Remote Dispatch Action Initiator + +on: + repository_dispatch: + +jobs: + new_version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: New remote repository event + id: dispatch-event + run: | + echo "Event '${{ github.event.action }}' with tag: '${{ github.event.client_payload.tag }}'" + echo "::set-output name=TAG::${{ github.event.client_payload.tag }}" + echo VERSION=${{ github.event.client_payload.tag }} > .env + + - name: Setup nodejs + uses: actions/setup-node@v1 + with: + node-version: '10.x' + + - name: dappnodesdk install + run: npm install -g @dappnode/dappnodesdk + + - name: Get next DAppNodePackage release + id: next-release + run: echo "::set-output name=DNP_VERSION::$(dappnodesdk next patch -p remote)" + + - name: Check and delete if a release already exists + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + RELEASE_ID=$(curl https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ steps.dispatch-event.outputs.TAG }} | jq .id || echo "") + PRE_RELEASE=$(curl -s https://api.github.com/repos/dappnode/${{ github.repository }}releases/tags/${{ steps.dispatch-event.outputs.TAG }} | jq .prerelease) + if [ $PRE_RELEASE == "false" ];then + exit 1 + elif [ ! -z "$RELEASE_ID" ];then + curl -H "Authorization: token ${GITHUB_TOKEN}" -X DELETE https://api.github.com/repos/${{ github.repository }}/releases/${RELEASE_ID} + fi + + - name: Docker-Compose Build + run: | + docker-compose build + + - name: dappnodesdk publish + id: dappnodesdk-publish + run: | + sed -i "s/upstreamVersion\":.*,/upstreamVersion\": \"${{ steps.dispatch-event.outputs.TAG }}\",/g" dappnode_package.json + dappnodesdk publish patch -p remote + echo "::set-output name=CONTENT_HASH::$(cat ./build_${{ steps.next-release.outputs.DNP_VERSION }}/content-hash | sed 's/\//%2F/g')" + echo "::set-output name=PACKAGE_NAME::$(cat dappnode_package.json | jq .name | tr -d "\"")" + + - name: Create Release + id: create_release + uses: actions/create-release@latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + release_name: v${{ steps.next-release.outputs.DNP_VERSION }} + tag_name: ${{ steps.dispatch-event.outputs.TAG }} + body: | + # ${{ steps.dispatch-event.outputs.TAG }} + You can execute a transaction to publish this package from the Admin UI with Metamask by following this pre-filled [link](http://my.dappnode/#/sdk/publish/r=${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}&v=${{ steps.next-release.outputs.DNP_VERSION }}&h=${{ steps.dappnodesdk-publish.outputs.CONTENT_HASH }}) + draft: false + prerelease: true + + - name: Upload release .xz file + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}_${{ steps.next-release.outputs.DNP_VERSION }}.tar.xz + asset_name: ${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}_${{ steps.next-release.outputs.DNP_VERSION }}.tar.xz + asset_content_type: 'application/octet-stream' + + - name: Upload release avatar file + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/avatar.png + asset_name: avatar.png + asset_content_type: 'application/octet-stream' + + - name: Upload release dappnode_package.json file + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/dappnode_package.json + asset_name: dappnode_package.json + asset_content_type: 'application/octet-stream' + + - name: Upload release docker-compose.yml file + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/docker-compose.yml + asset_name: docker-compose.yml + asset_content_type: 'application/octet-stream' + + - name: Upload release content-hash file + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/content-hash + asset_name: content-hash + asset_content_type: 'application/octet-stream' + + - name: Commit changes + run: | + git config --global user.email "eduadiez@gmail.com" + git config --global user.name "Eduardo" + git commit -am "Github action update" + git push diff --git a/.gitignore b/.gitignore index 2bd624b..9b98eb1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ build_* +.env \ No newline at end of file diff --git a/build/Dockerfile b/build/Dockerfile index 5908d8b..b8f5669 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,4 +1,5 @@ -FROM ethereum/client-go:v1.9.13 as geth +ARG VERSION +FROM ethereum/client-go:$VERSION as geth # Pull Parity into a second stage deploy alpine container FROM alpine:edge diff --git a/dappnode_package.json b/dappnode_package.json index d94c9b3..3cc4808 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.5", - "upstreamVersion": "v1.9.11", + "version": "0.1.7", + "upstreamVersion": "v1.9.14", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", diff --git a/docker-compose.yml b/docker-compose.yml index d1b9f6a..bf2be29 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.4' services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.5' + image: 'geth.dnp.dappnode.eth:0.1.7' build: ./build volumes: - 'geth:/root/.ethereum' diff --git a/releases.json b/releases.json index 3f4b98c..42c83d4 100644 --- a/releases.json +++ b/releases.json @@ -22,5 +22,21 @@ "dappnode": "Fri, 06 Mar 2020 14:06:12 GMT" }, "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.4&h=%2Fipfs%2FQmNqDvqAyy3pN3PvymB6chM7S1FgYyive8LosVKUuaDdfd" + }, + "0.1.5": { + "hash": "/ipfs/QmYSoV4pxNZmHckZHXKCLBXBeESWYdbrCgduGFwpWLzPoi", + "type": "directory", + "uploadedTo": { + "dappnode": "Fri, 17 Apr 2020 12:08:45 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.5&h=%2Fipfs%2FQmYSoV4pxNZmHckZHXKCLBXBeESWYdbrCgduGFwpWLzPoi" + }, + "0.1.6": { + "hash": "/ipfs/QmazbxJNXNn5kUe3PHRiMpJtvf91o6SUM4uFphj9znuVt3", + "type": "directory", + "uploadedTo": { + "remote": "Thu, 14 May 2020 16:22:40 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.6&h=%2Fipfs%2FQmazbxJNXNn5kUe3PHRiMpJtvf91o6SUM4uFphj9znuVt3" } } \ No newline at end of file From 0f9c96c3c96769deea23013a6318bc3044ff0089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Mon, 8 Jun 2020 18:49:33 +0200 Subject: [PATCH 016/140] Update auto_check.yml --- .github/workflows/auto_check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index 8d52ddb..d32c4b2 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -24,7 +24,7 @@ jobs: - name: Send dispatch event to the DAppNode Package repository if: steps.get_tag.outputs.trigger_update == 'true' run: | - curl -v -X POST -u "${{ secrets.PAT_GITHUB }}" \ + curl -v -X POST -u "${{ secrets.GITHUB_TOKEN }}" \ -H "Accept: application/vnd.github.everest-preview+json" \ -H "Content-Type: application/json" \ --data '{"event_type":"new_release", "client_payload": { "tag":"${{ steps.get_tag.outputs.TAG }}"}}' \ From 93a6df414cb5024854b6a79e8131a1b026e95766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Mon, 8 Jun 2020 18:58:06 +0200 Subject: [PATCH 017/140] Update auto_check.yml --- .github/workflows/auto_check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index d32c4b2..8d52ddb 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -24,7 +24,7 @@ jobs: - name: Send dispatch event to the DAppNode Package repository if: steps.get_tag.outputs.trigger_update == 'true' run: | - curl -v -X POST -u "${{ secrets.GITHUB_TOKEN }}" \ + curl -v -X POST -u "${{ secrets.PAT_GITHUB }}" \ -H "Accept: application/vnd.github.everest-preview+json" \ -H "Content-Type: application/json" \ --data '{"event_type":"new_release", "client_payload": { "tag":"${{ steps.get_tag.outputs.TAG }}"}}' \ From 5e6c58ea8f6102fec7da1255ad4f9b679cafc929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Mon, 8 Jun 2020 19:07:14 +0200 Subject: [PATCH 018/140] Add version --- docker-compose.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index bf2be29..3ff36ce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,10 @@ version: '3.4' services: geth.dnp.dappnode.eth: image: 'geth.dnp.dappnode.eth:0.1.7' - build: ./build + build: + context: ./build + args: + - VERSION volumes: - 'geth:/root/.ethereum' environment: From 2dc1d87186a26e2041ea815007ffa1c7de33a6b1 Mon Sep 17 00:00:00 2001 From: Eduardo Date: Mon, 8 Jun 2020 17:12:16 +0000 Subject: [PATCH 019/140] Github action update --- dappnode_package.json | 2 +- releases.json | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index 3cc4808..654286b 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.7", - "upstreamVersion": "v1.9.14", + "upstreamVersion": "v1.9.15", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", diff --git a/releases.json b/releases.json index 42c83d4..cc43224 100644 --- a/releases.json +++ b/releases.json @@ -38,5 +38,13 @@ "remote": "Thu, 14 May 2020 16:22:40 GMT" }, "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.6&h=%2Fipfs%2FQmazbxJNXNn5kUe3PHRiMpJtvf91o6SUM4uFphj9znuVt3" + }, + "0.1.7": { + "hash": "/ipfs/Qmd7jLvxVmUziFFVV9M6R4Svn7KGiM1VGg6kymbCknCgF1", + "type": "directory", + "uploadedTo": { + "remote": "Mon, 08 Jun 2020 17:12:10 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.7&h=%2Fipfs%2FQmd7jLvxVmUziFFVV9M6R4Svn7KGiM1VGg6kymbCknCgF1" } } \ No newline at end of file From b31c25b8ccba1ef079f907cf74fb75089940f042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 7 Aug 2020 14:55:05 +0200 Subject: [PATCH 020/140] Bump to new version: 0.1.9 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 654286b..a80e22f 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,6 +1,6 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.7", + "version": "0.1.9", "upstreamVersion": "v1.9.15", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", diff --git a/docker-compose.yml b/docker-compose.yml index 3ff36ce..e7514ef 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.4' services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.7' + image: 'geth.dnp.dappnode.eth:0.1.9' build: context: ./build args: From 73b92a3a036a39d2029b2d44f4c4176a8d56c58c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 7 Aug 2020 15:32:26 +0200 Subject: [PATCH 021/140] Added UPSTREAM_VERSION --- build/Dockerfile | 4 ++-- docker-compose.yml | 2 +- releases.json | 18 ++++++++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index b8f5669..6fe02e4 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,5 +1,5 @@ -ARG VERSION -FROM ethereum/client-go:$VERSION as geth +ARG UPSTREAM_VERSION +FROM ethereum/client-go:${UPSTREAM_VERSION} as geth # Pull Parity into a second stage deploy alpine container FROM alpine:edge diff --git a/docker-compose.yml b/docker-compose.yml index e7514ef..8b8af4c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - - VERSION + - UPSTREAM_VERSION volumes: - 'geth:/root/.ethereum' environment: diff --git a/releases.json b/releases.json index cc43224..48986a9 100644 --- a/releases.json +++ b/releases.json @@ -40,11 +40,25 @@ "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.6&h=%2Fipfs%2FQmazbxJNXNn5kUe3PHRiMpJtvf91o6SUM4uFphj9znuVt3" }, "0.1.7": { - "hash": "/ipfs/Qmd7jLvxVmUziFFVV9M6R4Svn7KGiM1VGg6kymbCknCgF1", + "hash": "/ipfs/QmTujfYrQwWG7kRwQX4nBD7TmSDjjSfRkj4CdZW3rmDJLC", "type": "directory", "uploadedTo": { - "remote": "Mon, 08 Jun 2020 17:12:10 GMT" + "dappnode": "Fri, 07 Aug 2020 12:53:48 GMT" }, "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.7&h=%2Fipfs%2FQmd7jLvxVmUziFFVV9M6R4Svn7KGiM1VGg6kymbCknCgF1" + }, + "0.1.8": { + "hash": "/ipfs/QmUf1uzqZdXyKt4YB96nr1F9GtxUWnPu8hSs7WXJnoc5Cj", + "uploadedTo": { + "remote": "Fri, 07 Aug 2020 12:54:45 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.8&h=%2Fipfs%2FQmUf1uzqZdXyKt4YB96nr1F9GtxUWnPu8hSs7WXJnoc5Cj" + }, + "0.1.9": { + "hash": "/ipfs/QmbpQoSXzPcBwm1LUeVMPosgsVUf772pN32xjDyxWnPEHT", + "uploadedTo": { + "remote": "Fri, 07 Aug 2020 13:19:24 GMT" + }, + "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.9&h=%2Fipfs%2FQmbpQoSXzPcBwm1LUeVMPosgsVUf772pN32xjDyxWnPEHT" } } \ No newline at end of file From 4b37c73c677737a9f6fe43ffebbf1feda0c6a512 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 7 Aug 2020 15:35:37 +0200 Subject: [PATCH 022/140] Fix GHA --- .github/workflows/dispatch_release.yml | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/dispatch_release.yml b/.github/workflows/dispatch_release.yml index 0a762d6..64e3400 100644 --- a/.github/workflows/dispatch_release.yml +++ b/.github/workflows/dispatch_release.yml @@ -13,24 +13,24 @@ jobs: run: | echo "Event '${{ github.event.action }}' with tag: '${{ github.event.client_payload.tag }}'" echo "::set-output name=TAG::${{ github.event.client_payload.tag }}" - echo VERSION=${{ github.event.client_payload.tag }} > .env - + echo UPSTREAM_VERSION=${{ github.event.client_payload.tag }} > .env + - name: Setup nodejs uses: actions/setup-node@v1 with: - node-version: '10.x' + node-version: "10.x" - name: dappnodesdk install run: npm install -g @dappnode/dappnodesdk - + - name: Get next DAppNodePackage release id: next-release run: echo "::set-output name=DNP_VERSION::$(dappnodesdk next patch -p remote)" - + - name: Check and delete if a release already exists env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | + run: | RELEASE_ID=$(curl https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ steps.dispatch-event.outputs.TAG }} | jq .id || echo "") PRE_RELEASE=$(curl -s https://api.github.com/repos/dappnode/${{ github.repository }}releases/tags/${{ steps.dispatch-event.outputs.TAG }} | jq .prerelease) if [ $PRE_RELEASE == "false" ];then @@ -42,7 +42,7 @@ jobs: - name: Docker-Compose Build run: | docker-compose build - + - name: dappnodesdk publish id: dappnodesdk-publish run: | @@ -70,54 +70,54 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}_${{ steps.next-release.outputs.DNP_VERSION }}.tar.xz asset_name: ${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}_${{ steps.next-release.outputs.DNP_VERSION }}.tar.xz - asset_content_type: 'application/octet-stream' + asset_content_type: "application/octet-stream" - name: Upload release avatar file uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/avatar.png asset_name: avatar.png - asset_content_type: 'application/octet-stream' + asset_content_type: "application/octet-stream" - name: Upload release dappnode_package.json file uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/dappnode_package.json asset_name: dappnode_package.json - asset_content_type: 'application/octet-stream' - + asset_content_type: "application/octet-stream" + - name: Upload release docker-compose.yml file uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/docker-compose.yml asset_name: docker-compose.yml - asset_content_type: 'application/octet-stream' - + asset_content_type: "application/octet-stream" + - name: Upload release content-hash file uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/content-hash asset_name: content-hash - asset_content_type: 'application/octet-stream' - + asset_content_type: "application/octet-stream" + - name: Commit changes run: | - git config --global user.email "eduadiez@gmail.com" - git config --global user.name "Eduardo" - git commit -am "Github action update" - git push + git config --global user.email "eduadiez@gmail.com" + git config --global user.name "Eduardo" + git commit -am "Github action update" + git push From aae7855ec656ecbf0e3d7bda77460cf9d704a016 Mon Sep 17 00:00:00 2001 From: Lion - dapplion <35266934+dapplion@users.noreply.github.com> Date: Thu, 17 Sep 2020 12:58:22 +0300 Subject: [PATCH 023/140] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 196c130..6c2daee 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Görli testnet DAppNode package +# Geth DAppNode package [![DAppNodeStore Available](https://img.shields.io/badge/DAppNodeStore-Available-brightgreen.svg)](http://my.dappnode/#/installer/geth.dnp.dappnode.eth) From 0eb233ff460748571b0a7047bd7b2eb0ccbfbfeb Mon Sep 17 00:00:00 2001 From: dapplion Date: Wed, 23 Sep 2020 17:32:38 +0300 Subject: [PATCH 024/140] Add main GA --- .github/workflows/main.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..6a48af9 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,31 @@ +name: "Main" +on: + pull_request: + push: + branches: + - "master" + - "v[0-9]+.[0-9]+.[0-9]+" + paths-ignore: + - "README.md" + +jobs: + build-test: + runs-on: ubuntu-16.04 + name: Build test + if: github.event_name != 'push' + steps: + - uses: actions/checkout@v2 + - run: docker-compose build + + release: + name: Release + runs-on: ubuntu-latest + if: github.event_name == 'push' + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + - name: Publish + run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset --timeout 2h + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEVELOPER_ADDRESS: "0xf35960302a07022aba880dffaec2fdd64d5bf1c1" From a29ea19a16631cf0b98f3135a80ea2936f89f1b4 Mon Sep 17 00:00:00 2001 From: dapplion Date: Wed, 23 Sep 2020 17:29:52 +0300 Subject: [PATCH 025/140] Support multi-arch --- build/Dockerfile | 17 ++++++++++------- dappnode_package.json | 1 + docker-compose.yml | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 6fe02e4..e96bc3d 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,16 +1,19 @@ +# Build Geth in a stock Go builder container +FROM golang:1.14-alpine as builder + ARG UPSTREAM_VERSION -FROM ethereum/client-go:${UPSTREAM_VERSION} as geth -# Pull Parity into a second stage deploy alpine container +RUN apk add --no-cache make gcc musl-dev linux-headers git && \ + git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ + cd go-ethereum && make geth + + FROM alpine:edge RUN apk --no-cache add \ - libstdc++ \ - eudev-libs \ - libgcc \ - bash + libstdc++ eudev-libs libgcc bash -COPY --from=geth /usr/local/bin/geth /usr/local/bin/geth +COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin ENV SYNCMODE fast ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --nousb $EXTRA_OPTS diff --git a/dappnode_package.json b/dappnode_package.json index a80e22f..414803e 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -5,6 +5,7 @@ "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", + "architectures": ["linux/amd64", "linux/arm64"], "chain": "ethereum", "author": "DAppNode Association (https://github.com/dappnode)", "contributors": [ diff --git a/docker-compose.yml b/docker-compose.yml index 8b8af4c..2b049c4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - - UPSTREAM_VERSION + - UPSTREAM_VERSION=v1.9.21 volumes: - 'geth:/root/.ethereum' environment: From 6c0ea5af8c79d72aadfe832f8f91b1449308a2d3 Mon Sep 17 00:00:00 2001 From: Lion - dapplion <35266934+dapplion@users.noreply.github.com> Date: Wed, 23 Sep 2020 17:36:14 +0300 Subject: [PATCH 026/140] Docker-compose build args as object format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Eduardo Antuña Díez <20141918+eduadiez@users.noreply.github.com> --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2b049c4..5bc55a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - - UPSTREAM_VERSION=v1.9.21 + UPSTREAM_VERSION: v1.9.21 volumes: - 'geth:/root/.ethereum' environment: From 00fcef1522bc8cedbf6f6c860125af6ed7f7691a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Wed, 23 Sep 2020 20:41:47 +0200 Subject: [PATCH 027/140] Update auto_check.yml --- .github/workflows/auto_check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index 8d52ddb..a0d1d8c 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -3,7 +3,7 @@ name: Update DAppNode package on: schedule: # * is a special character in YAML so you have to quote this string - - cron: '*/5 * * * *' + - cron: '00 */12 * * *' jobs: dappnodepackage-update: name: Trigger the DAppNode Package update From 57881b01fdb2edf9807ecf8f979732afbbdd31be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Mon, 5 Oct 2020 10:01:26 +0200 Subject: [PATCH 028/140] Add ARM64 compatibility --- .github/workflows/auto_check.yml | 11 +- .github/workflows/dispatch_release.yml | 135 +++++-------------------- build/Dockerfile | 20 ++-- dappnode_package.json | 4 + docker-compose.yml | 2 +- 5 files changed, 46 insertions(+), 126 deletions(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index 8d52ddb..409a3e5 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -3,7 +3,8 @@ name: Update DAppNode package on: schedule: # * is a special character in YAML so you have to quote this string - - cron: '*/5 * * * *' + # - cron: '00 */4 * * *' + - cron: '* * * * *' jobs: dappnodepackage-update: name: Trigger the DAppNode Package update @@ -12,15 +13,17 @@ jobs: DISPATCH_REPO: dappnode/DAppNodePackage-geth UPSTREAM_REPO: ethereum/go-ethereum steps: + - uses: actions/checkout@v2 - name: Get the tag id: get_tag run: | - UPSTREAM_TAG=$(curl https://api.github.com/repos/$UPSTREAM_REPO/releases/latest | jq .tag_name | tr -d "\"" ) - DNP_TAG=$(curl https://api.github.com/repos/$DISPATCH_REPO/releases/tags/$UPSTREAM_TAG | jq .tag_name | tr -d "\"" ) - if [ $UPSTREAM_TAG != $DNP_TAG ];then + UPSTREAM_TAG=$(curl https://api.github.com/repos/$UPSTREAM_REPO/tags | jq .[0].name | tr -d "\"" ) + DNP_UPSTREAM=$(cat dappnode_package.json | jq .upstreamVersion | tr -d "\"" ) + if [ $UPSTREAM_TAG != $DNP_UPSTREAM ];then echo "::set-output name=trigger_update::true" fi echo ::set-output name=TAG::$UPSTREAM_TAG + - name: Send dispatch event to the DAppNode Package repository if: steps.get_tag.outputs.trigger_update == 'true' run: | diff --git a/.github/workflows/dispatch_release.yml b/.github/workflows/dispatch_release.yml index 64e3400..64acb74 100644 --- a/.github/workflows/dispatch_release.yml +++ b/.github/workflows/dispatch_release.yml @@ -1,123 +1,36 @@ -name: Remote Dispatch Action Initiator - +name: "Main" on: repository_dispatch: + pull_request: + push: + branches: + - "master" + - "v[0-9]+.[0-9]+.[0-9]+" + paths-ignore: + - "README.md" jobs: - new_version: + build-test: + runs-on: ubuntu-16.04 + name: Build test + if: github.event_name != 'push' + steps: + - name: Checkout + uses: actions/checkout@v2 + - run: docker-compose build + + release: + name: Release runs-on: ubuntu-latest + if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: - uses: actions/checkout@v2 - - name: New remote repository event - id: dispatch-event - run: | - echo "Event '${{ github.event.action }}' with tag: '${{ github.event.client_payload.tag }}'" - echo "::set-output name=TAG::${{ github.event.client_payload.tag }}" - echo UPSTREAM_VERSION=${{ github.event.client_payload.tag }} > .env - - - name: Setup nodejs + - name: Setup node uses: actions/setup-node@v1 with: node-version: "10.x" - - - name: dappnodesdk install - run: npm install -g @dappnode/dappnodesdk - - - name: Get next DAppNodePackage release - id: next-release - run: echo "::set-output name=DNP_VERSION::$(dappnodesdk next patch -p remote)" - - - name: Check and delete if a release already exists + - name: Publish + run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - RELEASE_ID=$(curl https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ steps.dispatch-event.outputs.TAG }} | jq .id || echo "") - PRE_RELEASE=$(curl -s https://api.github.com/repos/dappnode/${{ github.repository }}releases/tags/${{ steps.dispatch-event.outputs.TAG }} | jq .prerelease) - if [ $PRE_RELEASE == "false" ];then - exit 1 - elif [ ! -z "$RELEASE_ID" ];then - curl -H "Authorization: token ${GITHUB_TOKEN}" -X DELETE https://api.github.com/repos/${{ github.repository }}/releases/${RELEASE_ID} - fi - - - name: Docker-Compose Build - run: | - docker-compose build - - - name: dappnodesdk publish - id: dappnodesdk-publish - run: | - sed -i "s/upstreamVersion\":.*,/upstreamVersion\": \"${{ steps.dispatch-event.outputs.TAG }}\",/g" dappnode_package.json - dappnodesdk publish patch -p remote - echo "::set-output name=CONTENT_HASH::$(cat ./build_${{ steps.next-release.outputs.DNP_VERSION }}/content-hash | sed 's/\//%2F/g')" - echo "::set-output name=PACKAGE_NAME::$(cat dappnode_package.json | jq .name | tr -d "\"")" - - - name: Create Release - id: create_release - uses: actions/create-release@latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - release_name: v${{ steps.next-release.outputs.DNP_VERSION }} - tag_name: ${{ steps.dispatch-event.outputs.TAG }} - body: | - # ${{ steps.dispatch-event.outputs.TAG }} - You can execute a transaction to publish this package from the Admin UI with Metamask by following this pre-filled [link](http://my.dappnode/#/sdk/publish/r=${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}&v=${{ steps.next-release.outputs.DNP_VERSION }}&h=${{ steps.dappnodesdk-publish.outputs.CONTENT_HASH }}) - draft: false - prerelease: true - - - name: Upload release .xz file - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}_${{ steps.next-release.outputs.DNP_VERSION }}.tar.xz - asset_name: ${{ steps.dappnodesdk-publish.outputs.PACKAGE_NAME }}_${{ steps.next-release.outputs.DNP_VERSION }}.tar.xz - asset_content_type: "application/octet-stream" - - - name: Upload release avatar file - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/avatar.png - asset_name: avatar.png - asset_content_type: "application/octet-stream" - - - name: Upload release dappnode_package.json file - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/dappnode_package.json - asset_name: dappnode_package.json - asset_content_type: "application/octet-stream" - - - name: Upload release docker-compose.yml file - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/docker-compose.yml - asset_name: docker-compose.yml - asset_content_type: "application/octet-stream" - - - name: Upload release content-hash file - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: ./build_${{ steps.next-release.outputs.DNP_VERSION }}/content-hash - asset_name: content-hash - asset_content_type: "application/octet-stream" - - - name: Commit changes - run: | - git config --global user.email "eduadiez@gmail.com" - git config --global user.name "Eduardo" - git commit -am "Github action update" - git push + DEVELOPER_ADDRESS: "0xf35960302a07022aba880dffaec2fdd64d5bf1c1" diff --git a/build/Dockerfile b/build/Dockerfile index 6fe02e4..5e1b655 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,16 +1,16 @@ +# Build Geth in a stock Go builder container +FROM golang:1.14-alpine as builder + ARG UPSTREAM_VERSION -FROM ethereum/client-go:${UPSTREAM_VERSION} as geth -# Pull Parity into a second stage deploy alpine container -FROM alpine:edge +RUN apk add --no-cache make gcc musl-dev linux-headers git && \ + git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ + cd go-ethereum && make geth -RUN apk --no-cache add \ - libstdc++ \ - eudev-libs \ - libgcc \ - bash +# Pull Geth into a second stage deploy alpine container +FROM alpine:latest -COPY --from=geth /usr/local/bin/geth /usr/local/bin/geth +RUN apk add --no-cache ca-certificates +COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin -ENV SYNCMODE fast ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --nousb $EXTRA_OPTS diff --git a/dappnode_package.json b/dappnode_package.json index a80e22f..02b9e0a 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -15,6 +15,10 @@ "Blockchain" ], "license": "GLP-3.0", + "architectures": [ + "linux/amd64", + "linux/arm64" + ], "links": { "endpoint": "http://geth.dappnode:8545", "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" diff --git a/docker-compose.yml b/docker-compose.yml index 8b8af4c..7fd4164 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - - UPSTREAM_VERSION + UPSTREAM_VERSION: v1.9.22 volumes: - 'geth:/root/.ethereum' environment: From 499826a72c8f4cf3a8349c939385acaf543137c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Mon, 5 Oct 2020 10:02:55 +0200 Subject: [PATCH 029/140] change version --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 02b9e0a..4150b55 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.9", - "upstreamVersion": "v1.9.15", + "upstreamVersion": "v1.9.21", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", diff --git a/docker-compose.yml b/docker-compose.yml index 7fd4164..5bc55a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.9.22 + UPSTREAM_VERSION: v1.9.21 volumes: - 'geth:/root/.ethereum' environment: From ae0ec7d60f91eb712388afc758ad4b9dea290ef3 Mon Sep 17 00:00:00 2001 From: Lion - dapplion <35266934+dapplion@users.noreply.github.com> Date: Thu, 17 Sep 2020 12:58:22 +0300 Subject: [PATCH 030/140] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 196c130..6c2daee 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Görli testnet DAppNode package +# Geth DAppNode package [![DAppNodeStore Available](https://img.shields.io/badge/DAppNodeStore-Available-brightgreen.svg)](http://my.dappnode/#/installer/geth.dnp.dappnode.eth) From a4a44218e115447e1fe0bf8a0877f6e8ddc18a2d Mon Sep 17 00:00:00 2001 From: dapplion Date: Wed, 23 Sep 2020 17:32:38 +0300 Subject: [PATCH 031/140] Add main GA --- .github/workflows/main.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..6a48af9 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,31 @@ +name: "Main" +on: + pull_request: + push: + branches: + - "master" + - "v[0-9]+.[0-9]+.[0-9]+" + paths-ignore: + - "README.md" + +jobs: + build-test: + runs-on: ubuntu-16.04 + name: Build test + if: github.event_name != 'push' + steps: + - uses: actions/checkout@v2 + - run: docker-compose build + + release: + name: Release + runs-on: ubuntu-latest + if: github.event_name == 'push' + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + - name: Publish + run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset --timeout 2h + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEVELOPER_ADDRESS: "0xf35960302a07022aba880dffaec2fdd64d5bf1c1" From 237056849f7daad7bd41ceb0e7c53f1a7021b7de Mon Sep 17 00:00:00 2001 From: dapplion Date: Wed, 23 Sep 2020 17:29:52 +0300 Subject: [PATCH 032/140] Support multi-arch --- build/Dockerfile | 8 ++++++++ dappnode_package.json | 1 + 2 files changed, 9 insertions(+) diff --git a/build/Dockerfile b/build/Dockerfile index 5e1b655..ee0ecc4 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -7,6 +7,14 @@ RUN apk add --no-cache make gcc musl-dev linux-headers git && \ git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ cd go-ethereum && make geth + +FROM alpine:edge +RUN apk add --no-cache make gcc musl-dev linux-headers git && \ + git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ + cd go-ethereum && make geth + +RUN apk --no-cache add \ + libstdc++ eudev-libs libgcc bash # Pull Geth into a second stage deploy alpine container FROM alpine:latest diff --git a/dappnode_package.json b/dappnode_package.json index 4150b55..081b351 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -5,6 +5,7 @@ "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", + "architectures": ["linux/amd64", "linux/arm64"], "chain": "ethereum", "author": "DAppNode Association (https://github.com/dappnode)", "contributors": [ From 315b835857b72e7d9edf2f7b41aec0ee1c6065d8 Mon Sep 17 00:00:00 2001 From: next-branch Date: Wed, 23 Sep 2020 15:19:50 +0000 Subject: [PATCH 033/140] Bump to new version: 0.1.11 --- dappnode_package.json | 5 ++++- docker-compose.yml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 081b351..f444d49 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -5,7 +5,10 @@ "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", - "architectures": ["linux/amd64", "linux/arm64"], + "architectures": [ + "linux/amd64", + "linux/arm64" + ], "chain": "ethereum", "author": "DAppNode Association (https://github.com/dappnode)", "contributors": [ diff --git a/docker-compose.yml b/docker-compose.yml index 5bc55a6..3a5ed43 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.4' services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.9' + image: 'geth.dnp.dappnode.eth:0.1.11' build: context: ./build args: From 26eb1b464dc9bcc7bf0045c21370c93203bfb699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Mon, 5 Oct 2020 10:33:43 +0200 Subject: [PATCH 034/140] Improve autorelease --- .github/workflows/auto_check.yml | 1 - .github/workflows/dispatch_release.yml | 36 -------------------------- build/Dockerfile | 9 ------- dappnode_package.json | 4 --- 4 files changed, 50 deletions(-) delete mode 100644 .github/workflows/dispatch_release.yml diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index a7f8096..409a3e5 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -5,7 +5,6 @@ on: # * is a special character in YAML so you have to quote this string # - cron: '00 */4 * * *' - cron: '* * * * *' - - cron: '00 */12 * * *' jobs: dappnodepackage-update: name: Trigger the DAppNode Package update diff --git a/.github/workflows/dispatch_release.yml b/.github/workflows/dispatch_release.yml deleted file mode 100644 index 64acb74..0000000 --- a/.github/workflows/dispatch_release.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: "Main" -on: - repository_dispatch: - pull_request: - push: - branches: - - "master" - - "v[0-9]+.[0-9]+.[0-9]+" - paths-ignore: - - "README.md" - -jobs: - build-test: - runs-on: ubuntu-16.04 - name: Build test - if: github.event_name != 'push' - steps: - - name: Checkout - uses: actions/checkout@v2 - - run: docker-compose build - - release: - name: Release - runs-on: ubuntu-latest - if: github.event_name == 'push' || github.event_name == 'repository_dispatch' - steps: - - uses: actions/checkout@v2 - - name: Setup node - uses: actions/setup-node@v1 - with: - node-version: "10.x" - - name: Publish - run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DEVELOPER_ADDRESS: "0xf35960302a07022aba880dffaec2fdd64d5bf1c1" diff --git a/build/Dockerfile b/build/Dockerfile index 4c58725..84e35bd 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -6,15 +6,6 @@ ARG UPSTREAM_VERSION RUN apk add --no-cache make gcc musl-dev linux-headers git && \ git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ cd go-ethereum && make geth - - -FROM alpine:edge -RUN apk add --no-cache make gcc musl-dev linux-headers git && \ - git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ - cd go-ethereum && make geth - -RUN apk --no-cache add \ - libstdc++ eudev-libs libgcc bash # Pull Geth into a second stage deploy alpine container FROM alpine:latest diff --git a/dappnode_package.json b/dappnode_package.json index f444d49..d5e96dd 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -19,10 +19,6 @@ "Blockchain" ], "license": "GLP-3.0", - "architectures": [ - "linux/amd64", - "linux/arm64" - ], "links": { "endpoint": "http://geth.dappnode:8545", "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" From 3257f24a6e47c29cef6e0ce1bd89497ac6bd268f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Mon, 5 Oct 2020 10:50:38 +0200 Subject: [PATCH 035/140] fix GHA --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6a48af9..876b899 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,7 @@ jobs: build-test: runs-on: ubuntu-16.04 name: Build test - if: github.event_name != 'push' + if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: - uses: actions/checkout@v2 - run: docker-compose build From bb79cf9cece6a72f04d8642f7b81594f9c4c7c8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Mon, 5 Oct 2020 10:56:43 +0200 Subject: [PATCH 036/140] Add repository_dispatch --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 876b899..e89d6e6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,5 +1,6 @@ name: "Main" on: + repository_dispatch: pull_request: push: branches: From c7f91cbd0aaa62ba1f3d5c6be059a2dd26fed87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Mon, 5 Oct 2020 11:28:59 +0200 Subject: [PATCH 037/140] Update main.yml --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e89d6e6..3f2d211 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,7 +21,7 @@ jobs: release: name: Release runs-on: ubuntu-latest - if: github.event_name == 'push' + if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 From d381217ee902fe5c392ee4b01933a7fb09a3d5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Mon, 5 Oct 2020 11:52:58 +0200 Subject: [PATCH 038/140] Update auto_check.yml --- .github/workflows/auto_check.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index 409a3e5..a974388 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -3,8 +3,7 @@ name: Update DAppNode package on: schedule: # * is a special character in YAML so you have to quote this string - # - cron: '00 */4 * * *' - - cron: '* * * * *' + - cron: '00 */4 * * *' jobs: dappnodepackage-update: name: Trigger the DAppNode Package update From 3639988ebd02ac6c084c4347db9c3eab2170c79c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Mon, 5 Oct 2020 12:39:58 +0200 Subject: [PATCH 039/140] Update auto_check.yml --- .github/workflows/auto_check.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index a974388..dacbebc 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -22,7 +22,15 @@ jobs: echo "::set-output name=trigger_update::true" fi echo ::set-output name=TAG::$UPSTREAM_TAG - + - name: update UPSTREAM_VERSION and commit changes + if: steps.get_tag.outputs.trigger_update == 'true' + run: | + sed -i "s/ UPSTREAM_VERSION: .*/ UPSTREAM_VERSION: ${{ steps.get_tag.outputs.TAG }}/g" docker-compose.yml + sed -i "s/ \"upstreamVersion\": \".*\",/ \"upstreamVersion\": \"${{ steps.get_tag.outputs.TAG }}\",/g" dappnode_package.json + git config --global user.email "eduadiez@gmail.com" + git config --global user.name "Eduardo" + git commit -am "Github action bumped version to ${{ steps.get_tag.outputs.TAG }}" + git push - name: Send dispatch event to the DAppNode Package repository if: steps.get_tag.outputs.trigger_update == 'true' run: | From b179fb3ab08f07d7583fe21cb3e6d2b3baf812cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Mon, 5 Oct 2020 13:00:52 +0200 Subject: [PATCH 040/140] Update dappnode_package.json --- dappnode_package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index d5e96dd..912ef51 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.9", - "upstreamVersion": "v1.9.21", + "upstreamVersion": "v1.9.22", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", @@ -30,4 +30,4 @@ "bugs": { "url": "https://github.com/dappnode/DAppNodePackage-geth/issues" } -} \ No newline at end of file +} From 62e3e422dd0f5d1531038b01c66f4da444706686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Mon, 5 Oct 2020 13:01:09 +0200 Subject: [PATCH 041/140] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3a5ed43..1ba1667 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.9.21 + UPSTREAM_VERSION: v1.9.22 volumes: - 'geth:/root/.ethereum' environment: From 5dea9eb29ab4bf41d82de0685f21307a0a43daab Mon Sep 17 00:00:00 2001 From: Eduardo Date: Thu, 15 Oct 2020 12:04:57 +0000 Subject: [PATCH 042/140] Github action bumped version to v1.9.23 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 912ef51..6f2c9e4 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.9", - "upstreamVersion": "v1.9.22", + "upstreamVersion": "v1.9.23", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", diff --git a/docker-compose.yml b/docker-compose.yml index 1ba1667..ba9f387 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.9.22 + UPSTREAM_VERSION: v1.9.23 volumes: - 'geth:/root/.ethereum' environment: From 12866c74566074d89e2b73ba0dc753ac752ad614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Thu, 12 Nov 2020 22:48:25 +0100 Subject: [PATCH 043/140] Bump golang version to 1.15.5 --- build/Dockerfile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 84e35bd..977ecd1 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,10 +1,15 @@ # Build Geth in a stock Go builder container -FROM golang:1.14-alpine as builder +FROM golang:1.15-alpine as builder ARG UPSTREAM_VERSION -RUN apk add --no-cache make gcc musl-dev linux-headers git && \ - git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ +RUN apk add --no-cache make gcc musl-dev linux-headers git +ADD https://golang.org/dl/go1.15.5.src.tar.gz /tmp/go.tar.gz +RUN (cd /tmp && tar -xf go.tar.gz) +RUN (cd /tmp/go/src && ./make.bash) +ENV PATH="/tmp/go/bin:${PATH}" + +RUN git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ cd go-ethereum && make geth # Pull Geth into a second stage deploy alpine container From c75e5c1937398a683cc00be26201d1c36fe98208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Thu, 12 Nov 2020 22:53:43 +0100 Subject: [PATCH 044/140] Bumo version --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index ba9f387..f9ab744 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.9.23 + UPSTREAM_VERSION: v1.9.24 volumes: - 'geth:/root/.ethereum' environment: From 58d756e94b4511d3dbbb61683e534b5742955229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Thu, 12 Nov 2020 22:54:37 +0100 Subject: [PATCH 045/140] Add bash --- build/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile b/build/Dockerfile index 977ecd1..8de01cf 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -3,7 +3,7 @@ FROM golang:1.15-alpine as builder ARG UPSTREAM_VERSION -RUN apk add --no-cache make gcc musl-dev linux-headers git +RUN apk add --no-cache make gcc musl-dev linux-headers git bash ADD https://golang.org/dl/go1.15.5.src.tar.gz /tmp/go.tar.gz RUN (cd /tmp && tar -xf go.tar.gz) RUN (cd /tmp/go/src && ./make.bash) From e3a8d037bfedbd0d14c434bc9c41dfff79e82c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Fri, 13 Nov 2020 08:59:33 +0100 Subject: [PATCH 046/140] update deprecated flags --- build/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile b/build/Dockerfile index 8de01cf..4317efd 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -19,4 +19,4 @@ RUN apk add --no-cache ca-certificates COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin -ENTRYPOINT geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcvhosts "*" --ws --wsorigins "*" --wsaddr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --nousb $EXTRA_OPTS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --nousb $EXTRA_OPTS From 582375931d5e991c551be1a71f94fcb4048b7b32 Mon Sep 17 00:00:00 2001 From: Lion - dapplion <35266934+dapplion@users.noreply.github.com> Date: Wed, 18 Nov 2020 18:58:39 +0000 Subject: [PATCH 047/140] Add dockerTimeout What would be a sensible value for the max timeout? It should leave enough time for Geth to store pending states in memory. **MUST** make sure that signals propagate correctly beforehand --- dappnode_package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/dappnode_package.json b/dappnode_package.json index 6f2c9e4..7941477 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -10,6 +10,7 @@ "linux/arm64" ], "chain": "ethereum", + "dockerTimeout": "5min", "author": "DAppNode Association (https://github.com/dappnode)", "contributors": [ "Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)", From 72d55c8809e2186975b4b0c78cbbb8c914c8c2ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Wed, 25 Nov 2020 13:29:58 +0100 Subject: [PATCH 048/140] Minor fixes --- build/Dockerfile | 6 +----- docker-compose.yml | 10 +++++----- releases.json | 6 +++--- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 4317efd..3c8773f 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -4,10 +4,6 @@ FROM golang:1.15-alpine as builder ARG UPSTREAM_VERSION RUN apk add --no-cache make gcc musl-dev linux-headers git bash -ADD https://golang.org/dl/go1.15.5.src.tar.gz /tmp/go.tar.gz -RUN (cd /tmp && tar -xf go.tar.gz) -RUN (cd /tmp/go/src && ./make.bash) -ENV PATH="/tmp/go/bin:${PATH}" RUN git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ cd go-ethereum && make geth @@ -19,4 +15,4 @@ RUN apk add --no-cache ca-certificates COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --nousb $EXTRA_OPTS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} $EXTRA_OPTS diff --git a/docker-compose.yml b/docker-compose.yml index f9ab744..da9aee7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,18 @@ -version: '3.4' +version: "3.4" services: geth.dnp.dappnode.eth: - image: 'geth.dnp.dappnode.eth:0.1.11' + image: "geth.dnp.dappnode.eth:0.1.9" build: context: ./build args: UPSTREAM_VERSION: v1.9.24 volumes: - - 'geth:/root/.ethereum' + - "geth:/root/.ethereum" environment: - - 'EXTRA_OPTS=--rpcapi eth,net,web3,txpool' + - "EXTRA_OPTS=--rpcapi eth,net,web3,txpool --nousb" - SYNCMODE ports: - - '30303' + - "30303" - 30303/udp - 30304/udp restart: always diff --git a/releases.json b/releases.json index 48986a9..3c6bba0 100644 --- a/releases.json +++ b/releases.json @@ -55,10 +55,10 @@ "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.8&h=%2Fipfs%2FQmUf1uzqZdXyKt4YB96nr1F9GtxUWnPu8hSs7WXJnoc5Cj" }, "0.1.9": { - "hash": "/ipfs/QmbpQoSXzPcBwm1LUeVMPosgsVUf772pN32xjDyxWnPEHT", + "hash": "/ipfs/QmPF4HJoNmJkoFBedv2CfVQGdPECYTmnZU3kCTodN4vkqg", "uploadedTo": { - "remote": "Fri, 07 Aug 2020 13:19:24 GMT" + "dappnode": "Wed, 25 Nov 2020 09:18:56 GMT" }, "link": "http://my.dappnode/#/sdk/publish/r=geth.dnp.dappnode.eth&v=0.1.9&h=%2Fipfs%2FQmbpQoSXzPcBwm1LUeVMPosgsVUf772pN32xjDyxWnPEHT" } -} \ No newline at end of file +} From c1950193c9fc84a604dd7bf2d468f3904ecc2a72 Mon Sep 17 00:00:00 2001 From: dapplion Date: Wed, 25 Nov 2020 13:47:34 +0000 Subject: [PATCH 049/140] Fix versions --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 7941477..33ff18d 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,6 +1,6 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.9", + "version": "0.1.12", "upstreamVersion": "v1.9.23", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", diff --git a/docker-compose.yml b/docker-compose.yml index da9aee7..74702f6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.4" services: geth.dnp.dappnode.eth: - image: "geth.dnp.dappnode.eth:0.1.9" + image: "geth.dnp.dappnode.eth:0.1.12" build: context: ./build args: From a7b132a52ac1bae4ee1a8574362c040873a2af6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Wed, 16 Dec 2020 08:38:44 +0100 Subject: [PATCH 050/140] Increase timeout --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index 7941477..068b7a5 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -10,7 +10,7 @@ "linux/arm64" ], "chain": "ethereum", - "dockerTimeout": "5min", + "dockerTimeout": "20min", "author": "DAppNode Association (https://github.com/dappnode)", "contributors": [ "Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)", From cec3afda30b518b6d1a071a043b1b00b44f44954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Wed, 16 Dec 2020 08:41:20 +0100 Subject: [PATCH 051/140] Bump version and add metrics --- build/Dockerfile | 2 +- docker-compose.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 3c8773f..033866d 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -15,4 +15,4 @@ RUN apk add --no-cache ca-certificates COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} $EXTRA_OPTS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTS diff --git a/docker-compose.yml b/docker-compose.yml index da9aee7..5ff2e99 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.9.24 + UPSTREAM_VERSION: v1.9.25 volumes: - "geth:/root/.ethereum" environment: @@ -15,6 +15,6 @@ services: - "30303" - 30303/udp - 30304/udp - restart: always + restart: unless-stopped volumes: geth: {} From d1190c15e3064daa7e280cb040ec3cba3be7067f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Fri, 22 Jan 2021 10:30:51 +0100 Subject: [PATCH 052/140] Update auto_check.yml --- .github/workflows/auto_check.yml | 46 ++++++++------------------------ 1 file changed, 11 insertions(+), 35 deletions(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index dacbebc..616f040 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -1,41 +1,17 @@ -name: Update DAppNode package +name: Bump upstream version on: schedule: - # * is a special character in YAML so you have to quote this string - - cron: '00 */4 * * *' + - cron: "00 */4 * * *" + push: + branches: + - "master" + workflow_dispatch: jobs: - dappnodepackage-update: - name: Trigger the DAppNode Package update + bump-upstream: runs-on: ubuntu-latest - env: - DISPATCH_REPO: dappnode/DAppNodePackage-geth - UPSTREAM_REPO: ethereum/go-ethereum steps: - - uses: actions/checkout@v2 - - name: Get the tag - id: get_tag - run: | - UPSTREAM_TAG=$(curl https://api.github.com/repos/$UPSTREAM_REPO/tags | jq .[0].name | tr -d "\"" ) - DNP_UPSTREAM=$(cat dappnode_package.json | jq .upstreamVersion | tr -d "\"" ) - if [ $UPSTREAM_TAG != $DNP_UPSTREAM ];then - echo "::set-output name=trigger_update::true" - fi - echo ::set-output name=TAG::$UPSTREAM_TAG - - name: update UPSTREAM_VERSION and commit changes - if: steps.get_tag.outputs.trigger_update == 'true' - run: | - sed -i "s/ UPSTREAM_VERSION: .*/ UPSTREAM_VERSION: ${{ steps.get_tag.outputs.TAG }}/g" docker-compose.yml - sed -i "s/ \"upstreamVersion\": \".*\",/ \"upstreamVersion\": \"${{ steps.get_tag.outputs.TAG }}\",/g" dappnode_package.json - git config --global user.email "eduadiez@gmail.com" - git config --global user.name "Eduardo" - git commit -am "Github action bumped version to ${{ steps.get_tag.outputs.TAG }}" - git push - - name: Send dispatch event to the DAppNode Package repository - if: steps.get_tag.outputs.trigger_update == 'true' - run: | - curl -v -X POST -u "${{ secrets.PAT_GITHUB }}" \ - -H "Accept: application/vnd.github.everest-preview+json" \ - -H "Content-Type: application/json" \ - --data '{"event_type":"new_release", "client_payload": { "tag":"${{ steps.get_tag.outputs.TAG }}"}}' \ - https://api.github.com/repos/$DISPATCH_REPO/dispatches + - uses: actions/checkout@v2 + - uses: dappnode/dnp-bump-upstream-action@v1 + with: + github_token: ${{ secrets.PERSONAL_TOKEN }} From f7be8dc09e1097d7828ba3128d68d20359d44c6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Fri, 22 Jan 2021 10:35:02 +0100 Subject: [PATCH 053/140] Update dappnode_package.json Add ethereum/go-ethereum --- dappnode_package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/dappnode_package.json b/dappnode_package.json index f3645d3..daea3af 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -2,6 +2,7 @@ "name": "geth.dnp.dappnode.eth", "version": "0.1.12", "upstreamVersion": "v1.9.23", + "upstreamRepo": "ethereum/go-ethereum", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", From 5a3fc66cde14de76b96d60b62cbbb920fc147320 Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Sat, 20 Feb 2021 18:17:08 +0100 Subject: [PATCH 054/140] Update auto-check action --- .github/workflows/auto_check.yml | 12 +++++++----- dappnode_package.json | 10 +++------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index 616f040..40f3473 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -6,12 +6,14 @@ on: push: branches: - "master" - workflow_dispatch: + jobs: - bump-upstream: + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: dappnode/dnp-bump-upstream-action@v1 - with: - github_token: ${{ secrets.PERSONAL_TOKEN }} + - run: npx @dappnode/dappnodesdk github-action bump-upstream + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }} + PINATA_SECRET_API_KEY: ${{ secrets.PINATA_SECRET_API_KEY }} diff --git a/dappnode_package.json b/dappnode_package.json index daea3af..f07ae78 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -3,13 +3,11 @@ "version": "0.1.12", "upstreamVersion": "v1.9.23", "upstreamRepo": "ethereum/go-ethereum", + "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", "type": "library", - "architectures": [ - "linux/amd64", - "linux/arm64" - ], + "architectures": ["linux/amd64", "linux/arm64"], "chain": "ethereum", "dockerTimeout": "20min", "author": "DAppNode Association (https://github.com/dappnode)", @@ -17,9 +15,7 @@ "Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)", "Eduardo Antuña (https://github.com/eduadiez)" ], - "categories": [ - "Blockchain" - ], + "categories": ["Blockchain"], "license": "GLP-3.0", "links": { "endpoint": "http://geth.dappnode:8545", From 7059108ed7f747250dc9a0b75a75c289c5d2ca3f Mon Sep 17 00:00:00 2001 From: eduadiez Date: Mon, 8 Mar 2021 12:32:31 +0000 Subject: [PATCH 055/140] bump ethereum/go-ethereum to v1.10.1 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index f07ae78..f8cf222 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.12", - "upstreamVersion": "v1.9.23", + "upstreamVersion": "v1.10.1", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 461b55e..0e3efce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.9.25 + UPSTREAM_VERSION: v1.10.1 volumes: - "geth:/root/.ethereum" environment: From 72d6453e67b71b29b65df9df9173f6ba962dcc44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= <20141918+eduadiez@users.noreply.github.com> Date: Wed, 10 Mar 2021 18:38:59 +0100 Subject: [PATCH 056/140] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0e3efce..be85265 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - "geth:/root/.ethereum" environment: - - "EXTRA_OPTS=--rpcapi eth,net,web3,txpool --nousb" + - "EXTRA_OPTS=--http.api eth,net,web3,txpool" - SYNCMODE ports: - "30303" From 7fefa1d1087ea7ef5f803e9dbcb684c8f9c228d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Antu=C3=B1a=20D=C3=ADez?= Date: Thu, 11 Mar 2021 16:16:51 +0100 Subject: [PATCH 057/140] fix deprecated parameter --- build/Dockerfile | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 033866d..2a5263b 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -15,4 +15,4 @@ RUN apk add --no-cache ca-certificates COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS diff --git a/docker-compose.yml b/docker-compose.yml index be85265..9a0a415 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - "geth:/root/.ethereum" environment: - - "EXTRA_OPTS=--http.api eth,net,web3,txpool" + - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" - SYNCMODE ports: - "30303" From ef20b8c2750f1ed12c09b4990e3c644af54488ae Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 8 Apr 2021 12:34:09 +0000 Subject: [PATCH 058/140] bump ethereum/go-ethereum to v1.10.2 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index f8cf222..b950569 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.12", - "upstreamVersion": "v1.10.1", + "upstreamVersion": "v1.10.2", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 9a0a415..15c753a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.1 + UPSTREAM_VERSION: v1.10.2 volumes: - "geth:/root/.ethereum" environment: From cfe641f1f34a967ab827d937fde54be9318a3263 Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 5 May 2021 12:31:31 +0000 Subject: [PATCH 059/140] bump ethereum/go-ethereum to v1.10.3 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index b950569..5b63323 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.12", - "upstreamVersion": "v1.10.2", + "upstreamVersion": "v1.10.3", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 15c753a..e22c846 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.2 + UPSTREAM_VERSION: v1.10.3 volumes: - "geth:/root/.ethereum" environment: From 08ed235f99b9c95f22352a669a44c82ee0e2864d Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 17 Jun 2021 12:30:11 +0000 Subject: [PATCH 060/140] bump ethereum/go-ethereum to v1.10.4 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 5b63323..ee976be 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.12", - "upstreamVersion": "v1.10.3", + "upstreamVersion": "v1.10.4", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index e22c846..b72cb0e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.3 + UPSTREAM_VERSION: v1.10.4 volumes: - "geth:/root/.ethereum" environment: From 85688f087d615d2d4a05f197100e57a71deafb57 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 25 Jun 2021 12:59:51 +0200 Subject: [PATCH 061/140] updated dappnode versions --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index ee976be..1912ecd 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,6 +1,6 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.12", + "version": "0.1.17", "upstreamVersion": "v1.10.4", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", diff --git a/docker-compose.yml b/docker-compose.yml index b72cb0e..4270e80 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.4" services: geth.dnp.dappnode.eth: - image: "geth.dnp.dappnode.eth:0.1.12" + image: "geth.dnp.dappnode.eth:0.1.17" build: context: ./build args: From 6cf17b056f71ddf991311aa923436f47f64a296d Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 14 Jul 2021 08:21:35 +0000 Subject: [PATCH 062/140] bump ethereum/go-ethereum to v1.10.5 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 1912ecd..be6837f 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.4", + "upstreamVersion": "v1.10.5", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 4270e80..06bc3ee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.4 + UPSTREAM_VERSION: v1.10.5 volumes: - "geth:/root/.ethereum" environment: From 9550b3c64ee3db906e96eb000cb293ea64bddd8f Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 22 Jul 2021 16:32:38 +0000 Subject: [PATCH 063/140] bump ethereum/go-ethereum to v1.10.6 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index be6837f..06a7821 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.5", + "upstreamVersion": "v1.10.6", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 06bc3ee..4d3e019 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.5 + UPSTREAM_VERSION: v1.10.6 volumes: - "geth:/root/.ethereum" environment: From d1bfa079183fbdefb16c65e17c0efa3e211eedbb Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 12 Aug 2021 08:20:37 +0000 Subject: [PATCH 064/140] bump ethereum/go-ethereum to v1.10.7 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 06a7821..81f8683 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.6", + "upstreamVersion": "v1.10.7", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 4d3e019..dd7501c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.6 + UPSTREAM_VERSION: v1.10.7 volumes: - "geth:/root/.ethereum" environment: From 7474744009c64f89a791d5561124045802d5a46f Mon Sep 17 00:00:00 2001 From: eduadiez Date: Tue, 24 Aug 2021 08:22:34 +0000 Subject: [PATCH 065/140] bump ethereum/go-ethereum to v1.10.8 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 81f8683..b3ac68f 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.7", + "upstreamVersion": "v1.10.8", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index dd7501c..ae659e2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.7 + UPSTREAM_VERSION: v1.10.8 volumes: - "geth:/root/.ethereum" environment: From 7395fe545421c5320336edb33f743bbac19791ad Mon Sep 17 00:00:00 2001 From: eduadiez Date: Tue, 24 Aug 2021 13:44:47 +0200 Subject: [PATCH 066/140] Refactor Dockerfile --- build/Dockerfile | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 2a5263b..2782b2d 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,18 +1,3 @@ -# Build Geth in a stock Go builder container -FROM golang:1.15-alpine as builder - -ARG UPSTREAM_VERSION - -RUN apk add --no-cache make gcc musl-dev linux-headers git bash - -RUN git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ - cd go-ethereum && make geth - -# Pull Geth into a second stage deploy alpine container -FROM alpine:latest - -RUN apk add --no-cache ca-certificates - -COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin +FROM ethereum/client-go:v1.10.8 ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS From 8a2bbf8a08dfc156cd47ca072dcdb03ad07b622e Mon Sep 17 00:00:00 2001 From: eduadiez Date: Tue, 24 Aug 2021 15:32:52 +0200 Subject: [PATCH 067/140] add UPSTREAM_VERSION --- build/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build/Dockerfile b/build/Dockerfile index 2782b2d..0e3958e 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,3 +1,5 @@ -FROM ethereum/client-go:v1.10.8 +ARG UPSTREAM_VERSION + +FROM ethereum/client-go:${UPSTREAM_VERSION} ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS From 44e0bbb119178daa67e9361b14be9c8a773a7b34 Mon Sep 17 00:00:00 2001 From: Luka Gulin Date: Mon, 4 Oct 2021 17:04:07 +0200 Subject: [PATCH 068/140] bump ethereum/go-ethereum to v1.10.9 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index b3ac68f..8831ebc 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.8", + "upstreamVersion": "v1.10.9", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index ae659e2..da11b23 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.8 + UPSTREAM_VERSION: v1.10.9 volumes: - "geth:/root/.ethereum" environment: From 027446ac95f12fceccb4830d3411b44d36e7ff32 Mon Sep 17 00:00:00 2001 From: eduadiez Date: Fri, 15 Oct 2021 12:31:19 +0000 Subject: [PATCH 069/140] bump ethereum/go-ethereum to v1.10.10 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 8831ebc..7f419d2 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.9", + "upstreamVersion": "v1.10.10", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index da11b23..42fe2b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.9 + UPSTREAM_VERSION: v1.10.10 volumes: - "geth:/root/.ethereum" environment: From d1bbbe8cac68819e501bb80edcfdd93aeb91796c Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 20 Oct 2021 12:31:47 +0000 Subject: [PATCH 070/140] bump ethereum/go-ethereum to v1.10.11 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 7f419d2..ded6bc3 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.10", + "upstreamVersion": "v1.10.11", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 42fe2b1..067a67f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.10 + UPSTREAM_VERSION: v1.10.11 volumes: - "geth:/root/.ethereum" environment: From b04efb3ae6e68500453bd08f73b822d1952b2e7d Mon Sep 17 00:00:00 2001 From: eduadiez Date: Mon, 8 Nov 2021 16:36:34 +0000 Subject: [PATCH 071/140] bump ethereum/go-ethereum to v1.10.12 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index ded6bc3..9908d6c 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.11", + "upstreamVersion": "v1.10.12", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 067a67f..b00cbe4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.11 + UPSTREAM_VERSION: v1.10.12 volumes: - "geth:/root/.ethereum" environment: From b0535a189657309faed1c801c7dc48d64d8a0f65 Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 24 Nov 2021 12:32:27 +0000 Subject: [PATCH 072/140] bump ethereum/go-ethereum to v1.10.13 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 9908d6c..f684cc3 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.12", + "upstreamVersion": "v1.10.13", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index b00cbe4..39b15b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.12 + UPSTREAM_VERSION: v1.10.13 volumes: - "geth:/root/.ethereum" environment: From 02c6ee15817ddfc758e4f3c6d6cd1eb00ae43577 Mon Sep 17 00:00:00 2001 From: Alex Peterson Date: Wed, 8 Dec 2021 18:02:18 -0600 Subject: [PATCH 073/140] fix typo in license type initially said GLP-3.0 not GPL-3.0 as is correct for GNU Public License 3 --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index f684cc3..02f62cd 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -16,7 +16,7 @@ "Eduardo Antuña (https://github.com/eduadiez)" ], "categories": ["Blockchain"], - "license": "GLP-3.0", + "license": "GPL-3.0", "links": { "endpoint": "http://geth.dappnode:8545", "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" From 654372fafb9de3d6074dfbb7da91894fd24ec5ad Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 23 Dec 2021 12:34:04 +0000 Subject: [PATCH 074/140] bump ethereum/go-ethereum to v1.10.14 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index f684cc3..50517b1 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.13", + "upstreamVersion": "v1.10.14", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 39b15b9..57bc190 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.13 + UPSTREAM_VERSION: v1.10.14 volumes: - "geth:/root/.ethereum" environment: From 5b8754875ce35efc69a3abf14d1f8095c5eca90a Mon Sep 17 00:00:00 2001 From: Alex Peterson Date: Thu, 23 Dec 2021 17:30:32 -0600 Subject: [PATCH 075/140] Change default syncmode to snap old default syncmode (Fast Bloom) has been deprecated in upstream v1.10.14 and needs to be changed for the new version to work. --- build/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile b/build/Dockerfile index 0e3958e..fced2c0 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -2,4 +2,4 @@ ARG UPSTREAM_VERSION FROM ethereum/client-go:${UPSTREAM_VERSION} -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS From f934642d84debb446a11f36f6b521c07baaff420 Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 5 Jan 2022 16:33:41 +0000 Subject: [PATCH 076/140] bump ethereum/go-ethereum to v1.10.15 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 2986333..919a7ea 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.14", + "upstreamVersion": "v1.10.15", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 57bc190..d9c45c9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.14 + UPSTREAM_VERSION: v1.10.15 volumes: - "geth:/root/.ethereum" environment: From 353cc610bb959e32d17d8e7f9e32c9b222088401 Mon Sep 17 00:00:00 2001 From: Tropicar Date: Wed, 5 Jan 2022 18:15:24 +0100 Subject: [PATCH 077/140] FIx ubuntu machine on build test --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3f2d211..c604e9f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,7 +11,7 @@ on: jobs: build-test: - runs-on: ubuntu-16.04 + runs-on: ubuntu-latest name: Build test if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: From dcb47a7b5b035935c1762afaf113ed8286e903f4 Mon Sep 17 00:00:00 2001 From: MysticRyuujin Date: Mon, 14 Feb 2022 20:51:28 -0600 Subject: [PATCH 078/140] Geth Package Suggestions --- build/Dockerfile | 2 +- dappnode_package.json | 8 +++++--- docker-compose.yml | 5 ++--- geth-avatar.png | Bin 4716 -> 60847 bytes 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index fced2c0..ddb894f 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -2,4 +2,4 @@ ARG UPSTREAM_VERSION FROM ethereum/client-go:${UPSTREAM_VERSION} -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.port 8545 --ws.addr 0.0.0.0 --ws.origins "*" --graphql --graphql.corsdomain "*" --graphql.vhosts "*" --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS diff --git a/dappnode_package.json b/dappnode_package.json index 919a7ea..c03176d 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,21 +1,23 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.17", + "version": "0.1.18", "upstreamVersion": "v1.10.15", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", "description": "Ethereum is a global, open-source platform for decentralized applications where you can write code that controls digital value, runs exactly as programmed, and is accessible anywhere in the world.", - "type": "library", + "type": "service", "architectures": ["linux/amd64", "linux/arm64"], "chain": "ethereum", "dockerTimeout": "20min", "author": "DAppNode Association (https://github.com/dappnode)", "contributors": [ "Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)", - "Eduardo Antuña (https://github.com/eduadiez)" + "Eduardo Antuña (https://github.com/eduadiez)", + "MysticRyuujin (https://github.com/MysticRyuujin)" ], "categories": ["Blockchain"], + "keywords": ["geth", "go-ethereum", "ethereum", "client", "execution"], "license": "GPL-3.0", "links": { "endpoint": "http://geth.dappnode:8545", diff --git a/docker-compose.yml b/docker-compose.yml index d9c45c9..598c92a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,11 +10,10 @@ services: - "geth:/root/.ethereum" environment: - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" - - SYNCMODE + - SYNCMODE=snap ports: - - "30303" + - 30303/tcp - 30303/udp - - 30304/udp restart: unless-stopped volumes: geth: {} diff --git a/geth-avatar.png b/geth-avatar.png index 27b1dff22b88bc96c5186fbd17e23a49f5f0a221..bf9f30cc606e90dd11a404ddceab2a419bc06423 100644 GIT binary patch literal 60847 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≧sPg9eQh{Qav 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 literal 4716 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 Date: Mon, 14 Feb 2022 20:54:45 -0600 Subject: [PATCH 079/140] Include ws.api flag --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 598c92a..22e1951 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - "geth:/root/.ethereum" environment: - - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" + - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool --ws.api eth,net,web3,txpool" - SYNCMODE=snap ports: - 30303/tcp From 78ffa51ce6fdefcb5c4ba09fa78628da7856465a Mon Sep 17 00:00:00 2001 From: MysticRyuujin Date: Tue, 15 Feb 2022 07:48:46 -0600 Subject: [PATCH 080/140] Update Geth Version to v1.10.16 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 22e1951..b4018d3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.15 + UPSTREAM_VERSION: v1.10.16 volumes: - "geth:/root/.ethereum" environment: From 2b6f55cd72c6b94bec872925083145cd0cab38af Mon Sep 17 00:00:00 2001 From: eduadiez Date: Tue, 15 Feb 2022 16:28:29 +0000 Subject: [PATCH 081/140] bump ethereum/go-ethereum to v1.10.16 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 919a7ea..97cb7b6 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.15", + "upstreamVersion": "v1.10.16", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index d9c45c9..461163d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.15 + UPSTREAM_VERSION: v1.10.16 volumes: - "geth:/root/.ethereum" environment: From 81b0a1971e7107b74ba3d7b1f74b808b3a13603d Mon Sep 17 00:00:00 2001 From: eduadiez Date: Tue, 29 Mar 2022 20:21:23 +0000 Subject: [PATCH 082/140] bump ethereum/go-ethereum to v1.10.17 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 97cb7b6..a4e0840 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.16", + "upstreamVersion": "v1.10.17", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 461163d..747940e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./build args: - UPSTREAM_VERSION: v1.10.16 + UPSTREAM_VERSION: v1.10.17 volumes: - "geth:/root/.ethereum" environment: From d3e3fafb46b2b0caf790343fb09e4011e791065a Mon Sep 17 00:00:00 2001 From: Tropicar Date: Thu, 31 Mar 2022 18:29:24 +0200 Subject: [PATCH 083/140] Not add these changes We think if an user what to add this features , the user has to add them using extra_opts env --- build/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile b/build/Dockerfile index ddb894f..4e86b90 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -2,4 +2,4 @@ ARG UPSTREAM_VERSION FROM ethereum/client-go:${UPSTREAM_VERSION} -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.port 8545 --ws.addr 0.0.0.0 --ws.origins "*" --graphql --graphql.corsdomain "*" --graphql.vhosts "*" --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS From 4892ce72f35150d5c7e3513bc366ceb4a4f2cf9d Mon Sep 17 00:00:00 2001 From: Tropicar <59098811+tropicar@users.noreply.github.com> Date: Thu, 31 Mar 2022 18:39:11 +0200 Subject: [PATCH 084/140] Remove ws api by default --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index b4018d3..eb5c692 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - "geth:/root/.ethereum" environment: - - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool --ws.api eth,net,web3,txpool" + - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool eth,net,web3,txpool" - SYNCMODE=snap ports: - 30303/tcp From 29bb33438c42f419470619f241c67009a03b922c Mon Sep 17 00:00:00 2001 From: Nabsku <12911176+Nabsku@users.noreply.github.com> Date: Sun, 3 Apr 2022 17:56:25 +0200 Subject: [PATCH 085/140] Fix wrong EXTRA_OPTIONS string --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index f9e0f82..7d5f085 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - "geth:/root/.ethereum" environment: - - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool eth,net,web3,txpool" + - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" - SYNCMODE=snap ports: - 30303/tcp From f0c60abe2bd72bd3dc64903d9ea44b85b67760e7 Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Wed, 18 May 2022 17:39:11 +0700 Subject: [PATCH 086/140] move build to src --- src/Dockerfile | 18 ++++++++++++++++++ {build => src/build}/Dockerfile | 0 2 files changed, 18 insertions(+) create mode 100644 src/Dockerfile rename {build => src/build}/Dockerfile (100%) diff --git a/src/Dockerfile b/src/Dockerfile new file mode 100644 index 0000000..033866d --- /dev/null +++ b/src/Dockerfile @@ -0,0 +1,18 @@ +# Build Geth in a stock Go builder container +FROM golang:1.15-alpine as builder + +ARG UPSTREAM_VERSION + +RUN apk add --no-cache make gcc musl-dev linux-headers git bash + +RUN git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ + cd go-ethereum && make geth + +# Pull Geth into a second stage deploy alpine container +FROM alpine:latest + +RUN apk add --no-cache ca-certificates + +COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin + +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTS diff --git a/build/Dockerfile b/src/build/Dockerfile similarity index 100% rename from build/Dockerfile rename to src/build/Dockerfile From ffc3ed84592f8f863a2e6fc1bb77823102a14cc4 Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Thu, 19 May 2022 00:19:50 +0700 Subject: [PATCH 087/140] Add src to docker-compose --- .gitignore | 2 +- src/Dockerfile => Dockerfile | 0 docker-compose.yml | 2 +- src/build/Dockerfile | 5 ----- 4 files changed, 2 insertions(+), 7 deletions(-) rename src/Dockerfile => Dockerfile (100%) delete mode 100644 src/build/Dockerfile diff --git a/.gitignore b/.gitignore index 9b98eb1..0aabd3e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -build_* +build .env \ No newline at end of file diff --git a/src/Dockerfile b/Dockerfile similarity index 100% rename from src/Dockerfile rename to Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml index 7d5f085..c9ead31 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ services: geth.dnp.dappnode.eth: image: "geth.dnp.dappnode.eth:0.1.17" build: - context: ./build + context: . args: UPSTREAM_VERSION: v1.10.17 volumes: diff --git a/src/build/Dockerfile b/src/build/Dockerfile deleted file mode 100644 index 4e86b90..0000000 --- a/src/build/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -ARG UPSTREAM_VERSION - -FROM ethereum/client-go:${UPSTREAM_VERSION} - -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS From 6addcfc127f232894d811831204a98709536d7b2 Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Thu, 19 May 2022 01:15:02 +0700 Subject: [PATCH 088/140] Revert unwanted changes --- Dockerfile | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 033866d..ca3511b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,5 @@ -# Build Geth in a stock Go builder container -FROM golang:1.15-alpine as builder - ARG UPSTREAM_VERSION -RUN apk add --no-cache make gcc musl-dev linux-headers git bash - -RUN git clone -b ${UPSTREAM_VERSION} https://github.com/ethereum/go-ethereum.git && \ - cd go-ethereum && make geth - -# Pull Geth into a second stage deploy alpine container -FROM alpine:latest - -RUN apk add --no-cache ca-certificates - -COPY --from=builder /go/go-ethereum/build/bin/geth /usr/local/bin +FROM ethereum/client-go:${UPSTREAM_VERSION} -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --ws.addr 0.0.0.0 --syncmode ${SYNCMODE:-fast} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTS +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS \ No newline at end of file From dbbb21a245245a4cbe76e1b4b9036a61d1668783 Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 25 May 2022 16:34:44 +0000 Subject: [PATCH 089/140] bump ethereum/go-ethereum to v1.10.18 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 3cf162e..d496187 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.17", + "upstreamVersion": "v1.10.18", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index c9ead31..796e1db 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.17 + UPSTREAM_VERSION: v1.10.18 volumes: - "geth:/root/.ethereum" environment: From 98715154157c6fa7d1db3634fdc79aa25046243a Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 15 Jun 2022 16:29:37 +0000 Subject: [PATCH 090/140] bump ethereum/go-ethereum to v1.10.19 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index d496187..ef2b30d 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.18", + "upstreamVersion": "v1.10.19", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 796e1db..55275cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.18 + UPSTREAM_VERSION: v1.10.19 volumes: - "geth:/root/.ethereum" environment: From fe26feb9ed88e6f14c9419d4e5d6d845b628003e Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 30 Jun 2022 02:08:12 +0000 Subject: [PATCH 091/140] bump ethereum/go-ethereum to v1.10.20 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index ef2b30d..aded988 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.19", + "upstreamVersion": "v1.10.20", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 55275cd..0d2caaf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.19 + UPSTREAM_VERSION: v1.10.20 volumes: - "geth:/root/.ethereum" environment: From 463aa3e783a56de26d8ee7939c9082483d006578 Mon Sep 17 00:00:00 2001 From: Tropicar Date: Thu, 30 Jun 2022 19:03:00 +0200 Subject: [PATCH 092/140] Hardcoded p2p ports According to this issue dappnode/DAppNode#457 We are selecting the host port for the client. --- docker-compose.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0d2caaf..6f5cc5b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,8 +12,7 @@ services: - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" - SYNCMODE=snap ports: - - 30303/tcp - - 30303/udp + - "30304:30303" restart: unless-stopped volumes: geth: {} From b8787ae4678fad9c25cfb8be0b1bdda57008904d Mon Sep 17 00:00:00 2001 From: Tropicar Date: Thu, 30 Jun 2022 19:14:53 +0200 Subject: [PATCH 093/140] Fix ports --- docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6f5cc5b..2b8868e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,7 +12,8 @@ services: - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" - SYNCMODE=snap ports: - - "30304:30303" + - "30304:30303/tcp" + - "30304:30303/udp" restart: unless-stopped volumes: geth: {} From 21f039e9287485a2101febb9c40fc4f9351c53cb Mon Sep 17 00:00:00 2001 From: Tropicar Date: Fri, 1 Jul 2022 12:00:14 +0200 Subject: [PATCH 094/140] Add port flag, port env, set up ports According to the docs of geth this is the flag to change the p2p port ``` --ports ``` https://geth.ethereum.org/docs/interface/command-line-options --- Dockerfile | 2 +- docker-compose.yml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index ca3511b..5a5d47b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,4 +2,4 @@ ARG UPSTREAM_VERSION FROM ethereum/client-go:${UPSTREAM_VERSION} -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --syncmode ${SYNCMODE:-snap} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS \ No newline at end of file +ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --syncmode ${SYNCMODE:-snap} --port ${P2P_PORT} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 2b8868e..05873f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,10 +10,11 @@ services: - "geth:/root/.ethereum" environment: - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" + - P2P_PORT=30304 - SYNCMODE=snap ports: - - "30304:30303/tcp" - - "30304:30303/udp" + - "30304:30304/tcp" + - "30304:30304/udp" restart: unless-stopped volumes: geth: {} From 36e786a739e8e97bd7a9a68e7e9001cb70407214 Mon Sep 17 00:00:00 2001 From: Tropicar Date: Mon, 4 Jul 2022 13:28:35 +0200 Subject: [PATCH 095/140] Change to the standard port --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 05873f5..db7fbae 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,8 +13,8 @@ services: - P2P_PORT=30304 - SYNCMODE=snap ports: - - "30304:30304/tcp" - - "30304:30304/udp" + - "30313:30313/tcp" + - "30313:30313/udp" restart: unless-stopped volumes: geth: {} From 1165b0df742bc93b002dded414221d0fd41a9a1e Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 27 Jul 2022 12:49:16 +0000 Subject: [PATCH 096/140] bump ethereum/go-ethereum to v1.10.21 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index aded988..439fe35 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.20", + "upstreamVersion": "v1.10.21", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index db7fbae..7788ea6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.20 + UPSTREAM_VERSION: v1.10.21 volumes: - "geth:/root/.ethereum" environment: From 8639d6bf522cbcb71c562d88b9c72df279a3b469 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 12 Aug 2022 11:21:28 +0200 Subject: [PATCH 097/140] Implement merge changes --- Dockerfile | 12 +++++++++++- dappnode_package.json | 3 ++- docker-compose.yml | 2 +- getting-started.md | 10 ++++++++++ jwtsecret.hex | 1 + 5 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 getting-started.md create mode 100644 jwtsecret.hex diff --git a/Dockerfile b/Dockerfile index 5a5d47b..47b0abc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,4 +2,14 @@ ARG UPSTREAM_VERSION FROM ethereum/client-go:${UPSTREAM_VERSION} -ENTRYPOINT geth --http --http.addr 0.0.0.0 --http.corsdomain "*" --http.vhosts "*" --syncmode ${SYNCMODE:-snap} --port ${P2P_PORT} --metrics --metrics.addr 0.0.0.0 $EXTRA_OPTIONS \ No newline at end of file +COPY jwtsecret.hex /jwtsecret + +ENTRYPOINT geth --http --http.addr 0.0.0.0 \ + --http.corsdomain "*" --http.vhosts "*" \ + --syncmode ${SYNCMODE:-snap} --port ${P2P_PORT} \ + --metrics --metrics.addr 0.0.0.0 \ + --authrpc.addr 0.0.0.0 \ + --authrpc.port 8551 \ + --authrpc.vhosts "*" \ + --authrpc.jwtsecret "/jwtsecret" \ + $EXTRA_OPTION \ No newline at end of file diff --git a/dappnode_package.json b/dappnode_package.json index 439fe35..8b25cd4 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -20,7 +20,8 @@ "keywords": ["geth", "go-ethereum", "ethereum", "client", "execution"], "license": "GPL-3.0", "links": { - "endpoint": "http://geth.dappnode:8545", + "api": "http://geth.dappnode:8545", + "api-engine": "http://geth.dappnode:8511", "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" }, "repository": { diff --git a/docker-compose.yml b/docker-compose.yml index 7788ea6..073af78 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - "geth:/root/.ethereum" environment: - - "EXTRA_OPTIONS=--http.api eth,net,web3,txpool" + - "EXTRA_OPTION=--http.api eth,engine,net,web3,txpool" - P2P_PORT=30304 - SYNCMODE=snap ports: diff --git a/getting-started.md b/getting-started.md new file mode 100644 index 0000000..e20f107 --- /dev/null +++ b/getting-started.md @@ -0,0 +1,10 @@ +## Geth (Execution Client) + +Geth is now ready for the merge! + +There are now two RPC APIs in Execution Clients: + +1. Querying API `http://geth.dappnode:8545`. Use this endpoint to query transactions on your node and connect your web3 wallet. +2. Engine API `http//geth.dappnode:8551`. Use this enpoint to connect your Beacon Chain (Consensus Layer) client. + +After the merge, if your Execution Client is not connected to a Consensus Layer client, you won't be able to use it to query the blockchain, nor will you be able to connect your wallet to it! diff --git a/jwtsecret.hex b/jwtsecret.hex new file mode 100644 index 0000000..68dc70a --- /dev/null +++ b/jwtsecret.hex @@ -0,0 +1 @@ +7ad9cfdec75eceb662f5e48f5765701c17f51a5233a60fbcfa5f9e495fa99d18 \ No newline at end of file From bf7980605ad6355746edd6f3ccf4269aad0a6733 Mon Sep 17 00:00:00 2001 From: pablo Date: Fri, 12 Aug 2022 11:46:59 +0200 Subject: [PATCH 098/140] fix typo --- getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started.md b/getting-started.md index e20f107..bc5eab8 100644 --- a/getting-started.md +++ b/getting-started.md @@ -1,4 +1,4 @@ -## Geth (Execution Client) +## Geth (Executionn Client) Geth is now ready for the merge! From c879b544f3753d030182d0d871907d279cfca112 Mon Sep 17 00:00:00 2001 From: eduadiez Date: Wed, 24 Aug 2022 12:43:46 +0000 Subject: [PATCH 099/140] bump ethereum/go-ethereum to v1.10.23 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 439fe35..4d8e549 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.21", + "upstreamVersion": "v1.10.23", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 7788ea6..6a16e3e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.21 + UPSTREAM_VERSION: v1.10.23 volumes: - "geth:/root/.ethereum" environment: From ab1ef9cb3c127ec29afd9b5398c9c1894d1da5be Mon Sep 17 00:00:00 2001 From: tropicar Date: Mon, 29 Aug 2022 18:29:23 +0000 Subject: [PATCH 100/140] bump ethereum/go-ethereum to v1.10.23 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 8b25cd4..ecbb9eb 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.21", + "upstreamVersion": "v1.10.23", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 073af78..ee31322 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.21 + UPSTREAM_VERSION: v1.10.23 volumes: - "geth:/root/.ethereum" environment: From 79371a690859c3f62b90653d1e52bb2f31c8996d Mon Sep 17 00:00:00 2001 From: Tropicar Date: Mon, 29 Aug 2022 23:13:24 +0200 Subject: [PATCH 101/140] Fix ports --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ee31322..21dd2f0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,8 +13,8 @@ services: - P2P_PORT=30304 - SYNCMODE=snap ports: - - "30313:30313/tcp" - - "30313:30313/udp" + - "30304:30304/tcp" + - "30304:30304/udp" restart: unless-stopped volumes: geth: {} From 0f12b88afc7eb4e9d5db936d70cb06d95fd0d6b5 Mon Sep 17 00:00:00 2001 From: Tropicar Date: Mon, 29 Aug 2022 23:19:39 +0200 Subject: [PATCH 102/140] Add ports According to this https://github.com/dappnode/DAppNode/issues/457 the old ports number are wrong --- docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 21dd2f0..0fbea93 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,11 +10,11 @@ services: - "geth:/root/.ethereum" environment: - "EXTRA_OPTION=--http.api eth,engine,net,web3,txpool" - - P2P_PORT=30304 + - P2P_PORT=30403 - SYNCMODE=snap ports: - - "30304:30304/tcp" - - "30304:30304/udp" + - "30403:30403/tcp" + - "30403:30403/udp" restart: unless-stopped volumes: geth: {} From 5f7fd1b2dc613e6d2bb7f53e219c34fb91dad3e8 Mon Sep 17 00:00:00 2001 From: Alex Peterson Date: Sun, 4 Sep 2022 17:04:35 -0500 Subject: [PATCH 103/140] fix typo fixed typo --- getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started.md b/getting-started.md index bc5eab8..e20f107 100644 --- a/getting-started.md +++ b/getting-started.md @@ -1,4 +1,4 @@ -## Geth (Executionn Client) +## Geth (Execution Client) Geth is now ready for the merge! From 6fe250a3f026ccf8c5af0c429f6f742f6221cef8 Mon Sep 17 00:00:00 2001 From: Alex Peterson Date: Tue, 6 Sep 2022 22:07:03 -0500 Subject: [PATCH 104/140] change name of link for proper display of link in UI --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index ecbb9eb..e9484d6 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -21,7 +21,7 @@ "license": "GPL-3.0", "links": { "api": "http://geth.dappnode:8545", - "api-engine": "http://geth.dappnode:8511", + "apiEngine": "http://geth.dappnode:8511", "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" }, "repository": { From d1af93e23f2559c638e45b2c72e630539ee48dd6 Mon Sep 17 00:00:00 2001 From: Lionel Ringenbach Date: Tue, 13 Sep 2022 12:29:58 -0700 Subject: [PATCH 105/140] Fix API engine link typo --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index e9484d6..9ca92d5 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -21,7 +21,7 @@ "license": "GPL-3.0", "links": { "api": "http://geth.dappnode:8545", - "apiEngine": "http://geth.dappnode:8511", + "apiEngine": "http://geth.dappnode:8551", "homepage": "https://github.com/dappnode/DAppNodePackage-geth#readme" }, "repository": { From 75099252e54f2121491588e3b09a607587686eb7 Mon Sep 17 00:00:00 2001 From: Alex Peterson Date: Tue, 13 Sep 2022 17:36:23 -0500 Subject: [PATCH 106/140] fix typo in link --- getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started.md b/getting-started.md index e20f107..eb6156c 100644 --- a/getting-started.md +++ b/getting-started.md @@ -5,6 +5,6 @@ Geth is now ready for the merge! There are now two RPC APIs in Execution Clients: 1. Querying API `http://geth.dappnode:8545`. Use this endpoint to query transactions on your node and connect your web3 wallet. -2. Engine API `http//geth.dappnode:8551`. Use this enpoint to connect your Beacon Chain (Consensus Layer) client. +2. Engine API `http://geth.dappnode:8551`. Use this enpoint to connect your Beacon Chain (Consensus Layer) client. After the merge, if your Execution Client is not connected to a Consensus Layer client, you won't be able to use it to query the blockchain, nor will you be able to connect your wallet to it! From 39ea768244521372bc02b596915dfe2375b1268d Mon Sep 17 00:00:00 2001 From: Tropicar Date: Thu, 15 Sep 2022 09:51:39 +0200 Subject: [PATCH 107/140] Change env var name --- Dockerfile | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 47b0abc..04c56a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ COPY jwtsecret.hex /jwtsecret ENTRYPOINT geth --http --http.addr 0.0.0.0 \ --http.corsdomain "*" --http.vhosts "*" \ - --syncmode ${SYNCMODE:-snap} --port ${P2P_PORT} \ + --syncmode ${SYNCMODE:-snap} --port ${P2P_PORTS} \ --metrics --metrics.addr 0.0.0.0 \ --authrpc.addr 0.0.0.0 \ --authrpc.port 8551 \ diff --git a/docker-compose.yml b/docker-compose.yml index 0fbea93..53822bc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: - "geth:/root/.ethereum" environment: - "EXTRA_OPTION=--http.api eth,engine,net,web3,txpool" - - P2P_PORT=30403 + - P2P_PORTS=30403 - SYNCMODE=snap ports: - "30403:30403/tcp" From 2bd11373fc382d7989523370366bb4dfcb7e0e63 Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 15 Sep 2022 16:34:45 +0000 Subject: [PATCH 108/140] bump ethereum/go-ethereum to v1.10.25 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index e9484d6..285359e 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.23", + "upstreamVersion": "v1.10.25", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 0fbea93..0f2ed62 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.23 + UPSTREAM_VERSION: v1.10.25 volumes: - "geth:/root/.ethereum" environment: From 3cca2d38e2017396acbd8bbb3a798359621ea8c6 Mon Sep 17 00:00:00 2001 From: Pablo Date: Wed, 19 Oct 2022 13:42:59 +0200 Subject: [PATCH 109/140] Implement stakers UI support --- Dockerfile | 17 +++---- dappnode_package.json | 8 +++- entrypoint.sh | 45 +++++++++++++++++++ getting-started.md | 2 +- security/default/jwtsecret.hex | 1 + security/lighthouse/jwtsecret.hex | 1 + security/nimbus/jwtsecret.hex | 1 + jwtsecret.hex => security/prysm/jwtsecret.hex | 0 security/teku/jwtsecret.hex | 1 + 9 files changed, 63 insertions(+), 13 deletions(-) create mode 100755 entrypoint.sh create mode 100644 security/default/jwtsecret.hex create mode 100644 security/lighthouse/jwtsecret.hex create mode 100644 security/nimbus/jwtsecret.hex rename jwtsecret.hex => security/prysm/jwtsecret.hex (100%) create mode 100644 security/teku/jwtsecret.hex diff --git a/Dockerfile b/Dockerfile index 04c56a4..650bcea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,14 +2,9 @@ ARG UPSTREAM_VERSION FROM ethereum/client-go:${UPSTREAM_VERSION} -COPY jwtsecret.hex /jwtsecret - -ENTRYPOINT geth --http --http.addr 0.0.0.0 \ - --http.corsdomain "*" --http.vhosts "*" \ - --syncmode ${SYNCMODE:-snap} --port ${P2P_PORTS} \ - --metrics --metrics.addr 0.0.0.0 \ - --authrpc.addr 0.0.0.0 \ - --authrpc.port 8551 \ - --authrpc.vhosts "*" \ - --authrpc.jwtsecret "/jwtsecret" \ - $EXTRA_OPTION \ No newline at end of file +COPY /security /security +COPY entrypoint.sh /usr/local/bin/entrypoint.sh + +RUN apk update && apk add curl + +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/dappnode_package.json b/dappnode_package.json index a8e2570..13b0726 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -30,5 +30,11 @@ }, "bugs": { "url": "https://github.com/dappnode/DAppNodePackage-geth/issues" - } + }, + "globalEnvs": [ + { + "envs": ["CONSENSUS_CLIENT_MAINNET"], + "services": ["geth.dnp.dappnode.eth"] + } + ] } diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..070d039 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +case "$_DAPPNODE_GLOBAL_CONSENSUS_CLIENT_MAINNET" in +"prysm.dnp.dappnode.eth") + echo "Using prysm.dnp.dappnode.eth" + JWT_PATH="/security/prysm/jwtsecret.hex" + ;; +"lighthouse.dnp.dappnode.eth") + echo "Using lighthouse.dnp.dappnode.eth" + JWT_PATH="/security/lighthouse/jwtsecret.hex" + ;; +"teku.dnp.dappnode.eth") + echo "Using teku.dnp.dappnode.eth" + JWT_PATH="/security/teku/jwtsecret.hex" + ;; +"nimbus.dnp.dappnode.eth") + echo "Using nimbus.dnp.dappnode.eth" + JWT_PATH="/security/nimbus/jwtsecret.hex" + ;; +*) + echo "Using default" + JWT_PATH="/security/default/jwtsecret.hex" + ;; +esac + +# Print the jwt to the dappmanager +JWT=$(cat $JWT_PATH) +curl -X POST "http://my.dappnode/data-send?key=jwt&data=${JWT}" + +exec geth - \ + --http --http.addr 0.0.0.0 \ + --http.corsdomain "*" \ + --http.vhosts "*" \ + --syncmode ${SYNCMODE:-snap} \ + --ws \ + --ws.origins "*" \ + --ws.addr 0.0.0.0 \ + --port ${P2P_PORT} \ + --metrics \ + --metrics.addr 0.0.0.0 \ + --authrpc.addr 0.0.0.0 \ + --authrpc.port 8551 \ + --authrpc.vhosts "*" \ + --authrpc.jwtsecret ${JWT_PATH} \ + $EXTRA_OPTION diff --git a/getting-started.md b/getting-started.md index eb6156c..e20f107 100644 --- a/getting-started.md +++ b/getting-started.md @@ -5,6 +5,6 @@ Geth is now ready for the merge! There are now two RPC APIs in Execution Clients: 1. Querying API `http://geth.dappnode:8545`. Use this endpoint to query transactions on your node and connect your web3 wallet. -2. Engine API `http://geth.dappnode:8551`. Use this enpoint to connect your Beacon Chain (Consensus Layer) client. +2. Engine API `http//geth.dappnode:8551`. Use this enpoint to connect your Beacon Chain (Consensus Layer) client. After the merge, if your Execution Client is not connected to a Consensus Layer client, you won't be able to use it to query the blockchain, nor will you be able to connect your wallet to it! diff --git a/security/default/jwtsecret.hex b/security/default/jwtsecret.hex new file mode 100644 index 0000000..dcf3548 --- /dev/null +++ b/security/default/jwtsecret.hex @@ -0,0 +1 @@ +7ad9cfdec75eceb662f5e48f5765701c17f51a5233a60fbcfa5f9e495fa99d15 \ No newline at end of file diff --git a/security/lighthouse/jwtsecret.hex b/security/lighthouse/jwtsecret.hex new file mode 100644 index 0000000..137fd76 --- /dev/null +++ b/security/lighthouse/jwtsecret.hex @@ -0,0 +1 @@ +7ad9cfdec75eceb662f5e48f5765701c17f51a5233a60fbcfa5f9e495fa99d16 \ No newline at end of file diff --git a/security/nimbus/jwtsecret.hex b/security/nimbus/jwtsecret.hex new file mode 100644 index 0000000..53d2fa8 --- /dev/null +++ b/security/nimbus/jwtsecret.hex @@ -0,0 +1 @@ +7ad9cfdec75eceb662f5e48f5765701c17f51a5233a60fbcfa5f9e495fa99d17 \ No newline at end of file diff --git a/jwtsecret.hex b/security/prysm/jwtsecret.hex similarity index 100% rename from jwtsecret.hex rename to security/prysm/jwtsecret.hex diff --git a/security/teku/jwtsecret.hex b/security/teku/jwtsecret.hex new file mode 100644 index 0000000..9ef7300 --- /dev/null +++ b/security/teku/jwtsecret.hex @@ -0,0 +1 @@ +7ad9cfdec75eceb662f5e48f5765701c17f51a5233a60fbcfa5f9e495fa99d19 \ No newline at end of file From e7daee0642c2ab3f2bd365db623cd302fb3910da Mon Sep 17 00:00:00 2001 From: eduadiez Date: Thu, 3 Nov 2022 12:48:32 +0000 Subject: [PATCH 110/140] bump ethereum/go-ethereum to v1.10.26 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index a8e2570..71c3211 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.25", + "upstreamVersion": "v1.10.26", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 8b9d278..afde164 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.25 + UPSTREAM_VERSION: v1.10.26 volumes: - "geth:/root/.ethereum" environment: From 9dcebe8e58c01c3d695fc854687d7484796b866e Mon Sep 17 00:00:00 2001 From: pablomendezroyo Date: Thu, 3 Nov 2022 17:52:17 +0100 Subject: [PATCH 111/140] fix entrypoint --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 070d039..0daf2a3 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -27,7 +27,7 @@ esac JWT=$(cat $JWT_PATH) curl -X POST "http://my.dappnode/data-send?key=jwt&data=${JWT}" -exec geth - \ +exec geth \ --http --http.addr 0.0.0.0 \ --http.corsdomain "*" \ --http.vhosts "*" \ From 4fdcab1b6dd332ff896a1013a91a9bc7698c3203 Mon Sep 17 00:00:00 2001 From: pablomendezroyo Date: Thu, 3 Nov 2022 18:07:01 +0100 Subject: [PATCH 112/140] fix typo env --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8b9d278..0f2ed62 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: - "geth:/root/.ethereum" environment: - "EXTRA_OPTION=--http.api eth,engine,net,web3,txpool" - - P2P_PORTS=30403 + - P2P_PORT=30403 - SYNCMODE=snap ports: - "30403:30403/tcp" From cfdedd98b88d9ab282b5fe26490b574585073027 Mon Sep 17 00:00:00 2001 From: pablomendezroyo <41727368+pablomendezroyo@users.noreply.github.com> Date: Fri, 11 Nov 2022 12:38:23 +0100 Subject: [PATCH 113/140] Set minimum dappnode version --- dappnode_package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index 13b0726..40c6180 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.17", - "upstreamVersion": "v1.10.25", + "upstreamVersion": "v1.10.26", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", @@ -31,6 +31,9 @@ "bugs": { "url": "https://github.com/dappnode/DAppNodePackage-geth/issues" }, + "requirements": { + "minimumDappnodeVersion": "0.2.60" + }, "globalEnvs": [ { "envs": ["CONSENSUS_CLIENT_MAINNET"], From 1fa21db08eb0c2ba825b87644fc4af70bcabbd58 Mon Sep 17 00:00:00 2001 From: pablomendezroyo <41727368+pablomendezroyo@users.noreply.github.com> Date: Fri, 11 Nov 2022 12:38:43 +0100 Subject: [PATCH 114/140] Bump version --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0f2ed62..82b1cd6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.10.25 + UPSTREAM_VERSION: v1.10.26 volumes: - "geth:/root/.ethereum" environment: From 16011cdd6b7c92ddca669b2b8a1bdff6b3eb073a Mon Sep 17 00:00:00 2001 From: Voss Date: Wed, 15 Feb 2023 07:09:40 -0600 Subject: [PATCH 115/140] add lodestar to stakersUI add lodestar JWT --- security/lodestar/jwtsecret.hex | 1 + 1 file changed, 1 insertion(+) create mode 100644 security/lodestar/jwtsecret.hex diff --git a/security/lodestar/jwtsecret.hex b/security/lodestar/jwtsecret.hex new file mode 100644 index 0000000..fa9ef2d --- /dev/null +++ b/security/lodestar/jwtsecret.hex @@ -0,0 +1 @@ +7ad9cfdec75eceb662f5e48f5765701c17f51a5233a60fbcfa5f9e495fa99d20 From d1c12f7618d672df1fb4b74f9ff0f00aa4c8c4fb Mon Sep 17 00:00:00 2001 From: Voss Date: Wed, 15 Feb 2023 07:12:17 -0600 Subject: [PATCH 116/140] add lodestar --- entrypoint.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/entrypoint.sh b/entrypoint.sh index 0daf2a3..650396a 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -13,6 +13,10 @@ case "$_DAPPNODE_GLOBAL_CONSENSUS_CLIENT_MAINNET" in echo "Using teku.dnp.dappnode.eth" JWT_PATH="/security/teku/jwtsecret.hex" ;; +"lodestar.dnp.dappnode.eth") + echo "Using lodestar.dnp.dappnode.eth" + JWT_PATH="/security/lodestar/jwtsecret.hex" + ;; "nimbus.dnp.dappnode.eth") echo "Using nimbus.dnp.dappnode.eth" JWT_PATH="/security/nimbus/jwtsecret.hex" From 7241815ad4d8a7d54cc5cd688b7e2437cc51a3ba Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 21 Feb 2023 16:10:11 +0100 Subject: [PATCH 117/140] Bump Geth upstream version v1.11.1 --- dappnode_package.json | 4 ++-- docker-compose.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 40c6180..3496f99 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.17", - "upstreamVersion": "v1.10.26", + "version": "0.1.38", + "upstreamVersion": "v1.11.1", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 82b1cd6..b1596be 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,11 @@ version: "3.4" services: geth.dnp.dappnode.eth: - image: "geth.dnp.dappnode.eth:0.1.17" + image: "geth.dnp.dappnode.eth:0.1.38" build: context: . args: - UPSTREAM_VERSION: v1.10.26 + UPSTREAM_VERSION: v1.11.1 volumes: - "geth:/root/.ethereum" environment: From adefccd51ddb1135fb7585d4930c78aa926c5766 Mon Sep 17 00:00:00 2001 From: alexpeterson91 Date: Wed, 22 Mar 2023 01:06:28 +0000 Subject: [PATCH 118/140] bump ethereum/go-ethereum to v1.11.5 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 3496f99..c28f3d8 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.38", - "upstreamVersion": "v1.11.1", + "upstreamVersion": "v1.11.5", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index b1596be..b578839 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.11.1 + UPSTREAM_VERSION: v1.11.5 volumes: - "geth:/root/.ethereum" environment: From 8d75655aea17b2f96eac918356f50ed590c0c88c Mon Sep 17 00:00:00 2001 From: pablomendezroyo <41727368+pablomendezroyo@users.noreply.github.com> Date: Fri, 24 Mar 2023 12:14:14 +0100 Subject: [PATCH 119/140] remove setup node --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c604e9f..feee1b9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,6 @@ jobs: if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - name: Publish run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset --timeout 2h env: From d95d3aa590d77b7e154f5328e53b2270ec20f37c Mon Sep 17 00:00:00 2001 From: alexpeterson91 Date: Thu, 20 Apr 2023 20:13:38 +0000 Subject: [PATCH 120/140] bump ethereum/go-ethereum to v1.11.6 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index c28f3d8..1d1a9f8 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.38", - "upstreamVersion": "v1.11.5", + "upstreamVersion": "v1.11.6", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index b578839..efc255e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.11.5 + UPSTREAM_VERSION: v1.11.6 volumes: - "geth:/root/.ethereum" environment: From 0ce067c1e4db7216142cc9fe67c2b3c12434119c Mon Sep 17 00:00:00 2001 From: dsimog01 <47595345+dsimog01@users.noreply.github.com> Date: Tue, 2 May 2023 16:34:14 +0200 Subject: [PATCH 121/140] Update main.yml --- .github/workflows/main.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index feee1b9..23d9b17 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,6 +17,15 @@ jobs: steps: - uses: actions/checkout@v2 - run: docker-compose build + + e2e-test: + runs-on: mainnet + needs: build-test + if: github.event_name != 'push' + name: End to end tests + steps: + - uses: actions/checkout@v2 + - run: npx @dappnode/dappnodesdk@latest github-action test-end-to-end --errorLogsTimeout 120 --healthCheckUrl http://geth.dappnode:8545 --network mainnet release: name: Release From 8fa9aab1ce54b6a21d94e7ba7ff34754ae972b4f Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 2 May 2023 16:38:43 +0200 Subject: [PATCH 122/140] Revert "Update main.yml" This reverts commit 0ce067c1e4db7216142cc9fe67c2b3c12434119c. --- .github/workflows/main.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 23d9b17..feee1b9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,15 +17,6 @@ jobs: steps: - uses: actions/checkout@v2 - run: docker-compose build - - e2e-test: - runs-on: mainnet - needs: build-test - if: github.event_name != 'push' - name: End to end tests - steps: - - uses: actions/checkout@v2 - - run: npx @dappnode/dappnodesdk@latest github-action test-end-to-end --errorLogsTimeout 120 --healthCheckUrl http://geth.dappnode:8545 --network mainnet release: name: Release From 30bdcb78df33aff5401862ed6538f94698891d2f Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 2 May 2023 16:42:57 +0200 Subject: [PATCH 123/140] Add e2e tests --- .github/workflows/main.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index feee1b9..519cd5e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,11 +13,20 @@ jobs: build-test: runs-on: ubuntu-latest name: Build test - if: github.event_name == 'push' || github.event_name == 'repository_dispatch' + if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: - uses: actions/checkout@v2 - run: docker-compose build + e2e-test: + runs-on: mainnet + needs: build-test + if: github.event_name != 'push' + name: End to end tests + steps: + - uses: actions/checkout@v2 + - run: npx @dappnode/dappnodesdk@latest github-action test-end-to-end --errorLogsTimeout 120 --healthCheckUrl http://geth.dappnode:8545 --network mainnet + release: name: Release runs-on: ubuntu-latest From 38d8671f02b1a0ad8f9fa5df5f81695cdd1e8278 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 2 May 2023 16:56:50 +0200 Subject: [PATCH 124/140] Update pkg version --- dappnode_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dappnode_package.json b/dappnode_package.json index 1d1a9f8..50c8ead 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,6 +1,6 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.38", + "version": "0.1.39", "upstreamVersion": "v1.11.6", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", From 11e1c79a367441ec14d456cb4d8193e8918544a4 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 2 May 2023 17:03:08 +0200 Subject: [PATCH 125/140] Always execute build test --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 519cd5e..1f2f3f2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,6 @@ jobs: build-test: runs-on: ubuntu-latest name: Build test - if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: - uses: actions/checkout@v2 - run: docker-compose build From 3c4ceaffff593923c0e0d6270a9856a2b7df11b3 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 2 May 2023 17:07:45 +0200 Subject: [PATCH 126/140] Edited build test --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1f2f3f2..adaeb76 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,7 +15,7 @@ jobs: name: Build test steps: - uses: actions/checkout@v2 - - run: docker-compose build + - run: npx @dappnode/dappnodesdk build --skip_save e2e-test: runs-on: mainnet From 52bd7e06993c1827b609d61116427058e3db1e3c Mon Sep 17 00:00:00 2001 From: dsimog01 <47595345+dsimog01@users.noreply.github.com> Date: Wed, 3 May 2023 09:49:35 +0200 Subject: [PATCH 127/140] Update main.yml --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index adaeb76..4e2ffc1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,6 +24,7 @@ jobs: name: End to end tests steps: - uses: actions/checkout@v2 + - run: nvm use 19.3.0 - run: npx @dappnode/dappnodesdk@latest github-action test-end-to-end --errorLogsTimeout 120 --healthCheckUrl http://geth.dappnode:8545 --network mainnet release: From 55cb389943c7d8596bf5efab23696229df61b604 Mon Sep 17 00:00:00 2001 From: dsimog01 <47595345+dsimog01@users.noreply.github.com> Date: Wed, 3 May 2023 09:52:05 +0200 Subject: [PATCH 128/140] Remove nvm command --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4e2ffc1..adaeb76 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,6 @@ jobs: name: End to end tests steps: - uses: actions/checkout@v2 - - run: nvm use 19.3.0 - run: npx @dappnode/dappnodesdk@latest github-action test-end-to-end --errorLogsTimeout 120 --healthCheckUrl http://geth.dappnode:8545 --network mainnet release: From a0c3297157d19409464b764cb2d0bbd9b8ae3d22 Mon Sep 17 00:00:00 2001 From: alexpeterson91 Date: Thu, 25 May 2023 12:26:27 +0000 Subject: [PATCH 129/140] bump ethereum/go-ethereum to v1.12.0 --- dappnode_package.json | 4 ++-- docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 50c8ead..c311eac 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.39", - "upstreamVersion": "v1.11.6", + "version": "0.1.41", + "upstreamVersion": "v1.12.0", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index efc255e..0e226c8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.11.6 + UPSTREAM_VERSION: v1.12.0 volumes: - "geth:/root/.ethereum" environment: From 97b7bca31202d5393b444988cd975a768c54f299 Mon Sep 17 00:00:00 2001 From: Voss Date: Sun, 2 Jul 2023 00:55:08 -0500 Subject: [PATCH 130/140] Bump GHA checkout to V3 --- .github/workflows/auto_check.yml | 2 +- .github/workflows/main.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index 40f3473..c37acfe 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -11,7 +11,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: npx @dappnode/dappnodesdk github-action bump-upstream env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index adaeb76..8d478f4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest name: Build test steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: npx @dappnode/dappnodesdk build --skip_save e2e-test: @@ -23,7 +23,7 @@ jobs: if: github.event_name != 'push' name: End to end tests steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: npx @dappnode/dappnodesdk@latest github-action test-end-to-end --errorLogsTimeout 120 --healthCheckUrl http://geth.dappnode:8545 --network mainnet release: @@ -31,7 +31,7 @@ jobs: runs-on: ubuntu-latest if: github.event_name == 'push' || github.event_name == 'repository_dispatch' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Publish run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset --timeout 2h env: From d3bbde6fa26b5ee0e4a03b93c95f7b78b31cd0d2 Mon Sep 17 00:00:00 2001 From: dsimog01 <47595345+dsimog01@users.noreply.github.com> Date: Mon, 14 Aug 2023 12:28:20 +0200 Subject: [PATCH 131/140] Update README.md --- README.md | 64 ++----------------------------------------------------- 1 file changed, 2 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 6c2daee..56f5371 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,8 @@ -# Geth DAppNode package - -[![DAppNodeStore Available](https://img.shields.io/badge/DAppNodeStore-Available-brightgreen.svg)](http://my.dappnode/#/installer/geth.dnp.dappnode.eth) - +# Geth Dappnode package [![Geth github](https://img.shields.io/badge/Geth-Github-blue.svg)](https://github.com/ethereum/go-ethereum) -You can use this package without installing it in your DAppNode following these instructions: - -## Prerequisites - -- git - - Install [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) commandline tool. - -- docker - - Install [docker](https://docs.docker.com/engine/installation). The community edition (docker-ce) will work. In Linux make sure you grant permissions to the current user to use docker by adding current user to docker group, `sudo usermod -aG docker $USER`. Once you update the users group, exit from the current terminal and open a new one to make effect. - -- docker-compose - - Install [docker-compose](https://docs.docker.com/compose/install) - -**Note**: Make sure you can run `git`, `docker ps`, `docker-compose` without any issue and without sudo command. - - -## Buidling - -`docker-compose build` - -## Running - -### Start - -`docker-compose up -d` - -### View logs - -`docker-compose logs -f` - -### Stop - -`docker-compose down` - -## Extra options - -You can edit the `docker-compose.yml` and add extra options, such as: -``` - - EXTRA_OPTS=--wsapi db,eth,net,ssh,miner,web3,personal,admin,txpool -``` - -## Connect using web3js - -If the package is running and you're connected to your dappnode you can use: -``` -var Web3 = require('web3'); -var web3 = new Web3('ws://my.geth.dappnode:8546') -web3.eth.getBlockNumber().then(console.log) -``` -In case you are running it locally: -``` -var Web3 = require('web3'); -var web3 = new Web3('ws://127.0.0.1:8546') -web3.eth.getBlockNumber().then(console.log) -``` +Dappnode Package for execution client Geth in Ethereum mainnet. ## License From 9d287570f0c2e11aaf549a2bdb52f05dc36ad889 Mon Sep 17 00:00:00 2001 From: alexpeterson91 Date: Sun, 17 Sep 2023 16:04:12 +0000 Subject: [PATCH 132/140] bump ethereum/go-ethereum to v1.13.1 --- dappnode_package.json | 4 ++-- docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index c311eac..0ecfaea 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.41", - "upstreamVersion": "v1.12.0", + "version": "0.1.42", + "upstreamVersion": "v1.13.1", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 0e226c8..51c3ef5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.12.0 + UPSTREAM_VERSION: v1.13.1 volumes: - "geth:/root/.ethereum" environment: From 81f49d4605a1ad366ea6d26cf24b565a609af473 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:46:40 +0100 Subject: [PATCH 133/140] bump ethereum/go-ethereum to v1.13.13 (#86) Co-authored-by: alexpeterson91 --- dappnode_package.json | 4 ++-- docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 0ecfaea..35ab178 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.42", - "upstreamVersion": "v1.13.1", + "version": "0.1.43", + "upstreamVersion": "v1.13.13", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 51c3ef5..b7bddb7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.13.1 + UPSTREAM_VERSION: v1.13.13 volumes: - "geth:/root/.ethereum" environment: From 430c0590622abf44e765f6c38aed8800ac5f84b5 Mon Sep 17 00:00:00 2001 From: alexpeterson91 Date: Tue, 27 Feb 2024 12:05:23 +0000 Subject: [PATCH 134/140] bump ethereum/go-ethereum to v1.13.14 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index 35ab178..db023b3 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.43", - "upstreamVersion": "v1.13.13", + "upstreamVersion": "v1.13.14", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index b7bddb7..6606ad9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.13.13 + UPSTREAM_VERSION: v1.13.14 volumes: - "geth:/root/.ethereum" environment: From 148daec9d75721df43693fc0bf0347a42160f807 Mon Sep 17 00:00:00 2001 From: Voss Date: Sun, 3 Mar 2024 15:45:23 -0600 Subject: [PATCH 135/140] update out of date wordings and clean up formating --- docker-compose.yml | 2 +- entrypoint.sh | 3 ++- getting-started.md | 4 +--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6606ad9..39489cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.4" +version: "3.5" services: geth.dnp.dappnode.eth: image: "geth.dnp.dappnode.eth:0.1.38" diff --git a/entrypoint.sh b/entrypoint.sh index 650396a..1a48dd0 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -32,7 +32,8 @@ JWT=$(cat $JWT_PATH) curl -X POST "http://my.dappnode/data-send?key=jwt&data=${JWT}" exec geth \ - --http --http.addr 0.0.0.0 \ + --http \ + --http.addr 0.0.0.0 \ --http.corsdomain "*" \ --http.vhosts "*" \ --syncmode ${SYNCMODE:-snap} \ diff --git a/getting-started.md b/getting-started.md index e20f107..3c3e5bf 100644 --- a/getting-started.md +++ b/getting-started.md @@ -1,6 +1,4 @@ -## Geth (Execution Client) - -Geth is now ready for the merge! +# Geth (Execution Client) There are now two RPC APIs in Execution Clients: From f345b0181058bd7a12593e36f4429a3594e54d5b Mon Sep 17 00:00:00 2001 From: Voss Date: Sun, 3 Mar 2024 15:49:32 -0600 Subject: [PATCH 136/140] update gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0aabd3e..449d92f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -build +build_* +.DS_Store .env \ No newline at end of file From 13560bdee52e08b88e2f85db33c9008f32e98cf1 Mon Sep 17 00:00:00 2001 From: Tom-K Date: Sat, 16 Mar 2024 16:20:51 +0800 Subject: [PATCH 137/140] Update getting-started.md Spelling: endpoint incorrectly spelled --- getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started.md b/getting-started.md index 3c3e5bf..d5a7966 100644 --- a/getting-started.md +++ b/getting-started.md @@ -3,6 +3,6 @@ There are now two RPC APIs in Execution Clients: 1. Querying API `http://geth.dappnode:8545`. Use this endpoint to query transactions on your node and connect your web3 wallet. -2. Engine API `http//geth.dappnode:8551`. Use this enpoint to connect your Beacon Chain (Consensus Layer) client. +2. Engine API `http//geth.dappnode:8551`. Use this endpoint to connect your Beacon Chain (Consensus Layer) client. After the merge, if your Execution Client is not connected to a Consensus Layer client, you won't be able to use it to query the blockchain, nor will you be able to connect your wallet to it! From f2f12cd489f6ffcf2ddfe1455569cb5ebd0d63ca Mon Sep 17 00:00:00 2001 From: Voss Date: Wed, 17 Apr 2024 01:25:59 -0500 Subject: [PATCH 138/140] Update auto_check.yml add workflow dispatch for urgent fixes --- .github/workflows/auto_check.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/auto_check.yml b/.github/workflows/auto_check.yml index c37acfe..f62a971 100644 --- a/.github/workflows/auto_check.yml +++ b/.github/workflows/auto_check.yml @@ -3,6 +3,7 @@ name: Bump upstream version on: schedule: - cron: "00 */4 * * *" + workflow_dispatch: push: branches: - "master" From ec3ca7eb5a18b1e941b0ca6647dfb7696f88dbb5 Mon Sep 17 00:00:00 2001 From: alexpeterson91 Date: Wed, 17 Apr 2024 06:26:41 +0000 Subject: [PATCH 139/140] bump ethereum/go-ethereum to v1.13.15 --- dappnode_package.json | 4 ++-- docker-compose.yml | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index db023b3..f42f9fa 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", - "version": "0.1.43", - "upstreamVersion": "v1.13.14", + "version": "0.1.44", + "upstreamVersion": "v1.13.15", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index 39489cd..ccc9bc8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,20 +1,20 @@ version: "3.5" services: geth.dnp.dappnode.eth: - image: "geth.dnp.dappnode.eth:0.1.38" + image: geth.dnp.dappnode.eth:0.1.38 build: context: . args: - UPSTREAM_VERSION: v1.13.14 + UPSTREAM_VERSION: v1.13.15 volumes: - - "geth:/root/.ethereum" + - geth:/root/.ethereum environment: - - "EXTRA_OPTION=--http.api eth,engine,net,web3,txpool" + - EXTRA_OPTION=--http.api eth,engine,net,web3,txpool - P2P_PORT=30403 - SYNCMODE=snap ports: - - "30403:30403/tcp" - - "30403:30403/udp" + - 30403:30403/tcp + - 30403:30403/udp restart: unless-stopped volumes: geth: {} From ce2891ffda3d746e5b77876f50474e06c8e5718e Mon Sep 17 00:00:00 2001 From: alexpeterson91 Date: Thu, 9 May 2024 12:05:57 +0000 Subject: [PATCH 140/140] bump ethereum/go-ethereum to v1.14.3 --- dappnode_package.json | 2 +- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dappnode_package.json b/dappnode_package.json index f42f9fa..ff5a827 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -1,7 +1,7 @@ { "name": "geth.dnp.dappnode.eth", "version": "0.1.44", - "upstreamVersion": "v1.13.15", + "upstreamVersion": "v1.14.3", "upstreamRepo": "ethereum/go-ethereum", "upstreamArg": "UPSTREAM_VERSION", "shortDescription": "Geth is the official Go implementation of the Ethereum protocol.", diff --git a/docker-compose.yml b/docker-compose.yml index ccc9bc8..78a638a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . args: - UPSTREAM_VERSION: v1.13.15 + UPSTREAM_VERSION: v1.14.3 volumes: - geth:/root/.ethereum environment: