Giter Site home page Giter Site logo

dappnode's Introduction

DAppNode

Website dappnode.io Documentation Wiki GIVETH Campaign GitHub All Releases GitPOAP Badge Twitter Follow Discord




Infrastructure for the decentralized world

DAppNode is empowering people by creating a simple, transparent system for hosting P2P clients for DApps, Cryptocurrencies, VPNs, IPFS and more

Discover DAppNode

DAppNode lowers the barrier of entry for non tech-savvy participants. It allows you to deploy, update, and manage P2P clients and nodes without leaving your browser. No terminal or command line interface.

Develop with DAppNode

DAppNode modular architecture allows any team to or project to publish a dockerized application to the DAppNode packages eco-system. Benefit from an enthusiastic crypto savvy user based and offer a user interface-only experience to lower onboarding friction.

Check out the DAppNodeSDK to learn how to get started.

Note: packages are published to Ethereum mainnet and incur costs. Given the current high gas prices the DAppNode team is willing to subsidize gas costs for packages of great interest to users.

Packages eco-system

The community and core team members have created many useful packages for users. Checkout the package explorer to browse an up-to-date list of all packages and their versions.

Champions

Champions are community members that are in charge of maintaining packages: keeping them updated and working. All packages in this list without a champion are actively looking for a champion. Join our DAppNode Discord #champion-process to suggest a package to be championed and/or offer to be a champion for a project you care about!

Package Champion
Avalanche Wimel
ARTIS-sigma1 -
Bee @tropicar
Bitcoin @Pol-Lanski
Block-explorer -
Cosmos Wimel
DMS @eduadiez
Eth2stats-client -
Ethereum Classic -
Ethereum Optimism -
Exporter @eduadiez
Geth @pablomendezroyo
Goerli Geth @pablomendezroyo
HTTPs Portal @3alpha
Ipfs Cluster @dapplion
Ipfs Pinner @dapplion
Kovan @pablomendezroyo
LightningNetwork @pablomendezroyo
Matrix -
Metrics Tools @eduadiez
Monero @pablomendezroyo
Nethermind @pablomendezroyo
Openethereum @pablomendezroyo
Owncloud @tropicar
Polkadot Kusama -
Prysm @pablomendezroyo
Prysm Pyrmont @pablomendezroyo
Raiden @eduadiez
Raiden Testnet @eduadiez
Rinkeby @pablomendezroyo
Ropsten @pablomendezroyo
Storj @pablomendezroyo
Tornado Cash Relayer -
Trustlines -
Turbo-geth @gnidan
Vipnode -
Wireguard @3alpha
ZCash -

Core packages

Get DAppNode

Get your DAppNode and start contributing to decentralization by running your own nodes.

Install DAppNode on your host machine or buy your DAppNode with all the stuff configured and prepared to be used in DAppNode shop

Install DAppNode with ISO

DAppNode ISO available is in: latest DAppNode release.

Install DAppNode on your host machine by burning DAppNode ISO to a DVD or creating a bootable USB. Follow the tutorial of your operating system below and come back when you are finished:

Developers: DAppNode ISO could be generated following these steps:

git clone https://github.com/dappnode/DAppNode.git
cd DAppNode
docker compose build
docker compose up

DAppNode iso will be generated inside images folder, to verify it:

ls -lrt images/DAppNode-*

Note: ISO could be generated as unattended/attended by editing the env var available in the docker-compose.yml file

Install DAppNode with scripts

Scripts are available in: latest DAppNode release.

DAppNode could be also installed on a host machine with an OS already running on it. DAppNode has been developed and configured to be run on Debian host machines. Therefore, it should work on Debian or Debian based (like Ubuntu) host machines. Minimum recommended Debian version is 11.

1. Prerequisites

Before installing DAppNode with the script option, make sure you fulfill the requirements by running the following script:

sudo wget -O - https://prerequisites.dappnode.io | sudo bash

2. Script installation

Once you make sure you have the requirements, install DAPpNode with the installation script:

sudo wget -O - https://installer.dappnode.io | sudo bash

3. Uninstall DAppNode

Uninstall DAppNode from your host machine by running the following command:

wget -qO - https://uninstaller.dappnode.io | sudo bash

4. Update DAppNode from scripts

To update DAppNode to the latest version using script:

