WebDollar / Node Webdollar
Programming Languages
Projects that are alternatives of or similar to Node Webdollar
Node-WebDollar
Webstorm ES6
Settings => Languages & Frameworks => JavaScript language version and choose ECMAScript 6
Docker (No skills, only docker)
1. Install Docker
https://docs.docker.com/install/
https://hub.docker.com/r/webdollar/node/)
2. Run prebuilt Container (automated buildAutoSSL
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)
http://webdollar.aji.ro/webdollar-mining-with-windows-terminal/
Follow the following instructions: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:
- Pool Mining
- Multi-sig with Schnorr Signatures
Resources to learn
7 Ethereum https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369
Mining Bitcoin
- http://blog.jameslarisch.com/mining-bitcoin-blocks-yourself-for-fun-and-no-profit
- http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html
- https://steemit.com/blockchain/@verifyas/what-you-should-know-about-nonces-and-difficulty