GithubHelp home page GithubHelp logo

mynodebtc / mynode Goto Github PK

View Code? Open in Web Editor NEW
633.0 38.0 144.0 154.8 MB

The easiest way to run Bitcoin and Lightning!

License: Other

Shell 25.12% Tcl 0.53% Python 31.33% CSS 8.13% JavaScript 0.68% HTML 33.96% Makefile 0.26%

mynode's Introduction

MyNode

Version Community Chat

Twitter

Bitcoin, Lightning, and more!

MyNode aims to be the easiest way to run a dedicated, easy to use, Bitcoin Node and Lightning Wallet!

We combine the best open source software with our interface, management, and support so you can easily, privately, and securely use Bitcoin and Lightning.

Website: https://mynodebtc.com

User Interface

Overview

MyNode is a platform that provides uptime, reliability, ease-of-use and a huge variety of applications! By integrating a number of Bitcoin-related open source projects, it provides access to Bitcoin and Lightning along with a number of other features.

By running Bitcoin and Lightning on your MyNode device, you maintain all the security and privacy originally intended in the Bitcoin protocol. Your transactions are verified by your local node, removing the need to trust online 3rd parties for spending or verifying funds.

MyNode Premium

MyNode offers premium support, simplified upgrades and more! If you are running MyNode Community Edition and want one-click upgrades or you want to purchase a supported, high quality device, please visit mynodebtc.com.

Upgrade now or purchase a device at:
https://mynodebtc.com/order_now

Devices - Model One and Model Two

Features

Each MyNode device comes with a number of wonderful features.

Running MyNode

You can run MyNode on your own device in just a few easy steps!

  1. Download an Image
  2. Flash Image onto SD Card
    • Download Etcher
    • Flash Downloaded Image
  3. Insert SD Card, connect ethernet cable to router, and Boot your Device
  4. Attach External Drive to Device
    • 1TB+ Required
  5. Visit http://mynode.local/ or http://ip_of_device/

Supported Devices

We currently have images for the following devices available for download.

  • Raspberry Pi 4
  • RockPro64
  • Rock Pi 4
  • PCs and Servers
  • Virtual Machine Support (VirtualBox, VMWare)

Upgrading your MyNode

Once you are running MyNode, you can easily update the software yourself!

Developing for MyNode

Developing the MyNode Platform

See the development guide.

Adding new Applications to MyNode

To develop and add new applications to MyNode, check out the Software Development Kit (SDK).

Install on Existing System (beta)

To setup a new device on a supported platform that is already running Linux (Raspi4, RockPi 4, RockPro64, PC, ...), you can run two simple commands.

First, install Debian - last tested with the Debian 10.11 (Buster) images.

Second, login and run these two commands.

wget https://raw.githubusercontent.com/mynodebtc/mynode/latest_release/setup/setup_device.sh -O mynode_setup.sh
sudo bash ./mynode_setup.sh online

Once the script successfully completed, reboot and you will be running MyNode!

Screenshots





What is Bitcoin?

Bitcoin is a unique form of digital money that enables users to send money over the Internet securely without the need for banks or other 3rd parties. This enables anyone with Internet access the ability to participate in the global economy no matter where they live - anywhere from rural Africa to Venezuela to Antarctica to space!

Bitcoin is also unique in that it is deflationary and only has a finite amount of Bitcoin that will ever exist - 21 million. This is similar to land or other valuable natural resources that are limited in their supply. This limited supply is based on computer software algorithms built into the Bitcoin protocol. No person, company, or government can change that limit. This makes Bitcoin valuable to many people who want to save money.

The Lightning Network is another layer on top of Bitcoin, speeding up the rate at which Bitcoin can be sent. Bitcoin transactions are very secure, but can take time to fully confirm. The Lightning Network allows people to send Bitcoin back and forth without the need to wait for each transaction to be included in a Bitcoin block.

There is much more to Bitcoin and the Lighting Network than is mentioned here. For more information, start with these links.

Ultimate Bitcoin Guide