sudo wget -O - https://installer.dappnode.io | sudo UPDATE=true bash

Releases

Create releases manually with Github actions, the Github action to run is: Pre-release. The requirements are:

  • Introduce the core packages versions
  • There must exist the corresponding core package release for the specified version

The release will contain:

  • Assets:
    • Scripts: dappnode_access_credentials.sh, dappnode_install.sh, dappnode_uninstall.sh, dappnode_install_pre.sh, dappnode_profile.sh
    • ISOs: DAppNode-vX-debian-bullseye-amd64-unattended.iso, DAppNode-vX-debian-bullseye-amd64-unattended.iso
  • Release body:
    • Table with core packages versions
    • Changes section
    • SHASUMs for unattended and attended ISOs
    • Default credentials

Testing with artifacts

Generate ISOs and test them by running the Github action: Artifacts. This action will generate an artifacts with the same assets as the release, useful for testing purposes.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Team members

Members of the White Hat Group (WHG) have spent countless hours bootstrapping and developing DAppNode in 2017. Currently, the project is maintained by a growing multi-disciplinary team:

  • Adviser & Instigator: Jordi Baylina
  • Project Lead: Eduadiez
  • Developer Lead: dapplion
  • Ecosystem Development Pol Lanski
  • Developer: Pablo
  • Developer: Carlos
  • Adviser: Griff Green

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details

Copyright

Copyright © (2018-2023) The DAppNode Association

dappnode's People

Contributors

3alpha avatar alexpeterson91 avatar artified avatar console-cowboy avatar dangerousfood avatar dapplion avatar dappnodedev avatar dsimog01 avatar eduadiez avatar griffgreen avatar lodotek avatar pablomendezroyo avatar pol-lanski avatar rex4539 avatar shelpin avatar tolbrino avatar tropicar avatar vdo avatar yalormewn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dappnode's Issues

Clearly display that a core package can be updated

@dapplion commented on Fri Jul 27 2018

  • When core packages can be updated, display that in a way more obvious way to the user, maybe with an alert on top of the page are, a popup, etc.
  • (Todo, research) Have a script that lets you update multiple core packages at once, for critical updates specially. Maybe use the directory functionality tagging this packages as "critical", and the admin will process this info and alert the user that a critical update is necessary. Upon user approval install all critical updates at once.

Domain scoped global envs - SPECS

Add global ENVs to DAppNode. There will be two types of global envs.

Domain-scoped global ENVs

Generated by specific DNPs. The DNPs will have to request access to each domain of ENVs in the manifest. They can also provide default values to the ENVs. The ENV values will be editable from the ADMIN UI just as regular ENVs. A file will be created in DNCORE/dnp-name.global.dappnode.env.

The following simplified manifests exemplify a use case. The bitcoin DNP needs to set RPC credentials which the ln DNP needs to know in order to connect. The bitcoin DNP manifest declares a global ENVs domain bitcoin.dnp.dappnode.eth and declares their default values. Then, the ln DNP manifest declares again the same domain, but without providing values.

{
  name: "bitcoin.dnp.dappnode.eth",
  image: {
    globalEnvs: {
      bitcoin.dnp.dappnode.eth: {
        RPCUSER: "dappnode",
        RPCPASS: "dappnode",
      }
    }
  }
}
{
  name: "ln.dnp.dappnode.eth",
  image: {
    globalEnvs: {
      bitcoin.dnp.dappnode.eth: {}
    }
  }
}

This will result in both DNPs having the bitcoin.dnp.dappnode.eth.global.dappnode.env file linked in the env_file section of the docker-compose.yml and the default values set.

dnp_repo/bitcoin.dnp.dappnode.eth/docker-compose.yml

bitcoin.dnp.dappnode.eth:
  env_file:
    - /usr/src/dappnode/DNCORE/bitcoin.dnp.dappnode.eth.global.dappnode.env

dnp_repo/ln.dnp.dappnode.eth/docker-compose.yml

ln.dnp.dappnode.eth:
  env_file:
    - /usr/src/dappnode/DNCORE/bitcoin.dnp.dappnode.eth.global.dappnode.env

DNCORE/bitcoin.dnp.dappnode.eth.global.dappnode.env

RPCUSER=dappnode
RPCPASS=dappnode

General global ENVs (archive)

