Bitcoin - RaspiBolt

hodlmon.sh: a UTXO monitoring methodology and script for true connoisseurs of security, paranoia and BTC maximalism

EDIT:
Disclaimer: the below script is provided for example purposes only. You're responsible for your own security. Don't trust, verify.
tldr: the script is literally just an example wrapper to call "gettxout" on your own node via cron to check if your own utxo has been spent yet
OK, since there are a few questions on security below, let me clarify: this script is only for people who are 1) already running their own nodes and 2) can understand the bash script below. And obviously, don't trust some random person on the internet, always verify. I provided this as an example for a way to monitor your own UTXOs with your existing node. Those of you who understand what the below script does will see it's painfully simple and obviously harmless. Those of you who don't understand it, just ignore this post, or better yet, research what the below means until you do understand it. What's important is the idea of monitoring your own UTXO, and this script is an example of how to do that with gettxout.
ORIGINAL POST:
Submitting this to help strengthen the community, and for review:
hodlmon.sh: a UTXO monitoring methodology and script for true connoisseurs of security, paranoia and BTC maximalism
Monitor canary UTXOs for early detection of compromised private keys BEFORE funds are lost, using your own full node for maximum privacy and trustlessness. Note that you will need to implement your own notification strategy (email, push, sms, etc). This script is intended to run on your full node, but can be run from any machine with RPC access to your full node.
hodlmon.sh is designed to check if a given UTXO (i.e. a specific output of a specific btc transaction) has been spent or not. This can be used for early and proactive detection if a seed phrase or private key has been compromised, so you have time to move your btc before full compromise happens. In order for this to work, a small amount of btc should be sent to an address controlled only by a given seedphrase, with that seedphrase being part of a multisig wallet or a seedphrase+passphrase wallet, and the majority of your funds controlled in the seedphrase+passphrase or multisig wallet. The idea is to leave the small amount of btc (the canary utxo) in the address, so that it never moves unless the seedphrase that controls it has been compromised and all funds in the wallet swept. In this way, you use those compromised sats to buy information about the current security status of your wallet(s).
Example usage:Set up a cron job to run hodlmon.sh every 30 min to check if transaction output at index "0" for transaction with id "123" has been spent already. Use "my_utxo_nickname" as a friendly name for the UTXO (to differentiate between multiple wallets)
*/30 * * * * /path/to/hodlmon.sh 123 0 my_utxo_nickname > /tmp/hodlmon_log 2> /tmp/hodlmon_err_log
Usage scenario #1: Seedphrase (A) + passphrase (A')Majority of funds are held in a wallet controlled by both the seedphrase and passphrase, A and A'. A token amount of btc is controlled only by seedphrase A.
A + A': majority of funds
A: canary UTXO
hodlmon.sh is used to monitor the canary funds locked by A, so that if it is discovered that A has been compromised, the funds locked by A and A' can be moved to a new wallet before the passphrase A' can be cracked and all your funds exfiltrated.
Usage scenario #2: multisig e.g. 2 of 3, with seed phrases A, B and CMajority of funds held in a multisig wallet controlled by 3 seedphrases A, B, and C. 3 small canary UTXOs are held in wallets each controlled by A, B or C, respectively.
A + B + C: majority of funds
A: canary UTXO 1
B: canary UTXO 2
C: canary UTXO 3
One benefit of multisig (e.g. 2 of 3) is that even if 1 key is compromised, your funds are safe, since at least 2 keys are needed to release funds. But how do you that none of the keys has yet been compromised? If you create separate wallets controlled each by only 1 of the individual keys, and use hodlmon.sh to monitor whether those UTXOs have been exfiltrated, then you can detect partial compromise of your setup before a full exfiltration event takes place, so you can move your funds to a new multisig wallet with freshly generated and uncompromised keys.
Example of 3 cronjobs to monitor all 3 canary UTXOs:
*/30 * * * * /path/to/hodlmon.sh 123 0 key1 > /tmp/hodlmon_log_1 2> /tmp/hodlmon_err_log_1
*/30 * * * * /path/to/hodlmon.sh 456 0 key2 > /tmp/hodlmon_log_2 2> /tmp/hodlmon_err_log_2
*/30 * * * * /path/to/hodlmon.sh 789 0 key3 > /tmp/hodlmon_log_3 2> /tmp/hodlmon_err_log_3

Example hodlmon script:
#########################################################################
#!/bin/bash
touch /tmp/hodlmon_last_run
echo "Transaction ID: $1"
echo "Output #: $2"
echo "Nickname: $3"
NODE_IP=127.0.0.1 #TODO: use actual value
USER=user#TODO: use actual value
PASS=pass #TODO: use actual value
PORT=8332 #TODO: use actual value
CHECK_CMD="/uslocal/bin/bitcoin-cli -rpcconnect=$NODE_IP -rpcuser=$USER -rpcpassword=$PASS -rpcport=$PORT gettxout $1 $2"
RESULT="$($CHECK_CMD)"
echo "${RESULT}"
if [ "$RESULT" == "" ]
then
echo "UTXO HAS BEEN SPENT! RED ALERT!!"
MSG="The UTXO for $3 from tx $1 output $2 has moved!"
#TODO: ADD YOUR FAVORITE NOTIFICATION STRATEGY E.G. EMAIL, PUSH NOTIFICATION, SMS
else
echo "UTXO is still on ice"
fi
############################################

submitted by facepalm5000 to Bitcoin [link] [comments]

Groestlcoin 6th Anniversary Release

Introduction

Dear Groestlers, it goes without saying that 2020 has been a difficult time for millions of people worldwide. The groestlcoin team would like to take this opportunity to wish everyone our best to everyone coping with the direct and indirect effects of COVID-19. Let it bring out the best in us all and show that collectively, we can conquer anything.
The centralised banks and our national governments are facing unprecedented times with interest rates worldwide dropping to record lows in places. Rest assured that this can only strengthen the fundamentals of all decentralised cryptocurrencies and the vision that was seeded with Satoshi's Bitcoin whitepaper over 10 years ago. Despite everything that has been thrown at us this year, the show must go on and the team will still progress and advance to continue the momentum that we have developed over the past 6 years.
In addition to this, we'd like to remind you all that this is Groestlcoin's 6th Birthday release! In terms of price there have been some crazy highs and lows over the years (with highs of around $2.60 and lows of $0.000077!), but in terms of value– Groestlcoin just keeps getting more valuable! In these uncertain times, one thing remains clear – Groestlcoin will keep going and keep innovating regardless. On with what has been worked on and completed over the past few months.

UPDATED - Groestlcoin Core 2.18.2

This is a major release of Groestlcoin Core with many protocol level improvements and code optimizations, featuring the technical equivalent of Bitcoin v0.18.2 but with Groestlcoin-specific patches. On a general level, most of what is new is a new 'Groestlcoin-wallet' tool which is now distributed alongside Groestlcoin Core's other executables.
NOTE: The 'Account' API has been removed from this version which was typically used in some tip bots. Please ensure you check the release notes from 2.17.2 for details on replacing this functionality.

How to Upgrade?

Windows
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer.
OSX
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), run the dmg and drag Groestlcoin Core to Applications.
Ubuntu
http://groestlcoin.org/forum/index.php?topic=441.0

Other Linux

http://groestlcoin.org/forum/index.php?topic=97.0

Download

Download the Windows Installer (64 bit) here
Download the Windows Installer (32 bit) here
Download the Windows binaries (64 bit) here
Download the Windows binaries (32 bit) here
Download the OSX Installer here
Download the OSX binaries here
Download the Linux binaries (64 bit) here
Download the Linux binaries (32 bit) here
Download the ARM Linux binaries (64 bit) here
Download the ARM Linux binaries (32 bit) here

Source

ALL NEW - Groestlcoin Moonshine iOS/Android Wallet

Built with React Native, Moonshine utilizes Electrum-GRS's JSON-RPC methods to interact with the Groestlcoin network.
GRS Moonshine's intended use is as a hot wallet. Meaning, your keys are only as safe as the device you install this wallet on. As with any hot wallet, please ensure that you keep only a small, responsible amount of Groestlcoin on it at any given time.

Features

Download

iOS
Android

Source

ALL NEW! – HODL GRS Android Wallet

HODL GRS connects directly to the Groestlcoin network using SPV mode and doesn't rely on servers that can be hacked or disabled.
HODL GRS utilizes AES hardware encryption, app sandboxing, and the latest security features to protect users from malware, browser security holes, and even physical theft. Private keys are stored only in the secure enclave of the user's phone, inaccessible to anyone other than the user.
Simplicity and ease-of-use is the core design principle of HODL GRS. A simple recovery phrase (which we call a Backup Recovery Key) is all that is needed to restore the user's wallet if they ever lose or replace their device. HODL GRS is deterministic, which means the user's balance and transaction history can be recovered just from the backup recovery key.

Features

Download

Main Release (Main Net)
Testnet Release

Source

ALL NEW! – GroestlcoinSeed Savior

Groestlcoin Seed Savior is a tool for recovering BIP39 seed phrases.
This tool is meant to help users with recovering a slightly incorrect Groestlcoin mnemonic phrase (AKA backup or seed). You can enter an existing BIP39 mnemonic and get derived addresses in various formats.
To find out if one of the suggested addresses is the right one, you can click on the suggested address to check the address' transaction history on a block explorer.

Features

Live Version (Not Recommended)

https://www.groestlcoin.org/recovery/

Download

https://github.com/Groestlcoin/mnemonic-recovery/archive/master.zip

Source

ALL NEW! – Vanity Search Vanity Address Generator

NOTE: NVidia GPU or any CPU only. AMD graphics cards will not work with this address generator.
VanitySearch is a command-line Segwit-capable vanity Groestlcoin address generator. Add unique flair when you tell people to send Groestlcoin. Alternatively, VanitySearch can be used to generate random addresses offline.
If you're tired of the random, cryptic addresses generated by regular groestlcoin clients, then VanitySearch is the right choice for you to create a more personalized address.
VanitySearch is a groestlcoin address prefix finder. If you want to generate safe private keys, use the -s option to enter your passphrase which will be used for generating a base key as for BIP38 standard (VanitySearch.exe -s "My PassPhrase" FXPref). You can also use VanitySearch.exe -ps "My PassPhrase" which will add a crypto secure seed to your passphrase.
VanitySearch may not compute a good grid size for your GPU, so try different values using -g option in order to get the best performances. If you want to use GPUs and CPUs together, you may have best performances by keeping one CPU core for handling GPU(s)/CPU exchanges (use -t option to set the number of CPU threads).

Features

Usage

https://github.com/Groestlcoin/VanitySearch#usage

Download

Source

ALL NEW! – Groestlcoin EasyVanity 2020

Groestlcoin EasyVanity 2020 is a windows app built from the ground-up and makes it easier than ever before to create your very own bespoke bech32 address(es) when whilst not connected to the internet.
If you're tired of the random, cryptic bech32 addresses generated by regular Groestlcoin clients, then Groestlcoin EasyVanity2020 is the right choice for you to create a more personalised bech32 address. This 2020 version uses the new VanitySearch to generate not only legacy addresses (F prefix) but also Bech32 addresses (grs1 prefix).

Features

Download

Source

Remastered! – Groestlcoin WPF Desktop Wallet (v2.19.0.18)