Explain Bitcoin Like I’m Five

Bitcoin Information

Security

There are many reasons to run a Bitcoin Node. It helps keep the Bitcoin network secure and reduces the trust you are giving others when using 3rd party Bitcoin Explorers or Bitcoin Light Wallet servers. They can track you or give you false information, reducing your security and privacy. A “full node”, like the Bitcoin node running on your MyNode device, personally validates all blocks in the Bitcoin blockchain making sure your Bitcoin transactions and Lightning network use is built on the strongest, most trusted foundation possible.

By using MyNode for your Lightning Wallet, Bitcoin Wallet, and Block Explorer, you no longer have to trust others to give you the correct information! This increases your security when protecting your valuable assets.

Please note, MyNode is not responsible for any lost funds while using your device. We have taken significant measures to protect your assets by securing MyNode, but lightning wallets are meant to be online and used for spending where risks are greater. Please do your own research into Bitcoin and the Lightning Network before investing in cryptocurrency.

For long term storage of cryptocurrency assets, please consider using a hardware wallet, like a Ledger or Trezor.

Community

MyNode has a wonderful, helpful community that assists with development and support. It would be impossible to run this project without their involvement and support! The effort they put in to make this, and all Bitcoin projects, a success is truly appreciated.

Bounties

It takes a lot of work to add new features and maintain MyNode. In order to provide desired features, improve documentation, and help provide the best product possible, some new features and improvements have bounties associsated with them. If anyone in the community would like to implement improvements, they can claim the bounty.

Bounty List

License

The primary MyNode License is a variation of CC BY-NC-ND 4.0 with some modifications in Section 9.

This license applies to the MyNode platform, but each application likely has its own license and code to integrate each application to MyNode uses the LGPL v3.0. Code to add applications can be stored under ./rootfs/standard/usr/share/mynode_apps/ and uses the License file at ./rootfs/standard/usr/share/mynode_apps/LICENSE.md.

Responsible Disclosure

Found any critical bugs or vulnerabilities? Please send us an email at [email protected]. Thanks!

mynode's People

Contributors

abhishandy avatar albercoin avatar amiga500 avatar bitcoinheiro avatar bitromortac avatar blueredpen avatar btcxzelko avatar caldon avatar cd2357 avatar cwiggs avatar davterra avatar elkimek avatar fuzzworley avatar lausser avatar lightningsats avatar manasgandy avatar mitchellcash avatar mynodebtc avatar pedromvpg avatar pfoytik avatar rytisbitcoin avatar satoshinakamotobitcoin avatar seberm avatar stadicus avatar stevenblack avatar tehelsper avatar thelsper avatar thinkmassive avatar valuedmammal avatar vicariousdrama 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

mynode's Issues

Glances and Netdata issues with installed myNode from scratch

Installed myNode from scratch on new sdcard (v0.1.63) rpi4
configured wifi ssid and password through raspi-config and enabled with "ifconfig wlan0 up"
upgraded to v0.1.66

ISSUES:
1 - on settings: Public IP error (resolved using a STATIC IP)
2 - http://mynode.local:61208/ error connection glances (even with 192.168.1.100:61208)
3 - http://mynode.local:19999/ error connection netdata (even with 192.168.1.100:19999)
4 - even if i force HTTPS (with button on top right) connection remain in HTTP

base image links

Not Found
The requested URL /device/base_images/raspi3_final.img.gz was not found on this server.

Shutdown Raspberry Pi from GUI

There are various reasons why someone may want or need to shut down a Raspberry Pi running myNode. This can be done using SSH, but it would be great to have a shut down "button" available from the mynode.local website - thank you

GUIDE LIST: Router Port Forwarding

Would it be possible to list all ports (e.g. in the guides section, or web GUI) you may want to forward on your router to allow certain services?

Column description example:
Port | Service | Optional[Y/N] | Required to allow ...

example:

  • If I want other lightning nodes to be able to find and connect to mynode (optional), which ports should I forward.
  • Default forwarded ports, none?

