All Projects → WebDollar → Node Webdollar

WebDollar / Node Webdollar

Licence: mit
WebDollar Protocol - Currency of the Internet

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Node Webdollar

Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+16947.19%)
Mutual labels:  blockchain, p2p, protocol
Catapult Server
Catapult server
Stars: ✭ 111 (+24.72%)
Mutual labels:  blockchain, p2p, protocol
Ipfsfb
InterPlanetary File System for Business (IPFSfB) is an enterprise blockchain storage network based on InterPlanetary File System.
Stars: ✭ 57 (-35.96%)
Mutual labels:  blockchain, p2p, protocol
Lbry Sdk
The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Stars: ✭ 7,169 (+7955.06%)
Mutual labels:  blockchain, p2p, protocol
Chainode
Fast, Highly Scalable, and Lightweight Private Blockchain Network based on node.js
Stars: ✭ 55 (-38.2%)
Mutual labels:  blockchain, p2p
Nkn Client Js
[Deprecated, use nkn-sdk-js instead] JavaScript implementation of NKN client
Stars: ✭ 53 (-40.45%)
Mutual labels:  blockchain, p2p
Awesome Privacy On Blockchains
A curated list of privacy on blockchains resources
Stars: ✭ 86 (-3.37%)
Mutual labels:  blockchain, p2p
Covenantsql
A decentralized, trusted, high performance, SQL database with blockchain features
Stars: ✭ 1,148 (+1189.89%)
Mutual labels:  blockchain, p2p
Enigma P2p
The Enigma Worker Peer-to-Peer (P2P) package written in Node.js based on libp2p-js
Stars: ✭ 31 (-65.17%)
Mutual labels:  blockchain, p2p
Bitcoin.org
Bitcoin.org Website
Stars: ✭ 1,090 (+1124.72%)
Mutual labels:  blockchain, p2p
Core
Implementation of P2PSP: An application layer protocol for the real-time streaming of multimedia content over the Internet.
Stars: ✭ 71 (-20.22%)
Mutual labels:  p2p, protocol
Exonum
An extensible open-source framework for creating private/permissioned blockchain applications
Stars: ✭ 1,037 (+1065.17%)
Mutual labels:  blockchain, p2p
Dawn
global hosting, financial automation, server-less web components
Stars: ✭ 40 (-55.06%)
Mutual labels:  blockchain, p2p
P2p Internet Workshop
Building the Peer-to-Peer Internet workshop series
Stars: ✭ 88 (-1.12%)
Mutual labels:  p2p, internet
Specs
Modular p2p messaging stack, with a focus on secure messaging.
Stars: ✭ 40 (-55.06%)
Mutual labels:  p2p, protocol
Waykichain
Public Blockchain as a Decentralized Finance Infrastructure Service Platform
Stars: ✭ 1,117 (+1155.06%)
Mutual labels:  blockchain, p2p
Lightning Rfc
Lightning Network Specifications
Stars: ✭ 1,224 (+1275.28%)
Mutual labels:  blockchain, protocol
Blockchain golang
Blockchain demo based on golang 基于golang编写的区块链公链demo
Stars: ✭ 80 (-10.11%)
Mutual labels:  blockchain, p2p
Clutter
Fully distributed twitter built on holochain
Stars: ✭ 84 (-5.62%)
Mutual labels:  blockchain, p2p
Lnbook
Mastering the Lightning Network (LN)
Stars: ✭ 931 (+946.07%)
Mutual labels:  blockchain, p2p

Node-WebDollar Build Status

Webstorm ES6

Settings => Languages & Frameworks => JavaScript language version and choose ECMAScript 6

JS Version

Docker (No skills, only docker)

1. Install Docker

https://docs.docker.com/install/