Generated by default and accessible to all DNPs. They will be in the file in the DNCORE/global.dappnode.env file. Write access will be granted to all core DNPs through a WAMP RPC event. The DAPPMANAGER will pick it and modify the .env file. For now they will include:

  • EXTERNAL_IP: 85.84.83.82
  • INTERNAL_IP: 192.168.1.0
  • HOSTNAME: AmazingDAppnode
  • DOMAIN: ab34126ab.dyndns.dappnode.eth
    which are computed by the VPN on startup.

Motivation (by @eduadiez)

To avoid that the packages have to consult centralized services to obtain the public IP address, we've to find a way to facilitate this ip from the DAPPMANAGER

These global ENVs will take effect to subsequently installed DNPs or any DNP restarted afterwards. In a normal case, these ENVs could be consumed by any non-core DNP as it will be started after the VPN has set them.

Also the DAPPMANAGER will have to add the env_file by default to all DNPs

mydnp.dnp.dappnode.eth:
  env_file:
    - /usr/src/dappnode/DNCORE/global.dappnode.env

Challenges:

  • How to control read / write access
    • Maybe domain scope ENVs are on a by-DNP basis, where only the user can change that ENVs on that specific DNP packages tab. Then other DNPs can consume them only.
  • Show an alert to the user during installation that a DNP is requesting access to some global ENVs. Maybe show it on the special permissions box.

Linked to dappnode/DNP_DAPPMANAGER#146

Can't find container

Trying to install DAppNode on an Ubuntu 18.04 LTS VPS. Tired both with the pre-install script, it failed, tried again after manually installing docker and docker-compose on a clean VPS, failed again:

Error: No such container: DAppNodeCore-vpn.dnp.dappnode.eth

Once connected through the VPN (L2TP/IPSec) you can access to the administration console by following this link:

http://my.admin.dnp.dappnode.eth/


##############################################
##############################################
####          DAPPNODE INSTALLER          ####
##############################################
##############################################
Creating swap memory...
swapfile found. No changes made.
Building DAppNode Core if needed...
Downloading DAppNode Core...
/usr/src/dappnode/DNCORE/ipfs.dnp.da 100%[=====================================================================>]      11  --.-KB/s    in 0s      
/usr/src/dappnode/DNCORE/ethchain.dn 100%[=====================================================================>]      11  --.-KB/s    in 0s      
Loading DAppNode Core...
open /usr/src/dappnode/DNCORE/bind.dnp.dappnode.eth_0.1.5.tar.xz: permission denied
open /usr/src/dappnode/DNCORE/ipfs.dnp.dappnode.eth_0.1.4.tar.xz: permission denied
open /usr/src/dappnode/DNCORE/ethchain.dnp.dappnode.eth_0.1.9.tar.xz: permission denied
open /usr/src/dappnode/DNCORE/ethforward.dnp.dappnode.eth_0.1.2.tar.xz: permission denied
open /usr/src/dappnode/DNCORE/vpn.dnp.dappnode.eth_0.1.19.tar.xz: permission denied
open /usr/src/dappnode/DNCORE/wamp.dnp.dappnode.eth_0.1.0.tar.xz: permission denied
open /usr/src/dappnode/DNCORE/dappmanager.dnp.dappnode.eth_0.1.16.tar.xz: permission denied
open /usr/src/dappnode/DNCORE/admin.dnp.dappnode.eth_0.1.13.tar.xz: permission denied
DAppNode installed
DAppNode starting...
Creating network "dncore_network" with driver "bridge"
Creating volume "dncore_binddnpdappnodeeth_data" with default driver
Creating volume "dncore_ipfsdnpdappnodeeth_export" with default driver
Creating volume "dncore_ipfsdnpdappnodeeth_data" with default driver
Creating volume "dncore_ethchaindnpdappnodeeth_data" with default driver
Creating volume "dncore_vpndnpdappnodeeth_data" with default driver
Creating volume "dncore_dappmanagerdnpdappnodeeth_data" with default driver
Pulling bind.dnp.dappnode.eth (bind.dnp.dappnode.eth:0.1.5)...
The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

Continue with the new image? [yN]pull access denied for bind.dnp.dappnode.eth, repository does not exist or may require 'docker login'
DAppNode started

Seems the image no longer exists? I used the installation instructions from the wiki.

Add labels to all repos

Add the "alpha" label to repos which don't have it. At least:

  • VPN repo