Groestlcoin WPF is an alternative full node client with optional lightweight 'thin-client' mode based on WPF. Windows Presentation Foundation (WPF) is one of Microsoft's latest approaches to a GUI framework, used with the .NET framework. Its main advantages over the original Groestlcoin client include support for exporting blockchain.dat and including a lite wallet mode.
This wallet was previously deprecated but has been brought back to life with modern standards.

Features

Remastered Improvements

Download

Source

ALL NEW! – BIP39 Key Tool

Groestlcoin BIP39 Key Tool is a GUI interface for generating Groestlcoin public and private keys. It is a standalone tool which can be used offline.

Features

Download

Windows
Linux :
 pip3 install -r requirements.txt python3 bip39\_gui.py 

Source

ALL NEW! – Electrum Personal Server

Groestlcoin Electrum Personal Server aims to make using Electrum Groestlcoin wallet more secure and more private. It makes it easy to connect your Electrum-GRS wallet to your own full node.
It is an implementation of the Electrum-grs server protocol which fulfils the specific need of using the Electrum-grs wallet backed by a full node, but without the heavyweight server backend, for a single user. It allows the user to benefit from all Groestlcoin Core's resource-saving features like pruning, blocks only and disabled txindex. All Electrum-GRS's feature-richness like hardware wallet integration, multi-signature wallets, offline signing, seed recovery phrases, coin control and so on can still be used, but connected only to the user's own full node.
Full node wallets are important in Groestlcoin because they are a big part of what makes the system be trust-less. No longer do people have to trust a financial institution like a bank or PayPal, they can run software on their own computers. If Groestlcoin is digital gold, then a full node wallet is your own personal goldsmith who checks for you that received payments are genuine.
Full node wallets are also important for privacy. Using Electrum-GRS under default configuration requires it to send (hashes of) all your Groestlcoin addresses to some server. That server can then easily spy on your transactions. Full node wallets like Groestlcoin Electrum Personal Server would download the entire blockchain and scan it for the user's own addresses, and therefore don't reveal to anyone else which Groestlcoin addresses they are interested in.
Groestlcoin Electrum Personal Server can also broadcast transactions through Tor which improves privacy by resisting traffic analysis for broadcasted transactions which can link the IP address of the user to the transaction. If enabled this would happen transparently whenever the user simply clicks "Send" on a transaction in Electrum-grs wallet.
Note: Currently Groestlcoin Electrum Personal Server can only accept one connection at a time.

Features

Download

Windows
Linux / OSX (Instructions)

Source

UPDATED – Android Wallet 7.38.1 - Main Net + Test Net

The app allows you to send and receive Groestlcoin on your device using QR codes and URI links.
When using this app, please back up your wallet and email them to yourself! This will save your wallet in a password protected file. Then your coins can be retrieved even if you lose your phone.

Changes

Download

Main Net
Main Net (FDroid)
Test Net

Source

UPDATED – Groestlcoin Sentinel 3.5.06 (Android)

Groestlcoin Sentinel is a great solution for anyone who wants the convenience and utility of a hot wallet for receiving payments directly into their cold storage (or hardware wallets).
Sentinel accepts XPUB's, YPUB'S, ZPUB's and individual Groestlcoin address. Once added you will be able to view balances, view transactions, and (in the case of XPUB's, YPUB's and ZPUB's) deterministically generate addresses for that wallet.
Groestlcoin Sentinel is a fork of Groestlcoin Samourai Wallet with all spending and transaction building code removed.

Changes

Download

Source

UPDATED – P2Pool Test Net

Changes

Download

Pre-Hosted Testnet P2Pool is available via http://testp2pool.groestlcoin.org:21330/static/

Source

submitted by Yokomoko_Saleen to groestlcoin [link] [comments]

function return value undefined with node js

Hi guys,

I'm new in the javascript world and now I have a problem with a simple function that returns value because this value is not defined, but if I print the value in the function with console.log, the result is correct

