Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker timeout #4

Open
wants to merge 62 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
8009178
Advance manifest to new version: 0.1.1
eduadiez Sep 5, 2019
4f8ff15
Update
eduadiez Sep 5, 2019
db3cccf
Updated
eduadiez Oct 21, 2019
024847a
Merge branch 'master' into v0.1.1
eduadiez Oct 21, 2019
135a818
Merge pull request #1 from dappnode/v0.1.1
eduadiez Oct 21, 2019
fbdf676
Bump version to Geth v1.9.8
eduadiez Nov 29, 2019
b801b89
Advance manifest to new version: 0.1.3
eduadiez Nov 29, 2019
d31ca98
Advance compose to new version: 0.1.3
eduadiez Nov 29, 2019
5a22cef
Bump version
eduadiez Dec 17, 2019
d0646be
Merge pull request #3 from dappnode/v0.1.3
eduadiez Dec 17, 2019
2e27620
Advance manifest to new version: 0.1.4
eduadiez Dec 17, 2019
6e9ac65
Advance compose to new version: 0.1.4
eduadiez Dec 17, 2019
09349cc
Bump geth version
eduadiez Jan 3, 2020
48a51a5
Merge pull request #4 from dappnode/v0.1.4
eduadiez Jan 3, 2020
f86c6a4
Advance manifest to new version: 0.1.5
eduadiez Mar 6, 2020
adaf06d
Advance compose to new version: 0.1.5
eduadiez Mar 6, 2020
601a72d
Added SYNCMODE env
eduadiez Mar 6, 2020
c999680
Bump version
eduadiez Apr 17, 2020
bf251a8
Merge branch 'master' into v0.1.5
eduadiez Apr 17, 2020
c7ea7ed
Merge pull request #5 from dappnode/v0.1.5
eduadiez Apr 17, 2020
1e509d9
bump version
eduadiez Jun 8, 2020
0f9c96c
Update auto_check.yml
eduadiez Jun 8, 2020
93a6df4
Update auto_check.yml
eduadiez Jun 8, 2020
5e6c58e
Add version
eduadiez Jun 8, 2020
4d1d4d3
Merge branch 'master' of github.com:dappnode/DAppNodePackage-geth
eduadiez Jun 8, 2020
2dc1d87
Github action update
eduadiez Jun 8, 2020
b31c25b
Bump to new version: 0.1.9
eduadiez Aug 7, 2020
73b92a3
Added UPSTREAM_VERSION
eduadiez Aug 7, 2020
4b37c73
Fix GHA
eduadiez Aug 7, 2020
4233d82
Merge pull request #8 from dappnode/v0.1.9
eduadiez Aug 7, 2020
aae7855
Update README.md
dapplion Sep 17, 2020
84b4b63
Merge pull request #9 from dappnode/dapplion-patch-1
dapplion Sep 17, 2020
0eb233f
Add main GA
dapplion Sep 23, 2020
a29ea19
Support multi-arch
dapplion Sep 23, 2020
6c0ea5a
Docker-compose build args as object format
dapplion Sep 23, 2020
67c1914
Merge pull request #10 from dappnode/next
dapplion Sep 23, 2020
00fcef1
Update auto_check.yml
eduadiez Sep 23, 2020
57881b0
Add ARM64 compatibility
eduadiez Oct 5, 2020
499826a
change version
eduadiez Oct 5, 2020
ae0ec7d
Update README.md
dapplion Sep 17, 2020
a4a4421
Add main GA
dapplion Sep 23, 2020
2370568
Support multi-arch
dapplion Sep 23, 2020
315b835
Bump to new version: 0.1.11
Sep 23, 2020
4dfe2ce
Merge branch 'master' into v0.1.11
eduadiez Oct 5, 2020
b0ba401
Merge pull request #11 from dappnode/v0.1.11
eduadiez Oct 5, 2020
26eb1b4
Improve autorelease
eduadiez Oct 5, 2020
3257f24
fix GHA
eduadiez Oct 5, 2020
bb79cf9
Add repository_dispatch
eduadiez Oct 5, 2020
c7f91cb
Update main.yml
eduadiez Oct 5, 2020
d381217
Update auto_check.yml
eduadiez Oct 5, 2020
3639988
Update auto_check.yml
eduadiez Oct 5, 2020
b179fb3
Update dappnode_package.json
eduadiez Oct 5, 2020
62e3e42
Update docker-compose.yml
eduadiez Oct 5, 2020
5dea9eb
Github action bumped version to v1.9.23
eduadiez Oct 15, 2020
12866c7
Bump golang version to 1.15.5
eduadiez Nov 12, 2020
c75e5c1
Bumo version
eduadiez Nov 12, 2020
58d756e
Add bash
eduadiez Nov 12, 2020
e3a8d03
update deprecated flags
eduadiez Nov 13, 2020
5823759
Add dockerTimeout
dapplion Nov 18, 2020
72d55c8
Minor fixes
eduadiez Nov 25, 2020
a7b132a
Increase timeout
eduadiez Dec 16, 2020
cec3afd
Bump version and add metrics
eduadiez Dec 16, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/auto_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Update DAppNode package