Add the "beta" label to all

DappNode IP change

Hey,

looks like after IP change on my DappNode host the VPN connection no longer works for me.

Is it expected that dyndns got updated with new IP?

Record video tutorial with screen capture and voice over, how to decentralize websites.

We are looking forward to having many different kinds of tutorials of how to smooth the process of developing the decentralized web.

For this issue we would like This medium post turned into a high quality video tutorial with a screen capture of the process and voice over. Preferably using a different example other than an Ethereum wallet. Such as migrate your decentralized web, converting an existing websites into a decentralized site.

Styling: Add new manifest fields and fix avatars

  • Add upstreamVersion field
  • Add shortDescription field
  • Edit description to be more detailed and relevant to the package
  • Add categories field
  • Add featured styling to wanna be featured packages
  • Fix keywords wrong placement
  • Fix links field, labeled as homepage and with wrong properties
  • TODO!: add the backup property to packages that need it.
  • Edit ugly avatars and make sure they are 300x300 PNGs and heavily compressed. Should we unify Ropsten, Rinkeby, and Kovan under one same type of avatar image, maybe changing the color or the text a bit?

Update documentation to burn ISO to USB with Ubuntu

The link to the official Ubuntu guide on how to flash the ISO to a USB device does not work with the current ISO.

  • Verify if it can be easily solved by fixing the build scripts.
  • If not, find an alternative tool to flash it (dd, unetbootin, etc.)

Create Configuration File For Ubuntu

During the installation of the DAppnode an OTP is created and the set up for establishing the VPN to connect. A config file is automatically generated (for MAC and IOS users)

The url to download this configfile is given as part of the DAppnode installation process.

Users can just double click that file to install a preset VPN profile and connect to the Dappnode. We have that config file set up for Mac and Windows, but not for Ubuntu.

The source code for this issue can be found here.

Solving this issue means making it possible that the URL given by the DAppnode installation serves an Ubuntu tailored config file when the browser detects the device is Ubuntu based including a video or gif image of the instal process (as is now available with Mac)

Example OTP URL: https://dappnode.github.io/DAppNode_OTP/#otp=eyJzZXJ2ZXIiOiIxLjIuMy40IiwibmFtZSI6IkRBcHBOb2RlIiwidXNlciI6ImRhcHBub2RlX2FkbWluIiwicGFzcyI6IjlTSzRScmIxMTF3OGJTZUtTYmhnIiwicHNrIjoiODM0dFcxMjMxM1o5M2VrOUF4QiJ9

Example Ubuntu config file:

#org.freedesktop.NetworkManager.l2tp

[connection]
id=DAppNode

[vpn]
gateway=1.2.3.4
user=dappnode_admin
ipsec-enabled=true
ipsec-psk=834tW12313Z93ek9AxB
ipsec-ike=aes128-sha1-modp1024,3des-sha1-modp1024!
ipsec-esp=aes128-sha1-modp1024,3des-sha1-modp1024!

[ip4]
method=auto
ignore-auto-routes=false
ignore-auto-dns=false
dhcp-send-hostname=true
never-default=true

screen shot 2018-10-10 at 10 44 08 am

Flag chains in their manifest

Let the DAPPMANAGER know that a given DNP is a chain. It would help automate the chain watcher.

Manifest format proposal:

{
  "chain": "ethereum"
}

Improve Uninstall Script

We have an uninstall script made some months ago but it might not be the best for the current DApnode version. In this issue we're asking for someone to review and rewrite the uninstall script just in case someone for whatever strange reason needs to uninstall their DAppnode.

The current source code and uninstall script can be found here

The install script can be found here

To resolve this issue the uninstall script must restore the machine to the previous state installation of DAppNode.

Manifest verification

Before uploading the manifest, verify the following items.

  • manifest.avatar: must exist and be a valid hash pointing to a valid image with a certain requirements, i.e. size limit, aspect ratio, etc.

@eduadiez please contribute with more items if you want

Guarantee docker execution

Guarantee docker execution. Maybe have it in a separate partition to guaratee it doesn't run out of space.
- Virtual partition?

IPFS logs up to 21 Gbs

Edu found in my machine 21 gbs of IPFS logs using the docker-compose. Can this be limited??

Changing DNS resolver from google to OpenNIC