My class with the function
const {createBitcoinRpc} = require('@carnesen/bitcoin-rpc'); module.exports = WrapperRPC; var bitcoinRpc; function WrapperRPC(rpcuser, rpcpassword) { this.rpcuser = rpcuser; this.rpcpassword = rpcpassword; this.rpcHref = 'http://' + this.rpcuser + ':' + this.rpcpassword + '@127.0.0.1:8332'; bitcoinRpc = createBitcoinRpc(this.rpcHref); //TODO settin this variable } WrapperRPC.prototype.getDimensionBlockchain = function(){ console.debug("the url is:" + this.rpcHref); bitcoinRpc("getblockcount").then(result => { console.debug("The result command is: " + result); this.result = result; return this.result; }).catch(exception => { console.error('exception generated: ' + exception) }) }; WrapperRPC.prototype.getHashBlock = function (heightBlock) { console.debug("Run command getblockhash"); bitcoinRpc('getblockhash', { height: heightBlock }).then(result => { console.debug("The result command is: " + result); this.result = result; return this.result; }).catch(exception => { console.error('exception generated: ' + exception) }); } 
My main
const express = require('express'); const app = express(); const port = 3000; const WrapperRPC = require('./model/WrapperRPCBitcoin'); var path = require('path'); app.get('/', function(req, res) { res.sendFile(path.join(__dirname + '/index.html')); console.log("try to run rpc"); let rpc = new WrapperRPC('vincent', 'vincent'); let numbarBlock = rpc.getDimensionBlockchain(); console.debug("height blockchain: " + numbarBlock); for(i = 0; i < numbarBlock; i++){ var hashBlock = rpc.getHashBlock(i); console.debug('Hash block ' + i + ' is: ' + hashBlock); } }); // Console will print the message app.listen(port, () => console.log(`Example app listening on port ${port} at the link http://localhost:${port}/`)); 
My log
Example app listening on port 3000 at the link http://localhost:3000/ try to run rpc the url is:http://vincent:[email protected]:8332 height blockchain: undefined The result command is: 586965 
The log is correct The result command is: 586965 but is printed after the height blockchain: undefined What happens in JavaScript?
submitted by crazyjoker96 to learnjavascript [link] [comments]

Soo after almost 3 months of setting up I have my own LN full node running on RP3

Soo after almost 3 months of setting up I have my own LN full node running on RP3
I have been eager to try LN mainnet since the very beginning of it. I've found out about lnd, eclair, zap and other wallets but every scenario I tried to use it failed because of critical issues:
  • eclair does not really constitute a wallet, it's more like a credit card - you can send money but not receive it
  • lnd is okay, but requires a server and tons of resources for maintaining a full node, can't be used securely, efficiently and mobily at the same time
  • zap offers some cloud wallet (in testnet!) by default, this is a serious misunderstanding of my cryptoanarchy needs
  • web wallets - ah, forget it
So I've decided to use my Raspberry Pi with a very old laptop HDD attached (200GB so the pruning function has to be used) to create a backend wallet service and zap desktop (temporarily!) as my frontend control panel.
https://preview.redd.it/0vcq147887q11.png?width=1024&format=png&auto=webp&s=7bb6eccdd4110a857e5af0400acc2d7e1ee7ee85
Setting up Pi is easy, lots of tutorials over the internet, not gonna discuss it here. Then I had to obtain bitcoind (current rel: bitcoin-0.17.0-arm-linux-gnueabihf.tar.gz) and lnd (lnd-linux-armv7-v0.5-beta.tar.gz), create a bitcoin technical user, deploy the tools, configure and install new systemd services and go through the configs. This is a tricky part, so let's share:
# Generated by https://jlopp.github.io/bitcoin-core-config-generato # This config should be placed in following path: # ~/.bitcoin/bitcoin.conf # [core] # Set database cache size in megabytes; machines sync faster with a larger cache. Recommend setting as high as possible based upon machine's available RAM. dbcache=100 # Keep at most  unconnectable transactions in memory. maxorphantx=10 # Keep the transaction memory pool below  megabytes. maxmempool=50 # Reduce storage requirements by only storing most recent N MiB of block. This mode is incompatible with -txindex and -rescan. WARNING: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, greater than 550 = automatically prune blocks to stay under target size in MiB). prune=153600 # [network] # Maintain at most N connections to peers. maxconnections=40 # Use UPnP to map the listening port. upnp=1 # Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit. maxuploadtarget=5000 # [debug] # Log IP Addresses in debug output. logips=1 # [rpc] # Accept public REST requests. rest=1 # [wallet] # Do not load the wallet and disable wallet RPC calls. disablewallet=1 # [zeromq] # Enable publishing of raw block hex to 
. zmqpubrawblock=tcp://127.0.0.1:28332 # Enable publishing of raw transaction hex to
. zmqpubrawtx=tcp://127.0.0.1:28333 # [rpc] # Accept command line and JSON-RPC commands. server=1 # Username and hashed password for JSON-RPC connections. The field comes in the format: :$. RPC clients connect using rpcuser=/rpcpassword= arguments. You can generate this value with the ./share/rpcauth/rpcauth.py script in the Bitcoin Core repository. This option can be specified multiple times. rpcauth=xxx:yyy$zzz
Whooaa, this online config generator is really helpful, but I still had to manually correct a few things. The last line is obviously generated by rpcauth.py, I disabled the wallet functionality as lnd is going to take care of my funds. ZMQ is not available to the network so only my LND can use it, RPC usage I still have to think through a little, in general I would like to have my own block explorer some day but also be safe from any hacking attempts (thus I would need at least 2 RPC ports/user accounts - one for lnd, one for block explorer frontend). No ports open on firewall at this time, only UPnP is active and gently opens 8333 for block/tx transfers.
Now, synchronizing the blockchain took me time from mid-July to early September... The hard drive is really slow, also my external HDD drive has some trouble with its A/C adapter so Pi was getting undervoltage alerts all the time. Luckily, it is just downclocking when it happens and slowly but steadily synchronized the whole history. After all, I'm not paying even $5 monthly for a VPS, it is by design the cheapest hardware I could use to set up my LN wallet.
When bitcoind was ready (I've heard some stories about btcd but I don't trust this software yet, sorry), it's time to configure lnd.conf:
[Application Options] debuglevel=trace rpclisten=0.0.0.0:10009 externalip=X.X.X.X:9735 listen=0.0.0.0:9735 alias=X color=#XXXXXX [Bitcoin] bitcoin.active=1 bitcoin.mainnet=1 bitcoin.node=bitcoind [Bitcoind] bitcoind.rpchost=127.0.0.1 bitcoind.rpcuser=X bitcoind.rpcpass=X bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 
Here I've had to XXX a little more fields, as not only the bitcoind RPC credentials are stored here, but also my node's public information (it should be illegal to run nodes without specifically selected color and alias!). It is public (and I had to open port 9735 on my firewall), but not necessarily connected to my reddit account for most of the adversaries, so let's keep it this way. In fact, I also see a security vulnerability here: my whole node's stability depends on the IP being static. I could swap it for a .tk domain but who can tell if the bad guys won't actively fight DNS system in order to prevent global economic revolution? As such, I would rather see node identification in LN based on a public key only with possible *hints* of last-known-ip-address but the whole discovery should be performed by the nodes themself in a p2p manner, obviously preventing malicious actors from poisoning the network in some way. For now, I consider the IP stability a weak link and will probably have to pay extra Bitcoin TX fees when something happens to it (not much of a cost luckily!).

https://preview.redd.it/hjd1nooo77q11.png?width=741&format=png&auto=webp&s=14214fc36e3edf139faade930f4069fc31a3e883
Okay then, lnd is up and running, had to create a wallet and give it a night for getting up to speed. I don't know really what took it so long, I'm not using Windows nor 'localhost' in the config so the issues like #1027 are not the case. But there are others like #1545 still open so I'm not going to ponder much on this. I haven't really got any idea how to automatically unlock the wallet after Pi restart (could happen any time!), especially since I only tried to unlock it locally with lncli (why would I enter the password anywhere outside that host?), but let's say that my wallet will only be as stable as my cheap hardware. That's okay for the beta phase.
Finally, zap-desktop required me to copy tls.cert and admin.macaroon files to my desktop. If my understanding of macaroon (it's like an authentication cookie, that can later be revoked) is correct then it's not an issue, however it would be nice to have a "$50 daily limit" macaroon file in the future too, just to avoid any big issues when my client machine gets stolen. Thanks to this, I can ignore the silly cloud-based modes and have fully-secure environment of my home network being the only link from me to my money.
https://preview.redd.it/11bw3dgw47q11.png?width=836&format=png&auto=webp&s=b7fa7c88d14f22441cbbfc0db036cddfd7ea8424
Aaand there it is. The IP took some time to advertise, I use 1ml.com to see if my node is there. The zap interface (ZapDesktop-linux-amd64-v0.2.2-beta.deb) lacks lots of useful information so I keep learning lncli syntax to get more data about my new peers or the routes offered. The transactions indeed run fast and are ridiculously cheap. I would really love to run Eclair with the same settings but it doesn't seem to support custom lnd (why?). In fact, since all I need is really a lncli wrapper, maybe it will be easy to write my own (seen some web gui which weighs 700MB after downloading all dependencies with npm - SICK!). Zap for iOS alpha test registration is DOWN so I couldn't try it (and I'm not sure if it allows custom lnd selection), Zap for Android doesn't even exist yet... I made a few demo transactions and now I will explore all those fancy t-shirt stores as long as the prices are still in "early investor" mode - I remember times when one could get 0.001 BTC from a faucet...
https://preview.redd.it/42sdyoce57q11.png?width=836&format=png&auto=webp&s=7ec8917eaf8f3329d51ce3e30e455254027de0ee
If you find any of the facts presented by me false, I am happy to find out more in the discussion. However what I did I did mostly for fun, without paying much attention to the source code, documentation and endless issue lists on github. By no means I claim this tutorial will work for you but I do think I shared the key points and effort estimations to help others decide if they want a full-node LN client too. I'm also interested in some ideas on what to do with it next (rather unlikely that I will share my lnd admin.macaroon with anyone!) especially if it gives me free money. For example, I can open 1000 channels and start earning money from fees, although I no longer have more Bitcoins than the LN capacity yields... I will probably keep updating the software on my Pi until it leaves beta phases and only then will pour more money inside. I'm also keen on improving the general security of my rig and those comments I will answer more seriously.
submitted by pabou to Bitcoin [link] [comments]

Notes on a first quick test of NTumblebit, on Linux and regtest.

I just thought I'd jot down a few notes on the experience of trying out the current NTumbleBit code.
This is testing on regtest, done for the simple reason that you don't have to wait for testnet blocks (nor sync testnet which is mildly annoying). At this stage I just wanted to learn how this works.
Your starting point is this wiki page.

Installation

You need to download Bitcoin Core. Use at least 0.13.1 - this turned out to be only major blocking point in the whole test, funnily enough, for me - it took me a few hours(!) in debugging to realize that the reason my wallet's coins were not being recognized was simply because 0.12.1 didn't support the necessary RPC syntax. (Note to devs: is there a way to expose errors/exception to the user in the client to help with under-the-hood errors like that? RPC configuration errors are exposed, so that's good of course).
Since this is regtest, that's it: you don't need to sync any blockchains :)
However, you do of course have to configure and start it. Put a bitcoin.conf somewhere (if you're currently running a node it's easiest to make a separate one from your main ~/.bitcoin/bitcoin.conf one, of course. I put one in ~/bitcoin.conf with these settings:
rpcuser=bitcoinrpc rpcpassword=123456abcdef 
(you'll need those values again in a minute) and then run with
~/bitcoininstallationdibitcoind -regtest -daemon -conf=homedibitcoin.conf 
(I didn't need to add server=1 to config).
Note that coins are not available until maturity, so you need to use the generate command to mine blocks, like this:
~/bitcoininstallationdibitcoin-cli -regtest -rpcuser=bitcoinrpc -rpcpassword=123456abcdef generate 101 
Now your regtest bitcoind is running, you can move on to Tumblebit. Follow the instructions in the wiki page mentioned at the start; install .Net Core - the Microsoft instructions are easy to follow, just a couple of apt-gets and install the *.deb. Next, clone the github repo and run the Unit Tests. They passed first time for me.

Running

Next, start up the server, following the instructions in the wiki, except note you're using regtest, so:
cd NTumbleBit.TumblerServer dotnet run -regtest 
The first start up will compile but also set up RSA keys, all that is fine without changes, but you'll need to edit the config so that the RPC is pointing at your regtest instance properly. In this case it (the new config should be located in ~/.ntumblebit/RegTest/server.config) should be edited to look like:
rpc.url=http://localhost:18332/ rpc.user=bitcoinrpc rpc.password=123456abcdef #rpc.cookiefile=yourbitcoinfolde.cookie 
Then restart and check you get no RPC errors. Leave that console open, it's running a server loop.
Next, configure and start the client. Note, we are still following the wiki page, except for the regtest element, so:
cd NTumbleBit.CLI dotnet run -regtest 
You'll most likely get an RPC error again, before it shuts down. Now we need to edit the ~/.ntumblebit/RegTest/client.config file. The server can be left as the default localhost:5000, but you need the right RPC settings:
rpc.url=http://localhost:18332/ rpc.user=bitcoinrpc rpc.password=123456abcdef #rpc.cookiefile=yourbitcoinfolde.cookie tumbler.server=http://localhost:5000 outputwallet.extpubkey= outputwallet.keypath=0 
the last two fields are the important bit, which the wiki page explains in some detail for the testnet case.

Details on setting up a receiving wallet (for this test!)

What you need is a BIP32 based wallet (HD) that supports testnet, and can be run against regtest here (which in most cases will be the same thing to a wallet, as long as it can connect via RPC to sync itself). The good news is the wallet doesn't need to contain any coins. The details of the following probably won't be suitable for most (if you've never used joinmarket it's a bit convoluted), so you'll probably want to find another easy to use wallet; the wiki page should be a good starting point.
For my test I used joinmarket; all we need to do is (a) hook it up to the regtest instance, and (b) extract the BIP32 xpub key that we'll be sending coins to. So in my case the flow of coins is:
Regtest Bitcoin Core wallet (containing 'mined' coins) one branch of my BIP32 joinmarket wallet, configured to sync against the same regtest instance.
I used my new joinmarket code but it's the same for the main joinmarket code. I overwrote joinmarket.cfg to have regtest settings (use this file; only the highlighted settings matter, those are the right ones for this test), then just run python wallet-tool.py randomseed. "randomseed" there can be literally anything, it's read as a brainwallet style seed for the bip32 wallet (because testnet, we don't care about its insecurity). The tpub.. keys seen for each branch are the "xpub" public keys at that branch of the BIP32 wallet. Tumblebit is going to send to a branch below whatever xpub we need, so the simplest is to add a print statement to print the xpub key above that; e.g. add this code:
for i in range(max_mix_depth): print('master for index: ' + str( i) + ' : ' + btc.bip32_privtopub(mixing_depth_keys[i])) 
immediately above this line. Then run again python wallet-tool.py randomseed.
Extract an xpub for any one of the "mixdepths", e.g. I chose:
master for index: 3 : tpubDBFGvUbWtEPKXeWPeG7rUh98iV9GuXSDbnk6ZrZHjcmp134BPByT293HPPQ93DktrVFKpZeAU1ULSdyfmwWuUGvUVLP19JkdUq2mzNKFJPR 
and put that tpub.. key into the field pubkey in the above mentioned 'client.config':
outputwallet.extpubkey=tpubDBFGvUbWtEPKXeWPeG7rUh98iV9GuXSDbnk6ZrZHjcmp134BPByT293HPPQ93DktrVFKpZeAU1ULSdyfmwWuUGvUVLP19JkdUq2mzNKFJPR outputwallet.keypath=0 
Now save and quit.

Running the tumble

Restart the client. If RPC is right, it'll start running, waiting for blocks. Your regtest Core instance will have coins (after the previous generate 101), and those coins will be automatically tumbled, one coin at a time, into the output wallet (in my case, the branch m/0/3/0 which is labelled there 'mixdepth 3, external').
Now you can test and watch the process! Open up a third console and repeatedly generate blocks:
/path/to/bitcoin/bin/bitcoin-cli -regtest -rpcpassword=123456abcdef generate 1 
As each block is generated you'll see the state in the client terminal window updating, showing the phases. A new 'epoch' (right term?) is started every N blocks (I haven't investigated the timing yet), and several epochs run concurrently. In each one, the client can pay in 1 Bitcoin (from Core) and eventually get out 1 coin - fees to the destination (Joinmarket in my case, any other BIP32 in yours). You can replace generate 1 with generate N but I'm not sure if the code will always correctly handle you mining lots of blocks at once! After a large enough number of blocks you'll start to see 'ClientCashout phase' occurring, and txids being printed out. You can go back to your (JM or other) wallet and see the coins arriving; here's what I see after a few epochs have gone through (using my python wallet-tool.py randomseed command):
for mixdepth=2 balance=0.00000000btc mixing depth 3 m/0/3/ external addresses m/0/3/0 tpubDDMAxSHJmxzeXwDnATuvtDizqNSsQKpXGufBDnER44BzEbHy7kg485zZwHqvzprgf6yEQYg9qYYfsLYS1HMmdSuXDzQb2dJSiga9geyM62R m/0/3/0/007 mw9s7tYucxB9yr2L6HkqeDVsh3wdgMdcyK used 0.99995750 btc m/0/3/0/008 mq5TgTNgwYHv88Q4T7wL6kTb1MBSPE3mqK used 0.99995750 btc m/0/3/0/009 mhzQFY8FNvux6SKWKLKmhBB3Sw4MLaSnyu used 0.99995750 btc m/0/3/0/010 mrYECmCf5UKa1BBRMuzprVugsCi9z7oiHo new 0.00000000 btc m/0/3/0/011 mopUNXmHT8ngfBymM3c3EYMg7RLZAf6Zc6 new 0.00000000 btc m/0/3/0/012 mmaVXVfQP4UAYJPhMpQ3FhgXfHzujaxyw4 new 0.00000000 btc m/0/3/0/013 mzYD1AcUFz8SVwJM8EjVCfEM6pcYnHooBR new 0.00000000 btc m/0/3/0/014 my5unLCEMWQBkXBdeJ75VVGk1wrMrT8iDE new 0.00000000 btc m/0/3/0/015 muA76YSTtKKmD6HnVKYhkd9K9TZnPLh8pp new 0.00000000 btc internal addresses m/0/3/1 for mixdepth=3 balance=2.99987250btc 
As you can see, 3 coins have arrived.
submitted by waxwing to TumbleBit [link] [comments]

Interested in contributing to the BTC network? Here is the steps to get a full node up and running in Linux.

These instructions will work both on a VPS cloud server or a personal computer. You may find cheap VPS somewhere online for rent.
What Is A Full Node?
A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet. If not enough nodes perform this function, clients won’t be able to connect through the peer-to-peer network—they’ll have to use centralized services instead.
Many people and organizations volunteer to run full nodes using spare computing and bandwidth resources—but more volunteers are needed to allow Bitcoin to continue to grow. This document describes how you can help and what helping will cost you.
Costs And Warnings
Running a Bitcoin full node comes with certain costs and can expose you to certain risks. This section will explain those costs and risks so you can decide whether you’re able to help the network.
Special Cases
Miners, businesses, and privacy-conscious users rely on particular behavior from the full nodes they use, so they will often run their own full nodes and take special safety precautions. This document does not cover those precautions—it only describes running a full node to help support the Bitcoin network in general.
Please consult an expert if you need help setting up your full node correctly to handle high-value and privacy-sensitive tasks.
Secure Your Wallet
It’s possible and safe to run a full node to support the network and use its wallet to store your bitcoins, but you must take the same precautions you would when using any Bitcoin wallet. Please see the securing your wallet page for more information.
Minimum Requirements
Bitcoin Core full nodes have certain requirements. If you try running a node on weak hardware, it may work—but you’ll likely spend more time dealing with issues. If you can meet the following requirements, you’ll have an easy-to-use node.
Note: many operating systems today (Windows, Mac, and Linux) enter a low-power mode after the screensaver activates, slowing or halting network traffic. This is often the default setting on laptops and on all Mac OS X laptops and desktops. Check your screensaver settings and disable automatic “sleep” or “suspend” options to ensure you support the network whenever your computer is running.
Possible Problems
Legal: Bitcoin use is prohibited or restricted in some areas.
Bandwidth limits: Some Internet plans will charge an additional amount for any excess upload bandwidth used that isn’t included in the plan. Worse, some providers may terminate your connection without warning because of overuse. We advise that you check whether your Internet connection is subjected to such limitations and monitor your bandwidth use so that you can stop Bitcoin Core before you reach your upload limit.
Anti-virus: Several people have placed parts of known computer viruses in the Bitcoin block chain. This block chain data can’t infect your computer, but some anti-virus programs quarantine the data anyway, making it more difficult to run a full node. This problem mostly affects computers running Windows.
Attack target: People who want to disrupt the Bitcoin network may attack full nodes in ways that will affect other things you do with your computer, such as an attack that limits your available download bandwidth or an attack that prevents you from using your full node’s wallet for sending transactions.
Linux Instructions
The following instructions describe installing Bitcoin Core on Linux systems.
Ubuntu 14.10 Instructions for Bitcoin Core 0.10.0.
If you use Ubuntu Desktop, click the Ubuntu swirl icon to start the Dash and type “term” into the input box. Choose any one of the terminals listed:
Alternatively, access a console or terminal emulator using another method, such as SSH on Ubuntu Server or a terminal launcher in an alternative desktop environment.
Type the following line to add the Bitcoin Personal Package Archive (PPA) to your system:
sudo apt-add-repository ppa:bitcoin/bitcoin
You will be prompted for your user password. Provide it to continue. Afterwards, the following text will be displayed:
Stable Channel of bitcoin-qt and bitcoind for Ubuntu, and their dependencies
More info: https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin
Press [ENTER] to continue or ctrl-c to cancel adding it
Press enter to continue. The following text (with some variations) will be displayed and you will be returned to the command line prompt:
gpg: keyring /tmp/tmpixuqu73x/secring.gpg' created gpg: keyring/tmp/tmpixuqu73x/pubring.gpg' created gpg: requesting key 8842CE5E from hkp server > > > >keyserver.ubuntu.com gpg: /tmp/tmpixuqu73x/trustdb.gpg: trustdb created gpg: key 8842CE5E: public key "Launchpad PPA for Bitcoin" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 pg: imported: 1 (RSA: 1) OK
Type the following line to get the most recent list of packages:
sudo apt-get update
A large number of lines will be displayed as different update files are downloaded. This step may take several minutes on a slow Internet connection.
To continue, choose one of the following options
sudo apt-get install bitcoin-qt
sudo apt-get install bitcoind
sudo apt-get install bitcoin-qt bitcoind
After choosing what packages to install, you will be asked whether you want to proceed. Press enter to continue.
If you’re logged in as an administrative user with sudo access, you may log out. The steps in this section should be performed as the user you want to run Bitcoin Core. (If you’re an expert administrator, you can make this a locked account used only by Bitcoin Core.)
Before using the Bitcoin Core daemon, bitcoind, you need to create its configuration file with a user name and password. First create the .bitcoin directory, create (touch) the file, and set the file’s permissions so that only your user account can read it. From the terminal, type:
mkdir ~/.bitcoin touch ~/.bitcoin/bitcoin.conf chmod 600 ~/.bitcoin/bitcoin.conf
Then you can run the command bitcoind. It will print output similar to this:
bitcoind Error: To use the "-server" option, you must set a rpcpassword in the configuration file: /home/bitcoinorg/.bitcoin/bitcoin.conf It is recommended you use the following random password: rpcuser=bitcoinrpc rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; for example: alertnotify=echo %s | mail -s "Bitcoin Alert" [email protected] The “rpcpassword” displayed will be unique for your system. You can copy the rpcuser and rpcpassword lines into your configuration file using the following commands. Note that in most Ubuntu terminals, you need to press Ctrl-Shift-C to copy and Ctrl-Shift-V to paste because Ctrl-C and Ctrl-V have different meanings in a Unix-style terminal.
echo rpcuser=bitcoinrpc >> ~/.bitcoin/bitcoin.conf echo rpcpassword=XXXXXX >> ~/.bitcoin/bitcoin.conf (Warning: Don’t use XXXXXX as your RPC password. Copy the rpcpassword displayed by bitcoind for your system.)
Now you can start Bitcoin Core daemon for real. Type the following command:
bitcoind -daemon
It will print a message that Bitcoin Core is starting. To interact with Bitcoin Core daemon, you will use the command bitcoin-cli (Bitcoin command line interface). Note: it may take up to several minutes for Bitcoin Core to start, during which it will display the following message whenever you use bitcoin-cli:
error: {"code":-28,"message":"Verifying blocks..."}
After it starts, you may find the following commands useful for basic interaction with your node:
to safely stop your node, run the following command:
bitcoin-cli stop
A complete list of commands is available in the Bitcoin.org developer reference.
When Bitcoin Core daemon first starts, it will begin to download the block chain. This step will take at least several hours, and it may take a day or more on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time using the stop command; it will resume from the point where it stopped the next time you start it.
Optional: Start Your Node At Boot
Starting your node automatically each time your computer boots makes it easy for you to contribute to the network. The easiest way to do this is to start Bitcoin Core daemon from your crontab. To edit your crontab, run the following command:
crontab -e
@reboot bitcoind -daemon Save the file and exit; the updated crontab file will be installed for you. Now Bitcoin Core daemon will be automatically started each time your reboot your computer.
If you’re an Ubuntu expert and want to use an init script instead, see this Upstart script.
You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoin’s many communities, such as Bitcoin StackExchange, BitcoinTalk technical support, or the #bitcoin IRC chatroom on Freenode.
To support the Bitcoin network, you also need to allow incoming connections. Please read the Network Configuration section for details.
Network Configuration
If you want to support the Bitcoin network, you must allow inbound connections.
When Bitcoin Core starts, it establishes 8 outbound connections to other full nodes so it can download the latest blocks and transactions. If you just want to use your full node as a wallet, you don’t need more than these 8 connections—but if you want to support lightweight clients and other full nodes on the network, you must allow inbound connections.
Servers connected directly to the Internet usually don’t require any special configuration. You can use the testing instructions below to confirm your server-based node accepts inbound connections.
Home connections are usually filtered by a router or modem. Bitcoin Core will request your router automatically configure itself to allow inbound connections to Bitcoin’s port, port 8333. Unfortunately many routers don’t allow automatic configuration, so you must manually configure your router. You may also need to configure your firewall to allow inbound connections to port 8333. Please see the following subsections for details.
Testing Connections
The BitNodes project provides an online tool to let you test whether your node accepts inbound connections. To use it, start Bitcoin Core (either the GUI or the daemon), wait 10 minutes, and then visit the GetAddr page (https://getaddr.bitnodes.io/). The tool will attempt to guess your IP address—if the address is wrong (or blank), you will need to enter your address manually.
For more instruction and reviews based off BTC please follow my subreddit /BTC_Reviews
all material from this post was found here --> https://bitcoin.org/en/full-node
submitted by Mattjhagen to Bitcoin [link] [comments]

Iquidus Block Explorer Guide

Pre-requisites: - Rent Server - Connect with SSH/PuTTY

Iquidus "An open source block explorer" https://github.com/iquidus/explorer

Node and Iquidus Explorer Setup for Dummies https://gist.github.com/zeronug/5c66207c426a1d4d5c73cc872255c572

1. Install & Configure BiblePay https://www.reddit.com/BiblePay/comments/6ummuj/how_to_mine_biblepay_on_linux/
After Installing the coin, Add RPC & Server settings:
vi biblepay.conf rpcuser=XXXX rpcpassword=XXXX rpcport=XXXX listen=1 server=1 daemon=1 txindex=1 

2. Install MongoDB https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list sudo apt-get update sudo apt-get install -y mongodb-org sudo service mongod start cd /valog/mongodb tail mongod.log # [initandlisten] waiting for connections on port  # Port 27017 by default 
3. Setup MongoDB
mongo use explorerdb db.createUser( { user: "iquidus", pwd: "3xp!0reR", roles: [ "readWrite" ] } ) exit 
4. Install Node.js
sudo apt-get update sudo apt-get install nodejs nodejs-legacy -y sudo apt-get install npm 
5. Install Iquidis Block Explorer
cd home/username git clone https://github.com/iquidus/explorer explorer # gyp build errors # https://github.com/nodejs/node-gyp/issues/809 sudo apt-get install libkrb5-dev cd explorer && npm install --production cp ./settings.json.template ./settings.json 
5.a Add Custom Fix for vout bug
https://github.com/DeckerSU/explorecommit/ac74e41c6162871fcaa6973d34f09f1cf3e5a1ce https://github.com/cryptorex/bitcoinz-explorecommit/267a0dfd8015bc90488b2b53ae9c49be2da83bff
6. Configure Iquidis
vi settings.json 
a. Name, Symbol, Theme
b. Port (and Open for Firewall)
c. MongoDB Credentials
d. RPC Wallet Credentials
e. Genesis Block (showblock 0, hash=block, tx=tx) https://en.bitcoin.it/wiki/Genesis_block
f. CCEX Market https://support.coinigy.com/hc/en-us/articles/360001143574-How-do-I-find-my-API-key-on-the-C-Cex-Exchange-
e. Icon and Logo /images/logo.png 128x128 /public/favicon.ico 16x16 Upload files online and use "wget URL" command to download http://digitalagencyrankings.com/iconogen/
7. Sync Initial Database
cd home/username/biblepay/src ./biblepayd -daemon -txindex cd home/username/explorer npm start 
Open a 2nd SSH/Putty session and connect, in 2nd window run:
cd home/username/explorer sudo node scripts/sync.js index update 
Open web browser and enter in your servers address: IPAddress:Port
8. Troubleshooting
Ctrl + C to stop npm process
__
If Settings/Config is wrong: Edit exploresettings.json
__
If Database is corrupt:
mongo use explorerdb show collections 
Examples: db.collectionName.find() db.collectionName.remove({}) db.collectionName.drop()
Reset all Database Data:
db.addresses.remove({}) db.addresses.drop() db.coinstats.remove({}) db.coinstats.drop() db.markets.remove({}) db.markets.drop() db.peers.remove({}) db.peers.drop() db.richlists.remove({}) db.richlists.drop() db.txes.remove({}) db.txes.drop() exit 
__
"Trying to reindex and getting error Script already running" https://github.com/iquidus/exploreissues/11
rm tmp/index.pid 
__
Stop Everything:
sudo service mongod stop sudo killall nodejs #Comment out crontab -e 
__
Run npm start in explorer folder to start explorer again
9. Add Crontab and Run!
sudo crontab -e 
Add lines:
*/1 * * * * cd /path/to/explorer && /usbin/nodejs scripts/sync.js index update > /dev/null 2>&1 */2 * * * * cd /path/to/explorer && /usbin/nodejs scripts/sync.js market > /dev/null 2>&1 */5 * * * * cd /path/to/explorer && /usbin/nodejs scripts/peers.js > /dev/null 2>&1 
If the BiblePay isnt already running, run it
cd home/username/biblepay/src ./biblepayd -daemon -txindex 
If Explorer isnt already running, run it
cd home/username/explorer npm start 
Recommendation:*
Add these parameters to biblepay.conf file
daemon=1 txindex=1 
Extra: This Iquidis for Dummides guide also adds: https://gist.github.com/zeronug/5c66207c426a1d4d5c73cc872255c572
Upstart, to have MongoDB auto start after reboots
Forever, to make sure Explorer is always running
Install Forever to keep the js running # sudo npm install forever -g # sudo npm install forever-monitor Start the Explorer # forever start bin/cluster 
Nginx - Reverse Proxy Port 3001 to 80 https://eladnava.com/binding-nodejs-port-80-using-nginx/
BiblePay Daemon set to run Every 2 Minutes with Cron
sudo crontab -e */2 * * * * /home/biblepay/src/biblepayd > /dev/null 2>&1 
Note: In ~/.biblepaycore/biblepay.conf add daemon=1 and txindex=1 Note: > /dev/null 2>&1 will capture both STDOUT (1) and STDERR (2) and send them to /dev/null
Auto Remove index.pid if indexing is complete
#!/bin/bash fname="/home/biblepay/exploretmp/index.pid" if [[ -f "$fname" ]]; then pid=$( /dev/null r=$? echo $r if [ $r -eq 0 ]; then exit 1 else rm $fname fi fi 
-f is checking if the file exists index.pid is the indexing lock file with its process ID number inside of it ps -p checks if the process is running $? is the value of the last output that ran and since the previous value is going to dev/null, its the exit code status "0 for successful executions and 1 or higher for failed executions." and so if the process is still running, the bash script just exits, otherwise the process is done and the index.pid file gets removed the file doesnt need a .sh extension, if you have "#!/bin/bash" at the top then linux knows its a bash script chmod +x to set it as executable
Github Source Code Files:
https://github.com/togoshigekata/biblepay-files/blob/masteexplorer-settings-togo.json
https://github.com/togoshigekata/biblepay-files/blob/masteexplorer-index-resetter-togo.sh
My Crontab:
*/2 * * * * cd /home/explorer && /usbin/nodejs --stack-size=15000 scripts/sync.js index update > /dev/null 2>&1 */6 * * * * cd /home/explorer && /usbin/nodejs scripts/sync.js market > /dev/null 2>&1 */11 * * * * cd /home/explorer && /usbin/nodejs scripts/peers.js > /dev/null 2>&1 */5 * * * * /home/biblepay/src/biblepayd > /dev/null 2>&1 */4 * * * * /home/explorer-index-resetter-togo.sh > /dev/null 2>&1 0 */3 * * * /ussbin/service mongod start > /dev/null 2>&1 
Experimental: https://github.com/iquidus/exploreissues/236
submitted by togoshige to BiblePay [link] [comments]

[P2pool] How to make your own personal p2pool Node!

Tired of getting no block rewards and sending many dead shares? Need a p2pool node close to your miner? MAKE YOUR OWN! :D
And, Yep, P2pools give 0.5% Rewards to block finders!
Here's some info about p2ools: http://whatisp2pool.com/
The stronger the P2Pool network becomes the more resistant the digibyte network is to 51% attacks!
Oh and, P2pools are DDOS proof! Now that's News! So if your node gets DDOS'd .. you dont lose your shares as the shares have been saved in the p2pool, its called the sharechain. So you get paid anyhow! Thanks to the p2pool network. and you ccan set your workers to another pool using the "--failover only" command in cgminer (if im not wrong) and get it back to work on the p2pool network!
TL;DR; P2POOL = 1 Big fat network Decentrazlized pool!
STEPS TO MAKE A P2POOL:
Install Ubuntu server or Desktop if you want http://www.ubuntu.com/download/ or u can use a VPS (VirtualPrivateServer -- Link Below with coupon code)
So Let's start off in the command line (Open Terminal.. and all you have to do is Cut, Copy Paste! ;) )
Start by updating and upgrading Ubuntu, you know you want the best ;)
sudo apt-get update sudo apt-get upgrade sudo apt-get install python-software-properties sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update 
Time for the DigiByteProject dependencies!
sudo apt-get install build-essential libboost-all-dev libcurl4-openssl-dev libdb5.1-dev libdb5.1++-dev git qt-sdk libminiupnpc-dev sudo apt-get install qrencode libqrencode-dev 
And, Now to compile DigiByte on your system!
git clone git://github.com/digibyte/DigiByteProject.git digibyte #renaming makes it easier ;) cd ~/digibyte/src mkdir obj make -f makefile.unix USE_UPNP=- sudo cp digibyted /usbin cd ~ 
After it has compiled try running 'digibyted'
./digibyte/src/digibyted 
If you get an error saying you need to make the digibyte.conf file, good! :) If it doesnt give you that error, make sure you followed the compiling steps appropriately.
So, Lets create the conf file here...
cd .digibyte #edited from 'digibyted' .. fixed!! nano digibyte.conf 
Paste the following, CHANGING THE USERNAME AND PASS!! make sure to take note of both, you'll need these later!
rpcuser=CHANGEusername rpcpassword=ChangePassword daemon=1 server=1 rpcport=14022 port=12024 gen=1 rpcallowip=127.0.0.1 addnode=74.208.230.160 addnode=31.220.25.91 addnode=184.155.218.183 addnode=24.119.23.61 addnode=70.196.193.231 addnode=198.98.118.241 addnode=142.4.204.115 addnode=23.90.191.58 addnode=216.250.125.121 addnode=115.28.31.25 addnode=83.172.105.46 
Press 'CTRL' + ' X', and then 'Y' to save when prompted
cd ~ ./digibyte/src/digibyted ./digibyte/src/digibyted getinfo 
Make sure you check the latest block in the block chain or on your local DigiByte Wallets. This is to see how far your p2pool node has gotten! This is gonna take quite a while so lets CONTINUE!
Let's get the p2pool software and frontend in! Install the p2pool dependencies!
sudo apt-get install python-zope.interface python-twisted python-twisted-web git clone https://github.com/Rav3nPL/p2pool-rav p2pool #renaming it! cd ~/p2pool/digibyte_subsidy #Thanks to Chaeplin sudo python setup.py install 
Time to edit and customise the html code to personalise your p2pool's frontend. Feel free to change the p2pool name and if you're an advanced user, feel free to add your own frontend from git hub after removing the web-static folder. (OPTIONAL: by using rm -f -r web-static #in that directory. And then you can choose whichever frontend you want! by cloning it in the web-static folder)
Editing the current frontend html!
cd .. cd web-static nano index.html 
After personalising the page, i.e. changing the p2pool name and adding some info! Lets go back and check how far the block downloading has gotten! You can check this by typing this in the command line after going back to the root directory:
cd ~ ./digibyte/src/digibyted getinfo 
This is gonna take a while so might as well check for updates again :P
sudo apt-get update sudo apt-get upgrade 
After making sure that all the blocks have been synced locally! We're ready to run the p2pool node! Simply enter the string below in the command line, entering your USERNAME and PASS that you saved earlier!
screen -d -m -S myp2pool ~/p2pool/run_p2pool.py --give-author 0 --net digibyte NEWUSER NEWPASS --outgoing-conns 4 
If you want to charge a fee for your node add this to your string, adding your fee address!:
--fee 1.0 --address NEWDGBADDRESS 
To see if the node is up and running enter this in the command line:
screen -x myp2pool 
'CTRL' + 'A' + 'D' to close the terminal if you press 'CTRL' + 'C', it will terminate the p2pool program and you'll have to restart the pool by using the string above!
Once, Everything is setup as planned! Check your p2pool node's ip Address by entering this into the command line:
ifconfig 
inet addr: 192.168.1.1 #You'll see a line like this.
So, Your cgminer string should look something like this:
cgminer --scrypt -o 192.168.1.1:9022 -u DGBADDRESS -p x
And your p2pool WEB ADDRESS should look like this:
192.168.1.1:9022
example: http://192.168.1.1:9022/
You can monitor your p2pool using that web address! Enjoy, your personal p2pool node!! :D
If for whatever reason the server shuts off and you need to restart the p2pool node, you should run digibyted again and after it has synced successfully, just type in your p2pool string:
./digibyte/src/digibyted
screen -d -m -S myp2pool ~/p2pool/run_p2pool.py --give-author 0 --net digibyte NEWUSER NEWPASS --outgoing-conns 4 --fee 1.0 --address NEWADDRESS
PRESS CTRL + A + D to Detach from screen
UPDATE Follow Guide below if you used this guide before DigibByte v2.0 was released (28th Feb 2014)
You must check whether you're on the right ShareChain. Make Sure the block Value says 7960!
https://bitcointalk.org/index.php?topic=408268.msg5440858#msg5440858
This Tutorial was made with the help of an existing Guide: http://doges.org/index.php?topic=5586.0 Kudos to crypto49er!
If you want to do this on a VPS:
Here's a link to a VPS hosting site:
https://www.digitalocean.com/
Feel free to use my $10 ref. code -- it doesnt really make a difference, though.
https://www.digitalocean.com/?refcode=dc909c442664
Let me know if this guide helped!
submitted by StormMiner to Digibyte [link] [comments]

bitcoind crashing and corrupting chain, can't get the node synced -- known issue? Possible fix?

I'm running Bitcoin Classic from the official PPA on an Atom CPU using 2 GB of RAM and
bitcoind -disablewallet -daemon -dbcache=1000 
to launch bitcoind. Every time I checked, RAM usage was below 1.5 GB. Today, I came back to see the following in the log:
2016-03-12 17:32:29 Pre-allocating up to position 0x1000000 in rev00363.dat 2016-03-12 17:32:29 UpdateTip: new best=000000000000000005efb0fa564aebed1543e91fb7cbb3666f76518d04beeab4 height=381436 log2_work=83.542258 tx=90266769 date=2015-10-31 19:48:01 progress=0.884439 cache=716.5MiB(399486tx) 2016-03-12 17:32:29 UpdateTip: new best=0000000000000000047b1c27126c0a92cc353deed82a8308ec3f14b21f56bae0 height=381437 log2_work=83.542286 tx=90266771 date=2015-10-31 19:42:28 progress=0.884436 cache=716.5MiB(399488tx) 2016-03-12 17:32:31 UpdateTip: new best=000000000000000009b442d95f5c8944916990d3bd73564cfdf06c80ec51f630 height=381438 log2_work=83.542313 tx=90269011 date=2015-10-31 19:48:59 progress=0.884443 cache=718.0MiB(401474tx) 2016-03-12 17:32:33 UpdateTip: new best=00000000000000000e8e6eb74e60af14a855276d2cdb9fc0a4502720e39f9d61 height=381439 log2_work=83.54234 tx=90271316 date=2015-10-31 19:55:44 progress=0.884450 cache=718.8MiB(403323tx) 2016-03-12 17:32:39 ************************ EXCEPTION: St9bad_alloc std::bad_alloc bitcoin in ProcessMessages() 2016-03-12 17:32:39 ProcessMessages(block, 270899 bytes) FAILED peer=12 2016-03-12 17:32:41 ERROR: ConnectBlock(): inputs missing/spent 2016-03-12 17:32:41 Misbehaving: 5.9.101.143:8333 (0 -> 100) BAN THRESHOLD EXCEEDED 2016-03-12 17:32:41 InvalidChainFound: invalid block=00000000000000000be349d51a1fc4cc9a70f9ca067517aeedffbbf83304e5eb height=381440 log2_work=83.542368 date=2015-10-31 20:09:22 2016-03-12 17:32:41 InvalidChainFound: current best=00000000000000000e8e6eb74e60af14a855276d2cdb9fc0a4502720e39f9d61 height=381439 log2_work=83.54234 date=2015-10-31 19:55:44 2016-03-12 17:32:41 ERROR: ConnectTip(): ConnectBlock 00000000000000000be349d51a1fc4cc9a70f9ca067517aeedffbbf83304e5eb failed 2016-03-12 17:32:41 InvalidChainFound: invalid block=00000000000000000be349d51a1fc4cc9a70f9ca067517aeedffbbf83304e5eb height=381440 log2_work=83.542368 date=2015-10-31 20:09:22 2016-03-12 17:32:41 InvalidChainFound: current best=00000000000000000e8e6eb74e60af14a855276d2cdb9fc0a4502720e39f9d61 height=381439 log2_work=83.54234 date=2015-10-31 19:55:44 2016-03-12 17:32:41 connect() to [2001:41d0:1:a5b8::1]:8333 failed: Network is unreachable (101) 2016-03-12 17:32:41 connect() to [2001:470:507d:0:6ab5:99ff:fe73:ac18]:8333 failed: Network is unreachable (101) 2016-03-12 17:32:42 receive version message: /Classic:0.12.0/: version 70012, blocks=402365, us=163.172.136.98:49308, peer=22 2016-03-12 17:32:45 Pre-allocating up to position 0x2000000 in blk00366.dat 2016-03-12 17:32:49 Pre-allocating up to position 0x3000000 in blk00366.dat 2016-03-12 17:32:52 Pre-allocating up to position 0x4000000 in blk00366.dat 2016-03-12 17:32:54 Pre-allocating up to position 0x5000000 in blk00366.dat 2016-03-12 17:32:59 Pre-allocating up to position 0x6000000 in blk00366.dat 2016-03-12 19:01:05 tor: Thread interrupt 
The last line is me rebooting the box. When the node came back up, it started vomiting all over the log, which I assume means the block database is FUBAR (again) and I'll have to delete and re-download everything:
2016-03-12 19:01:30 Bitcoin version v0.12.0.0-unk (Mar 9 2016, 01:41:30) 2016-03-12 19:01:30 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1 2016-03-12 19:01:30 Using OpenSSL version OpenSSL 1.0.1f 6 Jan 2014 2016-03-12 19:01:30 Using BerkeleyDB version Berkeley DB 4.8.30: (April 9, 2010) 2016-03-12 19:01:30 Default data directory /home/bitcoin/.bitcoin 2016-03-12 19:01:30 Using data directory /home/bitcoin/.bitcoin 2016-03-12 19:01:30 Using config file /home/bitcoin/.bitcoin/bitcoin.conf 2016-03-12 19:01:30 Using at most 125 connections (1024 file descriptors available) 2016-03-12 19:01:30 Using 2 threads for script verification 2016-03-12 19:01:30 scheduler thread start 2016-03-12 19:01:30 HTTP: creating work queue of depth 16 2016-03-12 19:01:30 No rpcpassword set - using random cookie authentication 2016-03-12 19:01:30 Generated RPC authentication cookie /home/bitcoin/.bitcoin/.cookie 2016-03-12 19:01:30 HTTP: starting 4 worker threads 2016-03-12 19:01:30 Bound to [::]:8333 2016-03-12 19:01:30 Bound to 0.0.0.0:8333 2016-03-12 19:01:30 Cache configuration: 2016-03-12 19:01:30 * Using 2.0MiB for block index database 2016-03-12 19:01:30 * Using 257.5MiB for chain state database 2016-03-12 19:01:30 * Using 740.5MiB for in-memory UTXO set 2016-03-12 19:01:30 init message: Loading block index... 2016-03-12 19:01:30 Opening LevelDB in /home/bitcoin/.bitcoin/blocks/index 2016-03-12 19:01:31 Opened LevelDB successfully 2016-03-12 19:01:31 Using obfuscation key for /home/bitcoin/.bitcoin/blocks/index: 0000000000000000 2016-03-12 19:01:31 Opening LevelDB in /home/bitcoin/.bitcoin/chainstate 2016-03-12 19:01:32 Opened LevelDB successfully 2016-03-12 19:01:32 Using obfuscation key for /home/bitcoin/.bitcoin/chainstate: 0000000000000000 2016-03-12 19:01:41 LoadBlockIndexDB: last block file = 366 2016-03-12 19:01:41 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=120, size=88408331, heights=381171...381988, time=2015-10-30...2015-11-04) 2016-03-12 19:01:41 Checking all blk files are present... 2016-03-12 19:01:41 LoadBlockIndexDB: transaction index disabled 2016-03-12 19:01:42 LoadBlockIndexDB: hashBestChain=00000000000000000e8e6eb74e60af14a855276d2cdb9fc0a4502720e39f9d61 height=381439 date=2015-10-31 19:55:44 progress=0.884403 2016-03-12 19:01:42 init message: Verifying blocks... 2016-03-12 19:01:42 Verifying last 288 blocks at level 3 2016-03-12 19:01:42 ERROR: DisconnectBlock(): added transaction mismatch? database corrupted 2016-03-12 19:01:42 ERROR: ApplyTxInUndo: undo data adding output to missing transaction 2016-03-12 19:01:42 ERROR: ApplyTxInUndo: undo data overwriting existing transaction 2016-03-12 19:01:42 ERROR: ApplyTxInUndo: undo data overwriting existing output 2016-03-12 19:01:42 ERROR: ApplyTxInUndo: undo data adding output to missing transaction 
I thought this may have been a "speciality" of the ARM version I compiled myself when I saw it previously, but now it's happening with official binaries on a completely different platform (still hosted at Scaleway, but their x86_64 based offering, not their ARM offering). Of course, I can't rule out Scaleway somehow being unable to deal with the traffic pattern of bitcoind and corrupting the DB - is there a way to debug that?
Does anyone know what may cause this or what to do against it? I don't believe in the "out of RAM" theory since I also had similar crashes happen on nodes with ridiculous amounts of swap enabled (this box didn't though). I really can't run a node if it's going to keep blowing up.
If any somewhat-well-known developer wants to debug this/have a look at the corrupted database, send me your SSH public key and I'll give you access to the node. There's nothing of value on the box, the cost is limited, and traffic doesn't cost me anything, so I'm happy to let you play with it for a month or so.
submitted by aaaaaaaarrrrrgh to btc [link] [comments]

Setting up bitcoin-abe for defcoin

here's my notes on installing abe for blockchain explorer. YMMV ;)
14.04 ubuntu sudo apt-get install screen build-essential libssl-dev libboost1.55-all-dev libdb5.3-dev libdb5.3++-dev libminiupnpc-dev mysql-client mysql-server git clone https://github.com/tiabguls/defcoin.git cd defcoin/src make -f makefile.unix cp defcoind ~/ edit ~/.defcoin/defcoin.conf ==defcoin.conf== rpcuser=someuser rpcpassword=somepassword alertnotify=echo %s | mail -s "defcoin Alert" [email protected] txindex=1 ================ run screen start defcoind ~/defcoind -seednode=seed2.defcoin.org -reindex detach (ctrl-a-d) sudo apt-get install python2.7 python-crypto python-mysqldb git clone https://github.com/bitcoin-abe/bitcoin-abe.git (see https://github.com/bitcoin-abe/bitcoin-abe/blob/masteREADME-MYSQL.txt ) create mysql user & database cd bitcoin-abe find magic number https://bitcointalk.org/index.php?topic=131781.0 main.cpp of defcoin unsigned char pchMessageStart[4] = { 0xfb, 0xc0, 0xb6, 0xdb }; // defcoin: increase each by adding 2 to bitcoin's value. find address version https://github.com/bitcoin-abe/bitcoin-abe/blob/mastedoc/FAQ.html edit abe.conf ==abe.conf== default-loader = blkfile dbtype MySQLdb connect-args {"user":"abe","db":"abe","passwd":"somepassword"} port 2750 host 0.0.0.0 upgrade datadir += [{ "dirname": "/home/user1234/.defcoin", "code3": "DFC", "address_version": "\u001e", "magic": "xfbxc0xb6xdb", "chain": "Defcoin" }] =========== 
Load abe data
python -m Abe.abe --config=/path/to/abe.conf --commit-bytes 100000 --no-serve 
Rescan abe data (if needeD)
python -m Abe.abe --config=/path/to/abe.conf --rescan 
Run web server
python -m Abe.abe --config=/path/to/abe.conf 
should be up and listening on port 2750.
submitted by embalmed to defcoin [link] [comments]

[ANN]SHERLOCK COIN (SHC)| + | + 221 Baker St + | + |only 221 coins to be mined +

SHERLOCK COIN (SHC) - The Game is on to the Crypto World!
Overview As of Sherlock Holmes and as you may know is best detective and genius of all time , while being grateful for the dedication and works of Sir Arthur Canon Doyle , this coin is solely based on character of Sherlock Holmes and ingenuity of the same while solving mysteries the same can be seen on the coin. Wink , while dedicating this coin to all the enthusiasts of Sherlock Holmes , I believe and have faith that this coin will make it through and will be a success , something to hold on to and cherish.
As you probably know by now that the board get's spammed uncontrollably by ALT-Coins releases everyday , some might survive some might not I want SHC to be treasured not at all a pump and dump coin but a coin to cherish the name of Sherlock Holmes and for the enthusiasts to treasure it and if you want to spread it around.
Launch This is a fork of Litecoin and developed using foundations and guidance documented by beloved members here who have committed and pledged their support for cryptocurrencies mainly Bitcoin as well as Alt-coins , my salute is to all who strive to make Cryptocurrencies the future and the dedication of developers who work night and day to make that dream a success , this coin is not a competitor to Bitcoin nor other ALT coins but a strength to the world of Cryptocurrencies and my contribution thus stands and will always with the community , we should never forget the past , thus as they say if done will be void of a future , therefore my salute goes to Bitcoin , it's founders and developers and the community that stands by it and everyone on this forum , thereby paying my respect as we all know we should be thankful of Bitcoin without it we would never would have imagined or known about a world of Cryptocurrencies. Salute!
Please Note: This is NOT a paid up over the countewebsite coin , that just popped out of a script on a website after making a Bitcoin Payment , I had to put my sweat , tears , dedication , sacrifice and time (lot's of it) , had to put 200% of my effort, trial and error , learning , failures to make this workout , this coin opened up a new chapter in my life , learning , as I've learned alot while making this , I kindly ask you to respect that while criticizing if you may require.
BOUNTIES & GIVEAWAYS To Be Announced
WEBSITE http://www.sherlockcoin.org/ (Under Maintenance)
BLOCK EXPLORER To Be Announced
FORUM To Be Announced
SPECIFICATIONS Scrypt 221 coins Max 221 second block time Difficulty re-target every 10 minutes 0.00000010 Block reward for the first 221 blocks (Conveniently set to allow you to get your miners running) Blocks 222+ are 0.00004200 block reward Random Block Rewards/Super Blocks! Smiley Block 212 is a Special Block with More Rewards than the normal block value Tx fees are 0.00000001 RPC port 55883 p2p port 55884 0.01% (0.221 coins) Premine for Testing/Bounty and Giveaway Purposes.
DOWNLOADS
Source Code https://github.com/sherlockcoin/sherlockcoin
Windows Wallet https://www.mediafire.com/?ubm65t3099ba3hs
(https://www.virustotal.com/en/file/6d6df602b8090b105b2a0ccbb3a60a9111cace9dddc8354f8ffad855edfddd2e/analysis/1391839558/)
Sample sherlockcoin.conf file:
rpcuser=username rpcpassword=password rpcallowip=127.0.0.1 rpcport=55883 port=55884 listen=1 daemon=1 server=1 addnode=76.74.178.191
POOLS To be Announced
EXCHANGES To be Announced
SERVICES / OTHER To be Announced
REDDIT http://www.reddit.com/SherlockCoin/
IRC FreeNode To be Announced
For more services it's best to check out the website links at the top of this information thread.
Elementary my dear alt-coiner! Wink These coins will be rare! Smiley
submitted by soopy452000 to SherlockCoin [link] [comments]

Interested in contributing to the BTC community? Here is a exhaustive manual to get you up and running. (Only takes about 20-30 minutes if you are fluent in command prompt on linux).

These instructions will work both on a VPS cloud server or a personal computer. You may find cheap VPS somewhere online for rent.
What Is A Full Node?
A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet. If not enough nodes perform this function, clients won’t be able to connect through the peer-to-peer network—they’ll have to use centralized services instead.
Many people and organizations volunteer to run full nodes using spare computing and bandwidth resources—but more volunteers are needed to allow Bitcoin to continue to grow. This document describes how you can help and what helping will cost you.
Costs And Warnings
Running a Bitcoin full node comes with certain costs and can expose you to certain risks. This section will explain those costs and risks so you can decide whether you’re able to help the network.
Special Cases
Miners, businesses, and privacy-conscious users rely on particular behavior from the full nodes they use, so they will often run their own full nodes and take special safety precautions. This document does not cover those precautions—it only describes running a full node to help support the Bitcoin network in general.
Please consult an expert if you need help setting up your full node correctly to handle high-value and privacy-sensitive tasks.
Secure Your Wallet
It’s possible and safe to run a full node to support the network and use its wallet to store your bitcoins, but you must take the same precautions you would when using any Bitcoin wallet. Please see the securing your wallet page for more information.
Minimum Requirements
Bitcoin Core full nodes have certain requirements. If you try running a node on weak hardware, it may work—but you’ll likely spend more time dealing with issues. If you can meet the following requirements, you’ll have an easy-to-use node.
Note: many operating systems today (Windows, Mac, and Linux) enter a low-power mode after the screensaver activates, slowing or halting network traffic. This is often the default setting on laptops and on all Mac OS X laptops and desktops. Check your screensaver settings and disable automatic “sleep” or “suspend” options to ensure you support the network whenever your computer is running.
Possible Problems
Legal: Bitcoin use is prohibited or restricted in some areas.
Bandwidth limits: Some Internet plans will charge an additional amount for any excess upload bandwidth used that isn’t included in the plan. Worse, some providers may terminate your connection without warning because of overuse. We advise that you check whether your Internet connection is subjected to such limitations and monitor your bandwidth use so that you can stop Bitcoin Core before you reach your upload limit.
Anti-virus: Several people have placed parts of known computer viruses in the Bitcoin block chain. This block chain data can’t infect your computer, but some anti-virus programs quarantine the data anyway, making it more difficult to run a full node. This problem mostly affects computers running Windows.
Attack target: People who want to disrupt the Bitcoin network may attack full nodes in ways that will affect other things you do with your computer, such as an attack that limits your available download bandwidth or an attack that prevents you from using your full node’s wallet for sending transactions.
Linux Instructions
The following instructions describe installing Bitcoin Core on Linux systems.
Ubuntu 14.10 Instructions for Bitcoin Core 0.10.0.
If you use Ubuntu Desktop, click the Ubuntu swirl icon to start the Dash and type “term” into the input box. Choose any one of the terminals listed:
Alternatively, access a console or terminal emulator using another method, such as SSH on Ubuntu Server or a terminal launcher in an alternative desktop environment.
Type the following line to add the Bitcoin Personal Package Archive (PPA) to your system:
sudo apt-add-repository ppa:bitcoin/bitcoin
You will be prompted for your user password. Provide it to continue. Afterwards, the following text will be displayed:
Stable Channel of bitcoin-qt and bitcoind for Ubuntu, and their dependencies
More info: https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin
Press [ENTER] to continue or ctrl-c to cancel adding it
Press enter to continue. The following text (with some variations) will be displayed and you will be returned to the command line prompt:
gpg: keyring /tmp/tmpixuqu73x/secring.gpg' created gpg: keyring/tmp/tmpixuqu73x/pubring.gpg' created gpg: requesting key 8842CE5E from hkp server > > > >keyserver.ubuntu.com gpg: /tmp/tmpixuqu73x/trustdb.gpg: trustdb created gpg: key 8842CE5E: public key "Launchpad PPA for Bitcoin" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 pg: imported: 1 (RSA: 1) OK
Type the following line to get the most recent list of packages:
sudo apt-get update
A large number of lines will be displayed as different update files are downloaded. This step may take several minutes on a slow Internet connection.
To continue, choose one of the following options
sudo apt-get install bitcoin-qt
sudo apt-get install bitcoind
sudo apt-get install bitcoin-qt bitcoind
After choosing what packages to install, you will be asked whether you want to proceed. Press enter to continue.
If you’re logged in as an administrative user with sudo access, you may log out. The steps in this section should be performed as the user you want to run Bitcoin Core. (If you’re an expert administrator, you can make this a locked account used only by Bitcoin Core.)
Before using the Bitcoin Core daemon, bitcoind, you need to create its configuration file with a user name and password. First create the .bitcoin directory, create (touch) the file, and set the file’s permissions so that only your user account can read it. From the terminal, type:
mkdir ~/.bitcoin touch ~/.bitcoin/bitcoin.conf chmod 600 ~/.bitcoin/bitcoin.conf
Then you can run the command bitcoind. It will print output similar to this:
bitcoind Error: To use the "-server" option, you must set a rpcpassword in the configuration file: /home/bitcoinorg/.bitcoin/bitcoin.conf It is recommended you use the following random password: rpcuser=bitcoinrpc rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; for example: alertnotify=echo %s | mail -s "Bitcoin Alert" [email protected] The “rpcpassword” displayed will be unique for your system. You can copy the rpcuser and rpcpassword lines into your configuration file using the following commands. Note that in most Ubuntu terminals, you need to press Ctrl-Shift-C to copy and Ctrl-Shift-V to paste because Ctrl-C and Ctrl-V have different meanings in a Unix-style terminal.
echo rpcuser=bitcoinrpc >> ~/.bitcoin/bitcoin.conf echo rpcpassword=XXXXXX >> ~/.bitcoin/bitcoin.conf (Warning: Don’t use XXXXXX as your RPC password. Copy the rpcpassword displayed by bitcoind for your system.)
Now you can start Bitcoin Core daemon for real. Type the following command:
bitcoind -daemon
It will print a message that Bitcoin Core is starting. To interact with Bitcoin Core daemon, you will use the command bitcoin-cli (Bitcoin command line interface). Note: it may take up to several minutes for Bitcoin Core to start, during which it will display the following message whenever you use bitcoin-cli:
error: {"code":-28,"message":"Verifying blocks..."}
After it starts, you may find the following commands useful for basic interaction with your node:
to safely stop your node, run the following command:
bitcoin-cli stop
A complete list of commands is available in the Bitcoin.org developer reference.
When Bitcoin Core daemon first starts, it will begin to download the block chain. This step will take at least several hours, and it may take a day or more on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time using the stop command; it will resume from the point where it stopped the next time you start it.
Optional: Start Your Node At Boot
Starting your node automatically each time your computer boots makes it easy for you to contribute to the network. The easiest way to do this is to start Bitcoin Core daemon from your crontab. To edit your crontab, run the following command:
crontab -e
@reboot bitcoind -daemon Save the file and exit; the updated crontab file will be installed for you. Now Bitcoin Core daemon will be automatically started each time your reboot your computer.
If you’re an Ubuntu expert and want to use an init script instead, see this Upstart script.
You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoin’s many communities, such as Bitcoin StackExchange, BitcoinTalk technical support, or the #bitcoin IRC chatroom on Freenode.
To support the Bitcoin network, you also need to allow incoming connections. Please read the Network Configuration section for details.
Network Configuration
If you want to support the Bitcoin network, you must allow inbound connections.
When Bitcoin Core starts, it establishes 8 outbound connections to other full nodes so it can download the latest blocks and transactions. If you just want to use your full node as a wallet, you don’t need more than these 8 connections—but if you want to support lightweight clients and other full nodes on the network, you must allow inbound connections.
Servers connected directly to the Internet usually don’t require any special configuration. You can use the testing instructions below to confirm your server-based node accepts inbound connections.
Home connections are usually filtered by a router or modem. Bitcoin Core will request your router automatically configure itself to allow inbound connections to Bitcoin’s port, port 8333. Unfortunately many routers don’t allow automatic configuration, so you must manually configure your router. You may also need to configure your firewall to allow inbound connections to port 8333. Please see the following subsections for details.
Testing Connections
The BitNodes project provides an online tool to let you test whether your node accepts inbound connections. To use it, start Bitcoin Core (either the GUI or the daemon), wait 10 minutes, and then visit the GetAddr page (https://getaddr.bitnodes.io/). The tool will attempt to guess your IP address—if the address is wrong (or blank), you will need to enter your address manually.
For more instruction and reviews based off BTC please follow my subreddit /BTC_Reviews
all material from this post was found here --> https://bitcoin.org/en/full-node
submitted by Mattjhagen to rBitcoin [link] [comments]

Running a full node using Bitcoin-daemon. Instructions for Linux.

These instructions will work both on a VPS cloud server or a personal computer. You may find cheap VPS somewhere online for rent.
What Is A Full Node?
A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet. If not enough nodes perform this function, clients won’t be able to connect through the peer-to-peer network—they’ll have to use centralized services instead.
Many people and organizations volunteer to run full nodes using spare computing and bandwidth resources—but more volunteers are needed to allow Bitcoin to continue to grow. This document describes how you can help and what helping will cost you.
Costs And Warnings
Running a Bitcoin full node comes with certain costs and can expose you to certain risks. This section will explain those costs and risks so you can decide whether you’re able to help the network.
Special Cases
Miners, businesses, and privacy-conscious users rely on particular behavior from the full nodes they use, so they will often run their own full nodes and take special safety precautions. This document does not cover those precautions—it only describes running a full node to help support the Bitcoin network in general.
Please consult an expert if you need help setting up your full node correctly to handle high-value and privacy-sensitive tasks.
Secure Your Wallet
It’s possible and safe to run a full node to support the network and use its wallet to store your bitcoins, but you must take the same precautions you would when using any Bitcoin wallet. Please see the securing your wallet page for more information.
Minimum Requirements
Bitcoin Core full nodes have certain requirements. If you try running a node on weak hardware, it may work—but you’ll likely spend more time dealing with issues. If you can meet the following requirements, you’ll have an easy-to-use node.
Note: many operating systems today (Windows, Mac, and Linux) enter a low-power mode after the screensaver activates, slowing or halting network traffic. This is often the default setting on laptops and on all Mac OS X laptops and desktops. Check your screensaver settings and disable automatic “sleep” or “suspend” options to ensure you support the network whenever your computer is running.
Possible Problems
Legal: Bitcoin use is prohibited or restricted in some areas.
Bandwidth limits: Some Internet plans will charge an additional amount for any excess upload bandwidth used that isn’t included in the plan. Worse, some providers may terminate your connection without warning because of overuse. We advise that you check whether your Internet connection is subjected to such limitations and monitor your bandwidth use so that you can stop Bitcoin Core before you reach your upload limit.
Anti-virus: Several people have placed parts of known computer viruses in the Bitcoin block chain. This block chain data can’t infect your computer, but some anti-virus programs quarantine the data anyway, making it more difficult to run a full node. This problem mostly affects computers running Windows.
Attack target: People who want to disrupt the Bitcoin network may attack full nodes in ways that will affect other things you do with your computer, such as an attack that limits your available download bandwidth or an attack that prevents you from using your full node’s wallet for sending transactions.
Linux Instructions
The following instructions describe installing Bitcoin Core on Linux systems.
Ubuntu 14.10 Instructions for Bitcoin Core 0.10.0.
If you use Ubuntu Desktop, click the Ubuntu swirl icon to start the Dash and type “term” into the input box. Choose any one of the terminals listed:
Alternatively, access a console or terminal emulator using another method, such as SSH on Ubuntu Server or a terminal launcher in an alternative desktop environment.
Type the following line to add the Bitcoin Personal Package Archive (PPA) to your system:
sudo apt-add-repository ppa:bitcoin/bitcoin
You will be prompted for your user password. Provide it to continue. Afterwards, the following text will be displayed:
Stable Channel of bitcoin-qt and bitcoind for Ubuntu, and their dependencies
More info: https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin
Press [ENTER] to continue or ctrl-c to cancel adding it
Press enter to continue. The following text (with some variations) will be displayed and you will be returned to the command line prompt:
gpg: keyring /tmp/tmpixuqu73x/secring.gpg' created gpg: keyring/tmp/tmpixuqu73x/pubring.gpg' created gpg: requesting key 8842CE5E from hkp server > > > >keyserver.ubuntu.com gpg: /tmp/tmpixuqu73x/trustdb.gpg: trustdb created gpg: key 8842CE5E: public key "Launchpad PPA for Bitcoin" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 pg: imported: 1 (RSA: 1) OK
Type the following line to get the most recent list of packages:
sudo apt-get update
A large number of lines will be displayed as different update files are downloaded. This step may take several minutes on a slow Internet connection.
To continue, choose one of the following options
sudo apt-get install bitcoin-qt
sudo apt-get install bitcoind
sudo apt-get install bitcoin-qt bitcoind
After choosing what packages to install, you will be asked whether you want to proceed. Press enter to continue.
If you’re logged in as an administrative user with sudo access, you may log out. The steps in this section should be performed as the user you want to run Bitcoin Core. (If you’re an expert administrator, you can make this a locked account used only by Bitcoin Core.)
Before using the Bitcoin Core daemon, bitcoind, you need to create its configuration file with a user name and password. First create the .bitcoin directory, create (touch) the file, and set the file’s permissions so that only your user account can read it. From the terminal, type:
mkdir ~/.bitcoin touch ~/.bitcoin/bitcoin.conf chmod 600 ~/.bitcoin/bitcoin.conf
Then you can run the command bitcoind. It will print output similar to this:
bitcoind Error: To use the "-server" option, you must set a rpcpassword in the configuration file: /home/bitcoinorg/.bitcoin/bitcoin.conf It is recommended you use the following random password: rpcuser=bitcoinrpc rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; for example: alertnotify=echo %s | mail -s "Bitcoin Alert" [email protected] The “rpcpassword” displayed will be unique for your system. You can copy the rpcuser and rpcpassword lines into your configuration file using the following commands. Note that in most Ubuntu terminals, you need to press Ctrl-Shift-C to copy and Ctrl-Shift-V to paste because Ctrl-C and Ctrl-V have different meanings in a Unix-style terminal.
echo rpcuser=bitcoinrpc >> ~/.bitcoin/bitcoin.conf echo rpcpassword=XXXXXX >> ~/.bitcoin/bitcoin.conf (Warning: Don’t use XXXXXX as your RPC password. Copy the rpcpassword displayed by bitcoind for your system.)
Now you can start Bitcoin Core daemon for real. Type the following command:
bitcoind -daemon
It will print a message that Bitcoin Core is starting. To interact with Bitcoin Core daemon, you will use the command bitcoin-cli (Bitcoin command line interface). Note: it may take up to several minutes for Bitcoin Core to start, during which it will display the following message whenever you use bitcoin-cli:
error: {"code":-28,"message":"Verifying blocks..."}
After it starts, you may find the following commands useful for basic interaction with your node:
to safely stop your node, run the following command:
bitcoin-cli stop
A complete list of commands is available in the Bitcoin.org developer reference.
When Bitcoin Core daemon first starts, it will begin to download the block chain. This step will take at least several hours, and it may take a day or more on a slow Internet connection or with a slow computer. During the download, Bitcoin Core will use a significant part of your connection bandwidth. You can stop Bitcoin Core at any time using the stop command; it will resume from the point where it stopped the next time you start it.
Optional: Start Your Node At Boot
Starting your node automatically each time your computer boots makes it easy for you to contribute to the network. The easiest way to do this is to start Bitcoin Core daemon from your crontab. To edit your crontab, run the following command:
crontab -e
@reboot bitcoind -daemon Save the file and exit; the updated crontab file will be installed for you. Now Bitcoin Core daemon will be automatically started each time your reboot your computer.
If you’re an Ubuntu expert and want to use an init script instead, see this Upstart script.
You have now completed installing Bitcoin Core. If you have any questions, please ask in one of Bitcoin’s many communities, such as Bitcoin StackExchange, BitcoinTalk technical support, or the #bitcoin IRC chatroom on Freenode.
To support the Bitcoin network, you also need to allow incoming connections. Please read the Network Configuration section for details.
Network Configuration
If you want to support the Bitcoin network, you must allow inbound connections.
When Bitcoin Core starts, it establishes 8 outbound connections to other full nodes so it can download the latest blocks and transactions. If you just want to use your full node as a wallet, you don’t need more than these 8 connections—but if you want to support lightweight clients and other full nodes on the network, you must allow inbound connections.
Servers connected directly to the Internet usually don’t require any special configuration. You can use the testing instructions below to confirm your server-based node accepts inbound connections.
Home connections are usually filtered by a router or modem. Bitcoin Core will request your router automatically configure itself to allow inbound connections to Bitcoin’s port, port 8333. Unfortunately many routers don’t allow automatic configuration, so you must manually configure your router. You may also need to configure your firewall to allow inbound connections to port 8333. Please see the following subsections for details.
Testing Connections
The BitNodes project provides an online tool to let you test whether your node accepts inbound connections. To use it, start Bitcoin Core (either the GUI or the daemon), wait 10 minutes, and then visit the GetAddr page (https://getaddr.bitnodes.io/). The tool will attempt to guess your IP address—if the address is wrong (or blank), you will need to enter your address manually.
For more instruction and reviews based off BTC please follow my subreddit /BTC_Reviews
all material from this post was found here --> https://bitcoin.org/en/full-node
submitted by Mattjhagen to BTC_Reviews [link] [comments]

COULD BITCOIN SUDDENLY DUMP TO THIS PRICE DUE TO THIS RARE ... IF BITCOIN BREAKS THIS LEVEL - PRICE WILL EXPLODE!! BTC PRICE RIGHT ON THE EDGE Free Bitcoin Value Scam Alert 0.35 Withdraw Waiting Live Proof HUGE BITCOIN PRICE CORRECTION POSSIBLE...??? - YouTube My take on Micro Bitcoin Value

Bitcoin was introduced in 2009 as a digital, decentralized currency. In the Bitcoin network theres no central authority. Instead a public ledger of every transaction is validated and shared using peer-to-peer technology. Recently there was a surprising spike in the value of Bitcoins , making me curiousto find out more of the system behind. If you started htmlcoind with rpcuser and rpcpassword specified, you'd have to use the same when executing htmlcoin-cli.This can also happen if you have htmlcoin.conf with rpcuser & rpcpassword filled out. htmlcoind will look for in the same directory as your wallet.dat.. Can we also see the contents of htmlcoin-cli-mining.sh?I don't think that is a standard delivered file? Bitcoin Core itself is ... testnet=0 server=1 rpcuser=your-rpc-user-here rpcpassword=your-rpc-password-here ... Some nodes will require payment channels to be above a certain value to connect to ... In bitcoin.conf. rpcuser=bitcoinrpc rpcpassword=<snip> daemon=1 rpctimeout=30 rpcport=8332 rpcallowip=my_vps_ip gen=0 ... bitcoin-current-value; 0 votes. 1 answer. How to create Bitcoin Address in PHP? You need to understand that Bitcoin address and ...READ MORE. answered Aug 27, 2018 in Blockchain by Perry There are two variations of the original bitcoin program available; one with a graphical user interface (usually referred to as just “Bitcoin”), and a 'headless' version (called bitcoind).They are completely compatible with each other, and take the same command-line arguments, read the same configuration file, and read and write the same data files.

[index] [9206] [27987] [20762] [30439] [207] [26239] [28347] [1043] [17495] [28023]

COULD BITCOIN SUDDENLY DUMP TO THIS PRICE DUE TO THIS RARE ...

Bitcoin price drops 15% in a matter of minutes. What does this mean for bitcoin bulls? Is btc even bullish anymore? Here is what you can look out for on the bitcoin charts. Free Bitcoin Mining with Bitcoin Values 1BTC Per Week Speed (TH/s) - Duration: 3:02. How To Make Money Online For Free 3,395 views The price of Bitcoin is on a decline already and seems to consolidate slightly below $12.000. Is a huge Bitcoin price correction possible from this point on?... Analysis of Anthony Pompliano's $100,000 Bitcoin Price Prediction (by the End of 2021) - Duration: 11:55. Aimstone 11,758 views. 11:55. Welcome to Team Underground, I (Thomas) do weekly BTC price analysis on YouTube. I've been full time trading bitcoins for over a year now and I've decided to share some of my analysis on YouTube ...

#