on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '00 */4 * * *'
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:
- 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
32 changes: 32 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
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' || github.event_name == 'repository_dispatch'
steps:
- 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
- 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"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
build_*
.env
69 changes: 69 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Geth 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
19 changes: 9 additions & 10 deletions build/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
# Build Geth in a stock Go builder container
FROM golang:1.11-alpine as builder
FROM golang:1.15-alpine as builder

WORKDIR /usr/src/app
ARG UPSTREAM_VERSION

RUN apk add --no-cache make gcc musl-dev linux-headers git jq

ARG COMMIT=cfbb969da803d4cc92e1a64fc1b3c06db299b564

RUN git clone https://github.com/ethereum/go-ethereum.git
RUN cd go-ethereum && git checkout $COMMIT && make geth
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 /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
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
52 changes: 28 additions & 24 deletions dappnode_package.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,34 @@
{
"name": "ethchain-geth.public.dappnode.eth",
"version": "0.0.3",
"description": "Mainnet Geth",
"avatar": "/ipfs/QmTfnrUdZWaMgr2Zi1h1Z7zS5CbYtQZRs72yqKZQHj5fxT",
"name": "geth.dnp.dappnode.eth",
"version": "0.1.9",
"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",
"architectures": [
"linux/amd64",
"linux/arm64"
],
"chain": "ethereum",
"image": {
"path": "ethchain-geth.public.dappnode.eth_0.0.3.tar.xz",
"hash": "/ipfs/QmdQF3arvXiEkJ8DSR1auzCqxyhpmv1fGL1acTBQYyZvfr",
"size": 16184810,
"restart": "always",
"ports": [
"61313:30303",
"61313:30303/udp",
"61314:30304"
],
"volumes": [
"ethchain-geth:/root/.ethereum/ethchain-geth"
],
"environment": [
"EXTRA_OPTS=--rpcapi eth,net,web3,txpool"
]
},
"author": "nanexcool",
"dockerTimeout": "20min",
"author": "DAppNode Association <admin@dappnode.io> (https://github.com/dappnode)",
"contributors": [
"Mariano Conti (nanexcool) (hhttps://github.com/nanexcool)",
"Eduardo Antuña <eduadiez@gmail.com> (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"
}
}
}
27 changes: 15 additions & 12 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
version: '3.4'
version: "3.4"
services:
ethchain-geth.public.dappnode.eth:
image: 'ethchain-geth.public.dappnode.eth:0.0.3'
build: ./build
geth.dnp.dappnode.eth:
image: "geth.dnp.dappnode.eth:0.1.9"
build:
context: ./build
args:
UPSTREAM_VERSION: v1.9.25
volumes:
- 'ethchain-geth:/root/.ethereum/ethchain-geth'
- "geth:/root/.ethereum"
environment:
- EXTRA_OPTS=
- "EXTRA_OPTS=--rpcapi eth,net,web3,txpool --nousb"
- SYNCMODE
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: unless-stopped
volumes:
ethchain-geth: {}
geth: {}
Binary file added geth-avatar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
64 changes: 64 additions & 0 deletions releases.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"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"
},
"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"
},
"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"
},
"0.1.7": {
"hash": "/ipfs/QmTujfYrQwWG7kRwQX4nBD7TmSDjjSfRkj4CdZW3rmDJLC",
"type": "directory",
"uploadedTo": {
"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/QmPF4HJoNmJkoFBedv2CfVQGdPECYTmnZU3kCTodN4vkqg",
"uploadedTo": {
"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"
}
}