For the sake of decentralization, using only Google's DNS is not the way to go. We would like to consider using other providers, like:

Perhaps a combination of the above, a local OpenNIC provider(s) first and then 1.1.1.1 as a fallback

This issue corresponds to the bind module implemented in the DNP_BIND repo

With this modification we want the bind module can resolve OpenNIC TLD domains (.bit, .geek, .pirate, .bazar, .coin, ... ) as well as traditional ICANN TLD domains

Adding to Samsung Galaxy 8+ was hard

The android walkthru was omiting a few important phrases...

If it is not mentioned in this walk thru, every other feild must remain empty. In some android versions you will have various fields like L2TP/IPSEC PSK OR IPSec Identifier... these should be blank... And if it says "Always -On VPN" and Advanced Options" which can be also left off

Clearly display that a core package can be updated

  • When core packages can be updated, display that in a way more obvious way to the user, maybe with an alert on top of the page are, a popup, etc.
  • (Todo, research) Have a script that lets you update multiple core packages at once, for critical updates specially. Maybe use the directory functionality tagging this packages as "critical", and the admin will process this info and alert the user that a critical update is necessary. Upon user approval install all critical updates at once.

Running DappNode behind a router

It would be nice to have a separate section in the installation manual for installing dappnode behind a NAT firewall. Topics might include

  • firewall configuration ( ports to open for VPN access )
  • dynamic DNS configuration

I could work on that when I have my node fully up and running since that is my configuration.

Connecting to VPN (Windows 10)

Hi there!

I recently installed my dappNode on an 8 GB Memory / 160 GB Disk / LON1 - Ubuntu 16.04.4 x64 server.

I got stucked at the VPN configuration steps using Windows 10. I made sure to follow the instructions provided in the DappNode repo here.

After configuring the VPN connection and introducing the credentials for connecting, it stayed in "connecting" status all the time, without ever successfully completing the process.

This problem was solved after download the two reg files from the Troubleshooting guide:

And then rebooting the PC.

After doing this, I could successfully connect to my dappNode VPN and browse to http://my.admin.dnp.dappnode.eth . It felt like magic ;)

Provide tools to edit the manifest with the CLI

the dappnodesdk should have subcommands to edit the manifest in the fashion of

A

dappnodesdk manifest add-avatar ./avatar.png

B

dappnodesdk edit-manifest --add-avatar ./avatar.png

C

dappnodesdk add-avatar ./avatar.png

D

dappnodesdk edit-manifest

And then should an interactive menu with inquirer offering all the options to be edited


@eduadiez Which you do you think is more convenient and logical? Seems that commander.js supports subcommand nesting.


At least these actions should be supported:

  • add avatar
  • add / remove ports
  • add / remove dependency
  • add / remove volume

Create OTP Instructions For (Android) With Video or a Gif

For Mac and IOS we have a nice video teaching users how to configure the VPN, but for Android we only have text instructions. This issue asks for a visual explanation of the process using a video or GIF images.

The source code for this issue can be found here.

This is the video example of the MAC installation guide.

To complete this issue integrate the instructions into our OTP webpage including video or Gif image of the OTP instructions for Windows.

Change the installation path

The current dappnode data path is installed under /usr/src, a directory reserved for linux kernel sources.
It would be better to follow the Filesystem Hierarchy Standard of Linux, and install everything under /opt/dappnode

Note that this would require a lot of changes in ISO, scripts, etc. and break backwards compatibility of DAPPMANAGER.

Report Issue's Directly From All Tabs of The Admin UI

We love to hear the opinions of users and use their feedback to improve DAppnode, that is why we want to make it easy to open issues in our github repo, to help and give support during the installation process.

That is why we want to have a button in the UI that links to “open issue” taking some relevant normalized info from the DAppnode user and loading it as the issue header.

The source code for this issue can be found here https://github.com/dappnode/DNP_ADMIN

The completion if this issue means adding a button to the admin ui that leads to an issue template containing this information: Versions of the core packages.

img_20181010_110218

Create OTP Instructions For (Windows) With Video or a Gif

For Mac and IOS we have a nice video teaching users how to configure the VPN, but for Windows and Android we only have text instructions. This issue asks for a visual explanation of the process using a video or GIF images.

The source code for this issue can be found here

This is the video example of the MAC installation guide.