2. Run prebuilt Container (automated build https://hub.docker.com/r/webdollar/node/)

AutoSSL

docker run -d --restart=always -v /webdollar/ssl:/etc/letsencrypt/live -v /webdollar/data:/blockchainDB3 -e DOMAIN=<ENTER DOMAIN HERE> -e EMAIL=<ENTER EMAIL HERE> --name webdollar -p 80:80 -p 443:443 webdollar/node

NoSSL

docker run -d --restart=always -v /webdollar/data:/blockchainDB3 -e NOSSL=true -e SERVER_PORT=80 --name webdollar -p 80:80 webdollar/node

Installing (Non-techie skills required)

Follow the following instructions: http://webdollar.aji.ro/webdollar-mining-with-windows-terminal/

Installing (High tech skills required)

0. Node.js

Required: v8.x It doesn't work with the new version 9.x

Windows: You can download Node.js from this URL: https://nodejs.org/en/download/

Linux: It's reccomended you install Node.js using NVM

1. Cloning Repository

git clone https://github.com/WebDollar/Node-WebDollar.git Node-WebDollar

2. Installing modules

cd Node-WebDollar to enter in the directory of the repository

npm install

If you get errors in step 2:

3. node-gyp

In case you get errors from node-gyp, especially for Argon2 or webrtc

3.1 node-gyp on Windows

open a Command Prompt with Administrator rights

cd C:\Path\To\Node-WebDollar\
npm install --global --production windows-build-tools
npm install

3.2 node-gyp on Linux

Installing Argon2 node.js

sudo apt install linuxbrew-wrapper

In case you receive some errors, try sudo apt-get -f install

To check the version gcc --version In case the GCC is not installed, install gcc brew install gcc

sudo apt-get install clang
npm install -g node-gyp

gcc --version will help you to find the version of GCC you have installed. Webdollar is known to work on GCC 5 and GCC 6.

Replace g++-5 with your version Verify if you can access g++-5 or whatever version you have. then install

env CXX=g++-5 npm install
env CXX=g++-5 npm install argon2

Tutorial based on https://github.com/ranisalt/node-argon2/issues/29

Install x509 on Windows

Open a powershell terminal

npm install --python=python2.7
git clone https://github.com/ReadyTalk/win32.git
mkdir C:\OpenSSL-Win64\lib\
cp .\win32\msvc\lib\libeay32.lib C:\OpenSSL-Win64\lib\
rm -r -fo .\win32\

Or a command prompt (cmd.exe):

npm install --python=python2.7
git clone https://github.com/ReadyTalk/win32.git
md C:\OpenSSL-Win64\lib\
copy /y .\win32\msvc\lib\libeay32.lib C:\OpenSSL-Win64\lib\
rd /s /q .\win32\

4. SSL (Secure Socket Layer) Certificate

WebDollar uses SSL (Secured Socket Layer) and in order to generate your SSL Certificate you need a Domain or to generate your own SSL Certificate for your IP

4.1. No-IP solution for Free Domain

This is required to get a SSL certificate. If you already have a domain, skip this step.

Follow the tutorial: Install No-Ip using ddns.net

4.2. Generate your SSL certificate

Port 80 must not be in use prior to running LetsEncrypt SSL generator!

Inside Node-WebDollar folder, run:

sudo bash start-node-letsencrypt.sh

Firewall acceptable

Unix

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

If you are under a router/firewall, you need to port forward the port used by the Nodes: 80,443 or whatever port they use.

5. Console commands

5.1 Run terminal interactive menu

npm run commands

5.2 Run terminal non-interactive menu

After building the terminal project

npm run build_terminal_menu
npm run build_terminal_worker

it is possible to run the terminal project as a non-interactive script:

node --max_old_space_size=10240 dist_bundle/terminal-menu-bundle.js -- --import-address wallet.json --list-addresses --mining-address 0 --mine-in-pool https://webdollar.io/pool/url/here

the first part of the command (node --max_old_space_size=10240 dist_bundle/terminal-menu-bundle.js) launches the terminal project.

The next portion of the command (--) starts it in non-interactive mode. Without --, the terminal menu defaults to interactive.

The next parts are the commands to run in order.

Alternatively, you can use the ./webd command in the root of this project. The cli must be built first. ./webd assumes non-interactive, so -- can be omitted from the command. To run interactively npm run commands works best.

./webd --import-address wallet.json --list-addresses --mining-address 0 --mine-in-pool https://webdollar.io/pool/url/here --set-password 'my 12 word password'

To display the list of commands, run:

./webd (-h|--help)

5.3 Running Full Node

Install pm2.

npm install pm2 -g --unsafe-perm
Linux

Run pm2:

chmod +x start.sh
./start.sh

or bash node-start.sh

To kill pm2 process, use pm2 stop id- get id by running pm2 list

Windows

start.sh ???

5.2 Run Mocha Tests (optional)

npm run test

5.3 Missing Packages or Errors

Obs. In case there you get an error message about some missing packages like the following one:

Error: Cannot find module 'name_missing_package'

just, run npm install name_missing_package

5.4 Building Dist for Browser (webpack)

npm run build_browser

5.5 Building Dist for Browser TEST (dist_bundle/browser/browser.html)

npm run test_browser

5.6 Building Dist for User-Interface

npm run build_browser_user_interface

open web page dist_bundle/browser/browser.html

5.7 Running Server in Node.js

npm run commands
npm run start

5.8 PM2 to run the Node run indefinitely

Follow the tutorial: PM2 to run the Node Indefinitely

Development Environment

Dockerized

It is possible to run the development environment in a docker container. This is useful if you are unable to configure and install the custom argon2 flavor required by this project. The docker container has this project set up to be built in it, and comes pre-installed with the tools you need for this project.

Building

Run docker-compose build to build the workspace container.

To force a rebuild, you can either remove the previous workspace (docker rm webdollar-dev-env) or you can run docker-compose build --no-cache.

Running

Once you've build the workspace container, simply run it to launch an interactive shell with all the tools you need to develop.

docker-compose run webdollar-dev-env

This entire folder is mounted into the container, so any files you change in the workspace will be available to the container immediately.

To do:

  1. Pool Mining
  2. Multi-sig with Schnorr Signatures

Resources to learn

7 Ethereum https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369

Mining Bitcoin

  1. http://blog.jameslarisch.com/mining-bitcoin-blocks-yourself-for-fun-and-no-profit
  2. http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html
  3. https://steemit.com/blockchain/@verifyas/what-you-should-know-about-nonces-and-difficulty

Join WebDollar community

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].