VPN info page shows Public IP Address error

VPN info page shows Public IP Address error

Have tried various fixes, including rebooting myNode, rebooting router, regenerating VPN files - nothing seems to work - any suggestions?

Flask tests

Do you have plans to add automated tests for the web server?

HARDENING: MyNode SSH using key-based authentication

Changing the password using http instead of https could possibly leak the new password.
This password can then easily be used for SSH access, because the SSH server is enabled by default and has 'admin' as default username.

It's fairly easy to create a private and public key on a client and change the policy on the pi to now allow password logins any longer. Only computers / mobiles with the correct private key has access. I tried it and it works for me. Only one computer and a mobile have acces via SSH to MyNode. All other attempts from other computers will be denied.

The details are described in the section 'Using key-based authentication' on
https://www.raspberrypi.org/documentation/configuration/security.md

There is also a section about the maximum amount of attempts before being blacklisted with the use of fail2ban, maybe also something to look into.

PGP verification of critical applications

Hi, I really like your project especially that your code is fully available and that there is a DIY option.
Would like to have a suggestion which would make me more comfortable trying out the software.

Just like you are providing it for the SDcard images Bitcoin and LND offers PGP signatures (and sha256 hashes) to verify the downloaded packages against tampering or corruption. The checks could run automatically in https://github.com/mynodebtc/mynode/blob/master/setup/setup_device.sh which would make the manual setup and SDcard images more robust.

Internal Server Error message entering into Settings

I receive this message if i enter into settings:

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

myNode is working correctly, and i have that problem only entering into Setting page.

Some info:

Disk Usage 23%
CPU 21.2%
RAM 31.1%
Temperature 40°

myNode v0.1.60

Small typo in /settings page

"Reset HTTP Certificates
This will regenerate yur HTTPS certificates."

Should "yur" be "your" ?

Version: 0.1.60

tor

I am using raspi 3 image. I see nothing about using tor or about using tor.

Internal Server Error

When attempting to upgrade from the home page or when trying to get to the Settings page an Internal Server Error shows up with the message:

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Responsive UI using bootstrap

Hey Taylor,

I would like to add bootstrap CSS to make the UI responsive to different screen sizes. If you are not working on it already, I'll start refactoring the templates.

Best,
Abhishek

debugging tools

Apart from the instructions on the README file, I found helpful options in upgrade script

  • sudo mynode-local-upgrade <IP> www
  • sudo mynode-local-upgrade <IP> files

What else is available for debugging?

Improve initial setup UX

  1. Show all stages (completed, current, next) during setup, quicksync, reboot, etc
  2. Option to show verbose details
  3. Option to interrupt the process

LND doesn't upgrade automatically

I have downloaded mynode v0.1.51 from the site and started it. After then i have upgraded mynode to v0.1.58.

LND is at 0.7.1, but seeing logs was added the 0.8.0.

It's normal that the script haven't upgraded LND to 0.8.0 ? (I had reboot too the rpi4)

"Started Updated UTMP about System Runlevel Changes"

Newb question,

I've flashed a new SD card and am trying to set this up on a Pi 3. It's been stuck on the status mentioned in the Subject line for 12 hours. Is this too long or can it take longer?

Just prior to this I had two issues where it:

Failed to start Bitcoin Daemon
Failed to start LND Lightning Daemon

RockPro64

Are you planning to provide an image for the RockPro64?

False upgrade warning

I entered into settings and it appear the button upgrade even if the upgrade doesn't exists ( i don't see any new tag into github). No version number of latest version and blank windows about recent changes.

error

Minor UI improvements

  • don't show other QS options when it's disabled
  • example commands on bitcoin-cli page
  • temperature on remote login

HTTPS instead of HTTP?

HTTPS would prevent clear text with possible valuable information going over the network when using the web GUI.

Cheers