To complete this issue integrate the instructions into our OTP webpage including video or Gif image of the OTP instructions for Windows.

Error: No such container: DAppNodeCore-vpn.dnp.dappnode.eth

Information about System:
Ubuntu 18.04 LTS.
Codename: Bionic.
Versión de Kernel: 4.15.0-22-generic (buildd@lgw01-amd64-013) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)).
Architecture: x86_64.
On fresh installation in Ubuntu, using this guide, give me the error:
Error: No such container: DAppNodeCore-vpn.dnp.dappnode.eth

error1

I ask in the Riot chat, and the problem was solved tipping this commands in the terminal:
$ rm -rf /usr/src/dappnode/DNCORE/admin.dnp.dappnode.eth_0.1.3.tar.xz
$ rm -rf /usr/src/dappnode/DNCORE/docker-compose-admin.yml
and:
$ wget -O - https://github.com/dappnode/DAppNode/releases/download/v0.1.1/dappnode_install.sh | sudo bash
then reboot the system and fixed bug on my computer, thanks to @eduadiez for help.

DNSCrypt package

It would be nice to have a DNS proxy, so instead of forwarding to 1.1.1.1 et al, we can make use of a local package running dnscrypt-proxy and BIND forwarding to it.

This DNS proxy could do load balancing between many servers, with more resiliency, privacy and censorship resistance for regular DNS queries.

Zenhub Methodology *do not close*

Procedure:

  • Add new items into New Issues
  • Then if that issue can be solved now, move it to Backlog. If it will be solved in the future with no rush, move it to Icebox
  • Once you start working on issue, move it to In Progress, so others know that you are doing that
  • Once you are done with it, move it to Review/QA.
  • Some else should review it and approve it, then move it to Done. It will stay there after being completed but before merging its branch.
  • After merging the PR or closing the issue move it to Closed, but this step should happen automatically.

Solving an issue

  1. Create a branch with the issue number and its description. For example: 43_fix_launch_button, 120_improve_performance. It the branch is not related to a specific issue do the same without prefixing it with a number.

  2. There should always be a PR open for the next version. Go there an edit the description to add the fix you are doing. Link it to a specific issue if it was open for that purpose or reference it in the PR body if it fixes multiple issues. Just type: fixes #32 (number of the issue) and github will link the issue to the PR, closing it upon merge (source).

DAppNodeCore-ethforward.dnp.dappnode.eth logs are not time-stamped

It makes debugging logs much easier if the logs are timestamped.

Can you prepend the loglines with a timestamp ?

Addr: 0x5FfC014343cd971B7eb70732021E26C35B744cc4
http://my.ipfs.dnp.dappnode.eth:8080
0x9bc2236e1a73e8c65f8035bb130d7abf50352cfdbe6d97a4f7b03f518a90b863
Addr: 0x5FfC014343cd971B7eb70732021E26C35B744cc4
http://my.ipfs.dnp.dappnode.eth:8080
connection not open on send()
[ - ] Lost connection to the node: ws://my.ethchain.dnp.dappnode.eth:8546, reconnecting
connection not open on send()
[ - ] Lost connection to the node: ws://my.ethchain.dnp.dappnode.eth:8546, reconnecting
connection not open on send()
[ - ] Lost connection to the node: ws://my.ethchain.dnp.dappnode.eth:8546, reconnecting
connection not open on send()

Refactor Core Update

Step 1. Who lets the DAppNodes know that a core update has to be done?

  • Have a different core package in the repo which has no image and only depends on other core packages.
    • This package should be an almost empty image with a DockerFile and an entrypoint that does a docker-compose up of all cores. The old patch for the dappmanager will also do the same for redundancy.
    • Very fine control over when a new multiCore update is released. It allows a period of time where a new core package is pushed in the real repo but only DAppNode devs are able to consume it. I would allow a last chance of QA/testing without compromising user's DAppNodes.

Step 2. How is the installation carried out?

  • Using the regular DAppmanager to install the AllCore package and then it does the docker-compose up.
    • TODO: What happens when you call docker-compose up TWICE at the same time on the same package? Test it as it can mess the idea. If it produces errors, choose one of the option.

Step 3. How to control the update from the ADMIN_UI

  • In the UI single cores should not be displayed.
  • In the UI, a global core package can be displayed in the dappstore or a core update can be handle in a completely different area.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.