some backup enhancements

  1. The file channel.backup is kept on the harddisk only. I would prefer it to be copied to the local sd card from time to time. Or somewhere else (network mounted disk?) optional. This would prevent fund loss on disk failure (and I had some of them before using raspi4, maybe this is over but I'm only a few days in).

  2. there are some very good resources on the topic: recovering with seed+backup.channel, and even on recovering off-chain funds with electrum. I received the following via instagram:

The on-chain funds are on a default BIP84 derivation path (m/84'/0'/0'/x/y)
The aezeed you can decode with my tool:

https://guggero.github.io/cryptography-toolkit/#!/aezeed

There‘s an offline version that you can use on an offline computer for mainnet seeds
Ah, and the derivation path depends on the address type. 84 is for bech32, 49 is for nested segwit addresses

Maybe this could make it into the "guides" section of mynodebtc.com in some form, so
others won't rely on telegram and socialising skills (that might go mute when hardware failure just happened and serious fund loss is on the users mind)

Change password into Settings

Into Settings, "Change Password", i try to change password successfully even if it compare a string that said that there was an error changing password.

FEATURE: Wifi Enable/Disable on settings

I was thinking about a Wifi Enable/Disable on settings (with field of SSID / password) if can be a interesting feature for who wants to use a node far from eth cables and don't want/know how to modify configuration files.

It could be a good idea to add this feature on settings?

Update

How can I update to the latest version?

Failure to upgrade

After resolving an Internal Server Error, we now have a new problem: failure to upgrade.

On the home page and on the settings page myNode says an upgrade is available, but on the settings page only the current version (1.59) is shown. The latest version is blank. Clicking the See Changes button does show the improvements brought about in versions 1.60 and 1.61

Clicking the Upgrade button seems to initiate the upgrade process as expected, but after trying it twice, we find the upgrade failed - remaining at 1.59

Question / Enhancement: what happens on hdd failure on low voltage?

I used raspibolt before, and there my raspi went in full brick mode after hdd failures (which occur every 2 months, even though I have a separate power adapter plugged to the hdd via y-cabel). I know it's my problem, but rebuilding the blockchain isn't that bad for me, as long as I wouldn't have to recover from brick mode by fully rebuilding the sd card from scratch.

So how would myNode recover from hdd failure? I didn't find a faq or something in the guides on this...

Integrate a Shamir's Secret Sharing Sceme Aplication in the GUI

It would be awsome if there is a option to integrate a SSSS Application into the GUI, so that users can use this to share any secrets.
May switch off the network connection, when starting the application and clear the memory before connection to the network again, to get a higher security. There are some python integrations for SSSS.

Stuck during Quicksync / Copying files

My node gets stuck at 71.57% copying files during quicksync. I let it sit for a week so I'm sure it's stuck. I have a 1TB drive attached to my pi and have rebooted several times. I have also tried to resync the blockchain but the issue keeps occurring at the same %. Anyone have a clue? Thanks.

Thoughts about the current UI

👊

First, congratulations on the project. I think it is very important for this ecosystem create more alternatives for each individual to have their own node.

I would like to open this thread to think about the possible improvements that I think the project should have regarding UI / UX.

I think it would be very important to get away from the ServerSideRendering pattern and build something API oriented. In this way we could create a better and most UI/UX friendly frontend client. Also In this way we could create a good security policies for our API and give other developers the opportunity to create / improve different clients.

Imagine a client with:

  • push notifications (tx states, invoices...)
  • auto (hidden) updates...
  • great mobile UX

Thoughts??

Status stuck at "Looking for Drive" with drive attached

The issue I'm running into is even with the second drive attached, which I can manually mount, the scripts appear to not detect it. As seen below, the second 1.5TB disk is attached and can be mounted but doesn't result in any change to the myNode drive status.

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   10G  0 disk 
├─sda1   8:1    0    9G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0 1022M  0 part [SWAP]
sdb      8:16   0  1.5T  0 disk 
└─sdb1   8:17   0  1.5T  0 part 
sr0     11:0    1 1024M  0 rom  

So far I've tried a raw partitionless drive, adding a partition, formatting as ext4, with no change in detection.

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.