BlockchainCommons/Learning-Bitcoin-from-the-Command-Line

Gridcoin 5.0.0.0-Mandatory "Fern" Release

https://github.com/gridcoin-community/Gridcoin-Research/releases/tag/5.0.0.0
Finally! After over ten months of development and testing, "Fern" has arrived! This is a whopper. 240 pull requests merged. Essentially a complete rewrite that was started with the scraper (the "neural net" rewrite) in "Denise" has now been completed. Practically the ENTIRE Gridcoin specific codebase resting on top of the vanilla Bitcoin/Peercoin/Blackcoin vanilla PoS code has been rewritten. This removes the team requirement at last (see below), although there are many other important improvements besides that.
Fern was a monumental undertaking. We had to encode all of the old rules active for the v10 block protocol in new code and ensure that the new code was 100% compatible. This had to be done in such a way as to clear out all of the old spaghetti and ring-fence it with tightly controlled class implementations. We then wrote an entirely new, simplified ruleset for research rewards and reengineered contracts (which includes beacon management, polls, and voting) using properly classed code. The fundamentals of Gridcoin with this release are now on a very sound and maintainable footing, and the developers believe the codebase as updated here will serve as the fundamental basis for Gridcoin's future roadmap.
We have been testing this for MONTHS on testnet in various stages. The v10 (legacy) compatibility code has been running on testnet continuously as it was developed to ensure compatibility with existing nodes. During the last few months, we have done two private testnet forks and then the full public testnet testing for v11 code (the new protocol which is what Fern implements). The developers have also been running non-staking "sentinel" nodes on mainnet with this code to verify that the consensus rules are problem-free for the legacy compatibility code on the broader mainnet. We believe this amount of testing is going to result in a smooth rollout.
Given the amount of changes in Fern, I am presenting TWO changelogs below. One is high level, which summarizes the most significant changes in the protocol. The second changelog is the detailed one in the usual format, and gives you an inkling of the size of this release.

Highlights

Protocol

Note that the protocol changes will not become active until we cross the hard-fork transition height to v11, which has been set at 2053000. Given current average block spacing, this should happen around October 4, about one month from now.
Note that to get all of the beacons in the network on the new protocol, we are requiring ALL beacons to be validated. A two week (14 day) grace period is provided by the code, starting at the time of the transition height, for people currently holding a beacon to validate the beacon and prevent it from expiring. That means that EVERY CRUNCHER must advertise and validate their beacon AFTER the v11 transition (around Oct 4th) and BEFORE October 18th (or more precisely, 14 days from the actual date of the v11 transition). If you do not advertise and validate your beacon by this time, your beacon will expire and you will stop earning research rewards until you advertise and validate a new beacon. This process has been made much easier by a brand new beacon "wizard" that helps manage beacon advertisements and renewals. Once a beacon has been validated and is a v11 protocol beacon, the normal 180 day expiration rules apply. Note, however, that the 180 day expiration on research rewards has been removed with the Fern update. This means that while your beacon might expire after 180 days, your earned research rewards will be retained and can be claimed by advertising a beacon with the same CPID and going through the validation process again. In other words, you do not lose any earned research rewards if you do not stake a block within 180 days and keep your beacon up-to-date.
The transition height is also when the team requirement will be relaxed for the network.

GUI

Besides the beacon wizard, there are a number of improvements to the GUI, including new UI transaction types (and icons) for staking the superblock, sidestake sends, beacon advertisement, voting, poll creation, and transactions with a message. The main screen has been revamped with a better summary section, and better status icons. Several changes under the hood have improved GUI performance. And finally, the diagnostics have been revamped.

Blockchain

The wallet sync speed has been DRASTICALLY improved. A decent machine with a good network connection should be able to sync the entire mainnet blockchain in less than 4 hours. A fast machine with a really fast network connection and a good SSD can do it in about 2.5 hours. One of our goals was to reduce or eliminate the reliance on snapshots for mainnet, and I think we have accomplished that goal with the new sync speed. We have also streamlined the in-memory structures for the blockchain which shaves some memory use.
There are so many goodies here it is hard to summarize them all.
I would like to thank all of the contributors to this release, but especially thank @cyrossignol, whose incredible contributions formed the backbone of this release. I would also like to pay special thanks to @barton2526, @caraka, and @Quezacoatl1, who tirelessly helped during the testing and polishing phase on testnet with testing and repeated builds for all architectures.
The developers are proud to present this release to the community and we believe this represents the starting point for a true renaissance for Gridcoin!

Summary Changelog

Accrual

Changed

Most significantly, nodes calculate research rewards directly from the magnitudes in EACH superblock between stakes instead of using a two- or three- point average based on a CPID's current magnitude and the magnitude for the CPID when it last staked. For those long-timers in the community, this has been referred to as "Superblock Windows," and was first done in proof-of-concept form by @denravonska.

Removed

Beacons

Added

Changed

Removed

Unaltered

As a reminder:

Superblocks

Added

Changed

Removed

Voting

Added

Changed

Removed

Detailed Changelog

[5.0.0.0] 2020-09-03, mandatory, "Fern"

Added

Changed

Removed

Fixed

submitted by jamescowens to gridcoin [link] [comments]

How To Stake/Mine Coinevo

EVO Staking/Evo mining

Evo uses Proof of Stake consensus mechanism, which is different from Bitcoin's PoW (Proof of Work). Evo mining process in PoS system is called staking. The block producer will get 6.5EVO, as well as the transaction fees and gases as block reward. So the real reward is usually more than 6.5 evo in total.
Basic requirements for staking:
  1. Run a Coinevo fullnode, and keep online (Since Coinevo is using PoS, we don't need any mining machine, just PC or even Raspberry Pi can run a fullnode);
  2. Have some EVO in the wallet (fullnode)(Any amount of EVO can be used for staking, more EVO means higher possibility to stake).
If you have no EVO yet, please get some from market before you doing following staking settings.
Currently, Coinevo Core wallet is the only wallet that support Coinevo PoS staking. Note that other wallets like mobile wallet and Evo Electrum are not able to stake for the time being.
Two ways to stake:
Either way works in the same way for staking, so you can choose either method you like.

Method 1:Staking with evod (command line)

1. Run evod

Follow the guidance to run evod :
./evod -daemon 
Staking is default on for evod, so no need for other options if you only want to stake.

2. Send some EVO to your wallet

First you can generate a new address with:
./evo-cli getnewaddress 
This will generate a new address with Prefix '1'. You can send some EVO to this new generated address for staking. You can generate as many addresses as you like, and send arbitrary EVO as you like for staking.
Note:The coin should wait for 500 blocks before being able to stake, i.e. about 17 to 24 hours to MATURE..
After the EVO node syncing to the latest block, you can check current balance with ./evo-cli getbalance or get utxo list with./evo-cli listunspent
Please do following steps after your coin is mature.

3. Check staking info

Check current staking info with:
./evo-cli getstakinginfo 
You might get the result like this:
{ "enabled": true, "staking": true, "errors": "", "currentblocktx": 0, "pooledtx": 0, "difficulty": 3693409.779133397, "search-interval": 1577, "weight": 309584575558555, "netstakeweight": 1948540143266404, "expectedtime": 805 } 
enabled means if your wallet have enabled staking, it should be true by default. staking means if your wallet is currently staking (mining). weight stands for the amount of EVO that is staking right now, with unit 10^-8EVO, here in the example, we have 0.532EVO staking. expectedtime stands for the expected time that you will get a reward, the unit is second.

4. How to stake if the wallet is encrypted?

If your wallet is not encrypted, you can skip this section. However, for security, we recommand you encrypt your wallet.
Coinevo wallet can be encrypted with encryptwallet . However, staking will be stopped when it is encrypted. For example, ./evo-cli getstakinginfo for a encrypted wallet:
{ "enabled": true, "staking": false, "errors": "", "currentblocksize": 1000, "currentblocktx": 0, "pooledtx": 94, "difficulty": 5788429.670171153, "search-interval": 0, "weight": 53206430, "netstakeweight": 2438496688951881, "expectedtime": 0 } 
See staking turns to false , which means wallet is not staking.
You can use walletpassphrase to unlock wallet for staking:
./evo-cli walletpassphrase "" 99999999 true 
After unlocking, you can double check getstakinginfo , it should look the same with previous unlocked result, staking become true.

Method 2: Staking with evo-qt wallet (official PC wallet)

Current supported platform: Mac/Linux/Windows.

1. Open Evo qt wallet

Launch the wallet.

2. Send some EVO to your wallet

If you already have some EVO in your wallet, you might skip this step.
Note:The coin should wait for 500 blocks before being able to stake, i.e. about 17 to 24 hours to MATURE..

3. Check staking status

The flash sign at the bottom of wallet shows staking info :
Solid black flash means it is staking now. For more information, you can put your mouse on the flash, e.g.:
Hollow flash measn it is not staking
Possible reasons for not staking:
No flash sign means staking is disabled

About block reward

The block producer will get more than 6.5 EVO rewards, something to keep in mind:

How to disable staking?

Staking is by default enabled for Coinevo wallet. If you need to disable staking for some reason (for example exchanges are always recommanded to disable staking), you might following anyone of the 3 ways below:
1 Add -staking=false when running Coinevo node:
./evod -staking=false -daemon 
For qt wallet, it is like:
./evo-qt -staking=false 
2 Add config staking=false in evo.conf;
3 Encrypt wallet, since encrypted wallet will automatically stop staking.
submitted by coinevo to u/coinevo [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]

Understanding BIP149, redeployment of Segwit with BIP8

I recently published BIP149 and would like to take a few moments to explain the details of this proposal.
BIP149 is a completely new deployment of segwit, which I propose if the current BIP9/BIP141/143/147 segwit deployment fails to lockin/activate by November 15th.
BIP149 cannot be run on mainnet now, and there is code in the reference implementation to prevent it from running. It is incompatible with the current segwit deployment on purpose to remove unnecessary complications.
Essentially, the idea is, if the current segwit deployment fails to activate by Nov 15th, we can release new software that has BIP149. This uses BIP8 to activate segwit by July 2018. Miners will still be able to trigger activation by 95% threshold signalling as normal. In the 8 months from November to July 2018, nodes will be able to upgrade to BIP149. If segwit is not MASF activated by July 2018, there will be enough of the economy running BIP149 that nodes can begin enforcement. What will actually happen is on the first retarget after July 4th, the BIP8 state machine will switch to LOCKED_IN status for two weeks, and then on the following retarget, ACTIVATION will occur. The rationale here is in 5 months we achieved 70% saturation of witness capable nodes, so by the time segwit timesout with all the urgency and demand people feel for segwit, we can expect them to upgrade at least as fast, if not much faster. I have spoken with a number of developers who think this is a reasonable assumption.
Background, I had hoped to be able to release a BIP that can be deployed concurrently now with segwit, but, there are various technical complications in implementing it cleanly and making it easily reviewable. I had various feedback from others in previous iterations and in order to get the widest support from developers especially concerned with predictable results and thus safety, I came to the conclusion that the BIP will get the widest support by not attempting any shortcuts and by removing all complexity. I know many people want segwit now, but, I think we should just bite the bullet and do it the BIP149 way. I already made a shortcut BIP with BIP148. I will discuss the pros and cons at the end.
Back to BIP149, this is a completely new redeployment with a new service bit NODE_UAWITNESS and new compact block protocol version - doing this avoids many gotchyas which I will explain below:
Currently, segwit capable nodes advertize the NODE_WITNESS service bit and preferentially peer with other NODE_WITNESS nodes. Post activation, segwit-active nodes will then know who they should relay witness blocks to and who they should relay old style stripped blocks to. The assumption is if I am a NODE_WITNESS node and segwit has activated, then other NODE_WITNESS nodes will also be segwit activated. We cannot reuse NODE_WITNESS because when BIP149 activates, they would believe non-BIP149 NODE_WITNESS nodes were also active. Using a new service bit, and effectively starting a new deployment as if the previous deployment doesnt exist, is the most predictable and trouble free way to go about it.
Additionally, BIP149 is compatible with existing mining software by reusing the "segwit" name and deployment chainparams (it's not possible to have two deployments with the same name, one expired and one pending/active, due to how versionbits is implemented). In short, if the current segwit deployment fails to activate, we can reuse parts to maintain compatibility, while changing the bare minimum to remove any conflicts with old nodes. It's clean, predictable and easy to review.
BIP148 IS NOT BIP149
Remember BIP148 is exceptional, it's NOT what a usual UASF BIP should look like. A normal UASF if effectively activation on a predetermined date in the future (a flag day). BIP8 combines BIP9 miner signalling with a flagday if MASF does not occur.
How is BIP149 different to BIP148? So BIP148 is a UASF which can be used in two ways. (a) The economy can run BIP148 and basically force miners to signal for segwit, thus activating the current segwit deployment. Or, (b) a majority of miners, 60% or so, could run it and censor other miners who do not signal segwit, thus causing the current segwit to deploy. In method (a) a chain split will occur if any miners do not upgrade, and given the fact there are always absentee miners and pool operators, this is quite likely. It's the economy vs hash power saying "if you dont signal, your blocks will not be worth anything because we will reject them". In the case of (b) you have a majority of hashpower, who could use their majority to orphan any non signalling miners. This isn't great but it's less disruptive than (a) because there is a majority hashpower definitely opted in.
BIP149 on the other had does not guarantee a chain split since that could only happen if a miner deliberately takes action to manually create a segwit invalid block, which would be rejected by the economy. The incentives are different also, with BIP148 a chainsplit comes for free, regardless of if it lasts long or not. In BIP149, a miner would have to specifically take action to split and waste their money, which they could do at any time anyway. BIP149 is uncontroversial in the sense it is just a redeployment with guaranteed activation at the end, for a soft fork we are fairly sure people want and will upgrade to. The evidence is everywhere. UASFs deployed over a long time and a decent flagday are perfectly safe - all soft forks are enforced by nodes, even if activation is triggered by hashpower.
Anyway, we've got 8 months from now to review and think about BIP149 - it cannot be deployed until November. If you would like to show support for BIP149, feel free to add the following to your bitcoin.conf
uacomment=UASF-SegWit-BIP149 
Note you can have multiple uacomments like:
uacomment=BIP8 uacomment=UASF-SegWit-BIP149 uacomment=UASF-SegWit-BIP148 
You can find the bitcoin.conf file here
You can also just add this to a shortcut - create a shortcut (or edit the existing one you use) and add this to the end: -uacomment=UASF-SegWit-BIP149
e.g. (just add the property to the end like this):
"C:\Program Files\Bitcoin\bitcoin-qt.exe" -uacomment=UASF-SegWit-BIP149 if you are using Windows.
You can also just add uacomments as multiple command line/shortcut arguments like
-uacomment=BIP8 -uacomment=UASF-SegWit-BIP149 -uacomment=UASF-SegWit-BIP148 
Then you can check here to see how your node is signalling at https://bitnodes.21.co/ will show something like: xxx.xxx.xxx.xxx:8333 /Satoshi:0.14.1(UASF-SegWit-BIP149)/
If your node has synced and doesn't show using the link above make sure to enable forwarding of port 8333 so you accept incoming connections (if you want to that is) - in your client: go into settings / network and tick enable incoming connections and use upnp. You might have to add it to your firewall if this doesn't work. [taken from this user comment].
Read the BIP https://github.com/bitcoin/bips/blob/mastebip-0149.mediawiki
See the implementation https://github.com/bitcoin/bitcoin/compare/master...shaolinfry:uasegwit-flagday
submitted by shaolinfry to Bitcoin [link] [comments]

Homelab collective ressources post!

Hey guys!
I'm fairly new to this sub and to having a home lab in general and I found this community to be so kind and helping, I wanted to give back what I've learned. I'm seeing a lot of questions asked around on improvements and on what to do with x extra hardware so I thought it would be nice to have a thread to regroup that.
 
I'll put here some stuff I gathered and the most common questions I've seen, feel free to contribute and i'll update the post along.
 
Latest Additions
 
Homelab Dashboard
Posts about dashboards have been growing lately and here are some of the best that were kind enough to provide us with their sources.
User Screenshot Source
yours truly http://imgur.com/a/GhCNH https://github.com/Gabisonfire/dashboard-q
lastditchefrt http://i.imgur.com/5zQdao4.png https://github.com/d4rk22/Network-Status-Page
_SleepingBag_ http://i.imgur.com/Ql9ZM4W.png https://github.com/jsank/homelabdash
NiknakSi https://niknak.org/extras/sysinfo TBA
DainBramaged http://imgur.com/jYNlUEQ https://github.com/gordonturneBigBoard
michaelh4u https://i.imgur.com/XkZwMKj.png https://github.com/michaelh4u/homelabfrontpage
spigotx http://imgur.com/a/1zMht https://github.com/spigotx/HomeLab2
SirMaster https://nicko88.com/ https://github.com/dashbad/plex-server-status
yourofl10 http://imgur.com/a/AyROa TBA
TheBobWiley http://imgur.com/a/oU6d3 https://github.com/TheBobWiley/ManageThis-LandingPages
0110010001100010 http://i.imgur.com/iwtQcsL.jpg https://github.com/danodemano/monitoring-scripts
mescon & SyNiK4L https://i.imgur.com/gqdVM6p.jpg https://github.com/mescon/Muximux
ak_rex http://i.imgur.com/a/RJkrT https://github.com/ak-rex/homelab-dashboard
 
Or build yours from scratch: PRTG API, ELK, Grafana, freeboard, JumpSquares
 
Some other resources: Custom Monitoring Scripts by 0110010001100010
 
Credits to apt64 for his original post
= Pi specific =
 
= Download Automation =
 
= Virtualization =
 
= Monitoring =
 
= Media Center =
 
= Remote access =
 
= VOIP =
 
= Networking =
 
= File Servers/Storage/RAID =
 
= Cameras =
 
= Documentation =
 
= Dynamic DNS =
 
= Backup =
 
= Creating network diagrams =
 
= Guides =
 
= Misc =
 
That's all I could come up with on top of my head + some research, passing over to you guys so we can get a nice complete list!
 
Let's try and stick with free(or mostly) softwares, let me know if you guys feel otherwise.
submitted by Gabisonfire to homelab [link] [comments]

Run a 0.14 Full-Node on RaspberryPi3 Pruned(less than 16GB SD needed)

Hi!
Happy if this guide helps you.
Tip if you want: 19656Uwdwko5RjtnuwQENpjBwE3ChzD59v
UPDATE 04/06/17
Add 'uacomment=UASF-SegWit-BIP148' into your bitcoin.conf if you want to signal UASF.
UPDATE 03/13/17
ADDED a tl;dr; Version at the end of this Post.
UPDATE 03/12/17:
Just to test it - I reinstalled all on 8GB SD and it works as well. But maybe you should use at least 16GB for the beginning.
Using a 128GB card for the first version was a little bit stupid - so I reinstalled everything on a 8GB SD card. Including Linux and a pruned blockchain - and it works.
I used prune=550 and Jessie Lite (headless / command line) - without wallet and gui.
The SD is almost full, but it works so far
I also updated the whole manual a bit to make things more clear. Thank you for all your feedback!
Just started my Bitcoin Node today and wanted to share the way I did it with people who are interested in running their own full node. It took some time to write everything down - hopefully correct so far.
I am sure, many people around bitcoin are way more informed and educated as I am - I am the noob. So I wrote this manual to help users like me - noobs, to get started with a cheap, simple bitcoin node on raspberry pi.
Have fun!
I wanted to get my Raspberry Pi 3 working as a node to support the network. Actually the process of installing and running the node was more or less easy - but for Noobs (like I am) it might be a bit tricky to start the whole thing, because there are different ways.
Did you - like me - think you would need +120GB on the raspi, external USB HDD to be a full node? You won't!
If you have a Raspberry and you know what Bitcoin is, I guess, you are a little bit aware of linux, networks and of course bitcoin - so I won't go into detail too much.
This guide is just a little helper to get a full node running on your raspberry pi. Thanks to the help of the nice people in this sub and of course the documentation by the developers, I got it working - and of course also special thanks to raspnode.com - as I followed their tutorial to start - I went some other ways here and there - so please read carefully.
For the Part 2 I would suggest to have http://raspnode.com/diyBitcoin.html open and read through my manual.
I split the tutorial in 2 Parts - PART ONE is about installing the client on your PC and downloading the Blockchain.
PART TWO is about the setup of the raspberryPi and transferring the pruned blockchain to the pi and run it as a full node!
The first thing to be aware of is: You actually need to download the whole blockchain to get this working - if you already have your bitcoin client synced on the PC / MAC great you can reuse it!
Now you might think "but you said less than 16GB in the title!"
Yes, but the good thing is you won't need to download it on your Raspberry, neither you need to sync it completely on your raspberry which took ages (weeks!) before. When you finished this Guide, you will just have a max. 4GB Blockchain on your Raspberry Pi - but it still is a full node! The magic word is Pruning.
Maybe even a 8GB SD Card works just fine including Linux (jessie lite)!
So, if you already have a full node on your PC - Great you can almost skip PART ONE - BUT have at how to Prune in PART ONE if you don't know about it.
For PART TWO you'll need a Raspberry Pi 2 or 3 (I used 3) min. 8GB (works also) or better 16GB SD Card. (I used a 128GB for the first version of this manual - which is way too big)

PART ONE

This is the manual how to get started on you PC / MAC / Linux (I did it on Win7)
Go to: https://bitcoin.org/en/download and download the core Client for your Machine (I used win64).
Install it and configure it to save the Blockchaindata to the directory of your choice - so instead getting 120GB on your C drive, I would suggest to download it to another place like a USB drive.
You can set this up during the install. Standard folder for the blockchain folder is "%APPDATA%\Bitcoin" on Windows.
or you can do it after the install by creating a bitcoin.conf file inside your installation folder / or %APPDATA%\Bitcoin and add
datadir=l:\yourfolder
to the file. Line by line.
By the way here you could also just add dbcache - to use more memory to speed up the process a bit:
dbcache=4096
if you don't want to use the settings inside the program. (you can also set this inside the program under settings! If you have this inside the bitcoin.conf you will see the amount you set there from inside the program - it overrides the values)
You can check inside the windows client under settings, if you can see a manual dbcache is set by having a look at the left footer area. When your dbcache value shows up, everything is fine.
So the Blockchain download process will take time - maybe a few days! Depending on your machine, internet connection and HDD.
The Blockchain is huge as it contains every single transaction of the past until today. You won't need to keep your PC running all the time, you can turn it off and on and it will resync automatically when you start bitcoin-qt.exe!
Make sure to close the client always via "quit" - ctrl+q.
After you have your bitcoin core installed, the blockchain downloaded and synced - you are ready to PRUNE!
First - close the Client and let it close smoothly. After it is really closed you can follow these steps:
By pruning, your blockchain will dramatically shrink. From 120GB to just a few GB.
Be aware, that you will lose your Downloaded Blockchain as pruning will erase a big chunk of it! If you have enough space, you could of course keep the full blockchain saved somewhere on another HDD.
You can prune by editing your bitcoin.conf file by adding:
prune=550
I used prune=1024 - not sure where the differences are right now (min. prune=550). (for my 8GB version I used 550! I suggest to use this.)
Save the bitcoind.conf file and restart your windows client.
It will now clean up the Blockchain. So just the latest blocks are saved. The client should start without any problems. Maybe it takes some time to prune the blockchain data.
Check if everything works normally (the client opens as usual, you can see an empty wallet) than close the client.
Inside the Bitcoin Folder, you'll find two folders called:
blocks chainstate
those are the interesting folders containing the important data (now pruned) - and we will transfer those two to the raspberry later!
Now you are good to start the raspi transfer explained in the next part.

PART 2

Here is what I did:
1) I installed Raspian Pixel (https://www.raspberrypi.org/downloads/raspbian/) using a 128 GB SD - which is not needed because of "Pruning" - I think a 16GB card might work, too! (You can also install Raspian Jessie Lite - which saves you even more space, as it runs headless - only command line) (Updated: It is better to use Jessie Lite to save a lot of space - when you are fine with only command line)
2) I followed partly this tutorial to get everything running and setup:
http://raspnode.com/diyBitcoin.html
Please have a look at it - I have copied the Headlines in capitals to let you know what I did, and what I skipped.
On Tutorial Page: Start with RASPBIAN (OPTIONAL) CONFIG OPTIONS.
Set You RasPi up including "EDITING FILES" to save your Layout at the tutorial page and come back here.
I skipped the CONFIGURE USB AND SET AUTOMOUNT process, as we are going to use PRUNING to reduce the 120GB to a tiny filesize - so USB Devices are not needed here!
It was necessary to ENLARGE SWAP FILE to install bitcoin core - otherwise it didn't went through which ended in a frozen raspi.
So have a close look by following the raspnode tutorial at: ENLARGE SWAP FILE.
I have my raspi running via cable to router - but you can also WiFi setup everything described under NETWORKING ON THE RASPBERRY PI.
Now comes the interesting part: Follow the steps at DOWNLOADING BITCOIN CORE DEPENDENCIES - they work fine for 0.14.0 too. Git should be on Board already when you installed Pixel - otherwise you would need to install it.
sudo apt-get install git -y (only jessy lite)
I skipped the next command lines - as I don't use bitcoin-qt wallet. If you want to use it as wallet - do the step.
mkdir ~/bin cd ~bin
Now you are in the folder you want your bitcoin core data be downloaded to via git. I didn't Downloaded the Berkeley Database source code - so I also skipped the whole next command lines
[email protected]~/bin$ wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz [email protected]~/bin$ tar -xzvf db-4.8.30.NC.tar.gz [email protected]~/bin$ cd db-4.8.30.NC/build_unix/ [email protected]~/bin/db-4.8.30.NC/build_unix$ ../dist/configure --enable-cxx [email protected]~/bin/db-4.8.30.NC/build_unix$ make -j4
and went on with "INSTALLING BITCOIN"!
I followed the first part but instead downloading 0.13 I took of course the latest version:0.14
git clone -b 0.14 https://github.com/bitcoin/bitcoin.git cd bitcoin ./autogen.sh
this might take some time to start.
If you have trouble with hanging RESOLVING DELTAS - just restart the Raspberry Pi and remove the bitcoin folder inside /~bin using
rm -rf bitcoin
this command will delete the folder and you can reuse
git clone -b 0.14 https://github.com/bitcoin/bitcoin.git

For some reason RESOLVING DELTAS is a common problem with different downloads - so just retry it and at least after 3 times it should work!

as I didn't use the GUI/ Wallet, I ran
./configure --enable-upnp-default --disable-wallet
as I don't need the wallet functionality.
I didn't need to use "MAKE" which saves you maybe up to 2.5 hours.
instead you can just go ahead with:
sudo make install
(If I am wrong in doing so - please let me know)
The install takes some time - and just a heads up: when it gets stuck somewhere - just redo the installation process - it took three times to went through - stuck at some processing.
After the installation took place you can finally get your Raspberry Pi Node running in no time!
To test if the the installation went through - you can just start bitcoind using:
bitcoind &
than check if everything is working so far:
bitcoin-cli getinfo
after a few seconds you should see version: etc...
if not, something went wrong. Try to redo the steps in the raspnode tutorial.
(don't give up if it failed - retry! Ask your questions here)
IMPORTANT: you need to stop bitcoin on your raspberry now!
bitcoin-cli stop
If you don't need an external USB Drive - what I hope - as we are going to use pruning just go ahead and skip the USB part and create a file inside (or follow the raspnode tutorial on how to setup the USB drive):
cd .bitcoin
sudo nano bitcoin.conf
and enter the exact same pruning size you have used on your Desktop Machine to prune. I used 1024 but the minimum is 550. (used 550 for the 8GB SD card on PC and Raspberry)
prune=550
That's it for the raspi.
update: To signal UASF enter in a new line:
uacomment=UASF-SegWit-BIP148

TRANSFER

Now you have to transfer the two folders CHAINSTATE and BLOCKS from your PC bitcoind directory to your raspberry.
I am using a program called "WINSCP" - it is free and easy to use: https://winscp.net/eng/download.php
We need this to transfer the files to the Raspberry pi. Pretty sure you can also do it via SSH - but I am the noob. So let's keep it simple.
Open Winscp and put in the IP Address of your Raspberry Pi, User and Password (same as in SSH)
You should now see the directories on your Raspberry Pi. There is a folder called
.bitcoin
enter it and you will see the two folders
blocks & chainstate
you can delete them on the raspberry as they have some data from your previous test inside.
Make sure you can also see the bitcoin.conf file in that directory, which needs to contain the exact same prune line, like the one on your desktop machine. If not, make sure to edit it via SSH. The line "datadir=l:\yourfolder" is obviously not needed in the Raspberry bitcoin.conf file.
Now grab the two folders CHAINSTATE and BLOCKS from your PC and copy them to your .bitcoind folder.
I also copied banlist.dat, fee_estimation.dat, mempool.dat and peers.dat to the folder - not really knowing if needed! Not needed.
The whole copy process might take some minutes (against some weeks in the old way).
After copying is finished, you can now start bitcoind on the Raspberry.
bitcoind &
the & symbol let you still use the command line while the process is running btw.
The process - if succesfull - will take some time to finish.
bitcoin-cli getinfo
Will give you some informations what is going on right now. When you can see, that it is checking the blocks, this is good!
If you get an error - double check - if you have the correct prune size (same as on desktop machine) - in bitcoin.conf and that this file is inside .bitcoin on RaspberryPi. It took me some time, to find my mistakes.
Congrats! You are almost a part of the network!
To make your node now a fullnode, you will need to go to your router (often 192.168.1.1) and enable portforwarding for your raspberry pi - and open ports 8333 - that's it!
You can now go to: https://bitnodes.21.co/nodes/
scroll down to "JOIN THE NETWORK" and check check if your node IP is connected!
It will show up as soon as the blocks are checked and the raspi is running.
Well done!
Now you are running a full node, with a small Blockchain and got it working in Minutes, not weeks!
I really hope, my little tutorial worked for you and your are part of the Node network now.
If you have problems or I made a mistake in this helper tut, just let me know and I will try to make it better.
Have fun and NODL!
the noob
tl;dr; (if you are a real noob start with the non-tl;dr version!)
tl;dr; PART ONE
1) Download & install / setup bitcoincore @ https://bitcoin.org/de/download
2) change dbcache to something smaller than your memory and download the whole Blockchain (120GB).
3) create a file called bitcoin.conf put the line prune=550 (or higher) in to activate pruning on win inside %appData%/bitcoin
4) Open ports 8333 on your Router to make this a full node with a smaller Blockchain.
You are running a full node on your PC.
tl;dr; PART TWO
1) Install jessie lite and the needed dependencies on your SDCard - Raspberry
( >git clone -b 0.14 https://github.com/bitcoin/bitcoin.git )
  • see tutorial for more info.
2) create a file called bitcoin.conf inside .bitcoin and add the same prune=Number you had on your PC.
3) transfer the pruned folders BLOCKS and CHAINSTATE to the Raspberry Folder .bitcoin
4)Start "bitcoind &"
5) let everything sync
6) Make sure you have port 8333 opened on your router.
You are running a full node on your Raspberry with a super small Blockchain (I put all on a 8GB SDcard)
Tip if you want : 19656Uwdwko5RjtnuwQENpjBwE3ChzD59v
updated 03/12 - will update more, soon.
updated 03/12.2 - I updated the whole process a bit and also added some improvements.
updated 03/14/ Added a tl;dr version at the end.
submitted by I-am-the-noob to Bitcoin [link] [comments]

A Guide to Keeping Keys Offline Using Armory +rPi

Hi Redditors.
I am going to post in this thread my experiences in getting my Desktop (Debian) machine running Armory in watch-only mode, and coupling that with an offline Raspberry Pi (which holds my private keys) for signing the transactions previously made in watch-only mode.
I actually compiled Armory from source directly on my Pi. This guide is probably more for the bitcoin 'power user', as to run Armory online, and broadcast the signed transactions, you need to have a bitcoin full node running (bitcoind).
Basic requirements:
Aimed-for Setup:
I'll post the guide in digestible sections...

Section 1

I should begin by saying I installed source code from git, and got Armory to build the DB on my desktop initially, WITHOUT creating a wallet.. (This allowed me to debug what was going on a little!)
Go to Bitcoin.org, select Armory..
It leads to a Download from Git:
https://github.com/goatpig/BitcoinArmory/releases
Followed the procedure for Linux Debian verify code, compile, install, all straight-forward..
Began by running bitcoind, and telling Armory where to find it. This is the command I used, obviously it was all on one line and didn't include the arrows/explanations!:
python ArmoryQt.py \ --satoshi-datadir=/BlockChain/chain20180414/blocks \ # <-----(where my bitcoind blocks live) --datadir=/ArmoryDataDi \ # <-----(this is instead of ~/.armory) --dbdir=/ArmoryDataDidatabases # <-------(again, non std. place used for Armory's databases.. my choice.) 
So, on the Desktop, after the initial "build databases"
(NB the initial "Build Databases" took about 1.5h and my two CPUs were maxed the whole time, Temps up to 62C. Not ideal; Im not in a rush!)
I then wanted to import a watch-only wallet.
Before I did this, I took a full backup of the Armory data dir:
/ArmoryDataDi
(or ~/.armory in a default installation).
I'd hate to have to make Armory do another full sync with the bitcoind node!

Section 2

Next step: offline wallet (with Private Keys) is on a Raspberry Pi.
I downloaded the source and managed to compile it on the pi itself! :)
Though there were some gymnastics needed to setup the Pi.
My Pi is running Raspbian based on Wheezy.. quite old!
I did the following on the Pi:
apt-get update apt-get upgrade (<---took about an hour!) apt-get install autotools-dev apt-get install autoconf 
Then I followed the instructions exactly as I had done for my Debian Desktop machine, EXCEPT:
I had to increase the Pi's swap space. I upped it from 100Mb to 400Mb.
The compilation took 7 hours, and my poor SD card got a thrashing.
But after compilation, I put the Swap back to 100Mb and Armory runs ok with about 150Mb of memory (no swap needed).
Swap increase on the Pi:
use your favourite editor, and open the file /etc/dphys-swapfile
add/change the following line:
CONF_SWAPSIZE=400 
Then, REBOOT the Pi:
sudo shutdown -h -P now 
Once the compilation was done on the Pi, put the swap back, rebooted and created an Armory wallet.
I added manual entropy and upped the encryption 'time' from 250ms to 2500ms - since the Pi is slow, but I'll be happy to wait for more iterations in the Key Derivation Function.
Once the wallet was created, it obviously prompts you for backup.
I want to add a private key of my own (i.e. import), so don't do the backup until this is over.
I import my Private Key, and Armory checks that this corresponds to a Public Key, which I check is correct.
This is the point now where the Pi storage medium (e.g an SD card) has to be properly destroyed if you ever get rid of it.
I had thought that now would be a good time to decide if your new wallet will generate Segwit receiving addresses, and also addresses used to receive 'change' after a transaction..
But it seems Armory WON'T let you switch to P2SH-P2WPKH unless your Armory is connected to a node offering "WITNESS" service.
Obviously, my Pi is offline and will never connect to a node, so the following will not work on the Pi:
NB: I thought about setting this on the Debian "watch-only" wallet, but that would surely mean doom, as the Pi would not know about those addresses and backups might not keep them.. who knows...
So, end result:- no segwit for me just yet in my offline funds.

--If anyone can offer a solution to this, I'd be very grateful--

Section 3

Ok, now this is a good point to back up your wallet on the Pi. It has your imported keys. I choose a Digital Backup - and put it on a USB key, which will never touch the internet and will be stored off-site. I also chose to encrypt it, because I'm good with passwords..
NB: The Armory paper backup will NOT back up your imported private keys, so keep those somewhere if you're not sweeping them. It would be prudent to have an Armory paper backup anyway, but remember it will likely NOT help you with that imported key.
Now for the watch-only copy of the wallet. I want to get the "watch-only" version onto my Desktop Debian machine.
On the Pi, I created (exported to a USB key) a "watching-only" copy of my wallet.
I would use the RECOMMENDED approach, export the "Entire Wallet File".
As you will see below, I initially exported only the ROOT data, which will NOT capture the watching-only part of the Private Key I entered manually above (i.e. the public Key!).
Now, back on the Debian Desktop machine...
I stopped all my crontab jobs; just give Armory uninterrupted CPU/memory/disk...
I also stopped bitcoind and made a backup prior to any watch-only wallet being imported.
I already made a backup of Armory on my Desktop, before any wallet import.
(this was needed, as I made a mistake.. see below)
So on the Debian Desktop machine, I begin by firing up bitcoind.
my command for this is:
./bitcoind -daemon -datadir=/BlockChain/chain20180414 -dbcache=400 -maxmempool=400 

Section 4

I try running Armory like this:
(I'm actually starting Armory from a script - StartArm.sh)
Inside the script StartArm.sh, it has the line:
python ArmoryQt.py --ram-usage=4 --satoshi-datadir=/BlockChain/chain20180414/blocks --datadir=/ArmoryDataDi --dbdir=/ArmoryDataDidatabases 
I know from bitter experience that doing a scan over the blockchain for a new wallet takes a looong time and a lot of CPU, and I'd like it to play nicely; not gobble all the memory and swap and run my 2xCPUs both at 100% for four hours...
So... I aim to run with --ram-usage=X and --thread-count=X
(For me in the end, X=1 but I began with X=4)
I began with --ram-usage=4 (<--- = 4x128Mb)
The result is below...
TypeError: cannot concatenate 'str' and 'int' objects 
It didn't recognise the ram-usage and carried on, crippling my Debian desktop PC.
This is where it gets dangerous; Armory can gobble so much memory and CPU that the windowing environment can cease up, and it can take over 30 minutes just to exit nicely from bitcoind and ArmoryDB.
So, I ssh to the machine from another computer, and keep an eye on it with the command
"free -h" 
I'd also be able to do a "sudo reboot now" if needed from here.

Section 5

So, trying to get my --ram-usage command recognised, I tried this line (added quotes):
python ArmoryQt.py --ram-usage="4" --satoshi-datadir=/BlockChain/chain20180414/blocks --datadir=/ArmoryDataDi --dbdir=/ArmoryDataDidatabases 
But no, same error...
Loading Armory Engine: Armory Version: 0.96.4 Armory Build: None PyBtcWallet Version: 1.35 Detected Operating system: Linux OS Variant : ('debian', '9.4', '') User home-directory : /home/ Satoshi BTC directory : /BlockChain/chain20180414 Armory home dir : /ArmoryDataDi ArmoryDB directory : /ArmoryDataDidatabases Armory settings file : /ArmoryDataDiArmorySettings.txt Armory log file : /ArmoryDataDiarmorylog.txt Do wallet checking : True (ERROR) ArmoryUtils.py:3723 - Unsupported language specified. Defaulting to English (en) (ERROR) ArmoryQt.py:1833 - Failed to start Armory database: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File "ArmoryQt.py", line 1808, in startArmoryDBIfNecessary TheSDM.spawnDB(str(ARMORY_HOME_DIR), TheBDM.armoryDBDir) File "/BitcoinArmory/SDM.py", line 387, in spawnDB pargs.append('--ram-usage=' + ARMORY_RAM_USAGE) TypeError: cannot concatenate 'str' and 'int' objects 

Section 6

So, I edit the Armory python file SDM.py:
if ARMORY_RAM_USAGE != -1: pargs.append('--ram-usage=4') #COMMENTED THIS, SO I CAN HARDCODE =4 # ' + ARMORY_RAM_USAGE) 
Running it, I now have acknowledgement of the --ram-usage=4:
(WARNING) SDM.py:400 - Spawning DB with command: /BitcoinArmory/ArmoryDB --db-type="DB_FULL" --cookie --satoshi-datadir="/BlockChain/chain20180414/blocks" --datadir="/ArmoryDataDi" --dbdir="/ArmoryDataDidatabases" --ram-usage=4 
Also, even with ram-usage=4, it used too much memory, so I told it to quit.
It took over 30 minutes to stop semi-nicely. The last thing it reported was:
ERROR - 00:25:21: (StringSockets.cpp:351) FcgiSocket::writeAndRead FcgiError: unexpected fcgi header version 
But that didn't seem to matter or corrupt the Armory Database, so I think it's ok.
So, I get brave and change SDM.py as below, and I make sure my script has a command line for --ram-usage="ABCDE" and --thread-count="FGHIJ"; the logic being that these strings "ABCDE" will pass the IF criteria below, and my hardcoded values will be used...
if ARMORY_RAM_USAGE != -1: pargs.append('--ram-usage=1') #COMMENTED THIS, SO I CAN HARDCODE =1 # ' + ARMORY_RAM_USAGE) if ARMORY_THREAD_COUNT != -1 pargs.append('--thread-count=1') #COMMENTED THIS, SO I CAN HARDCODE =1 #' + ARMORY_THREAD_COUNT) 
So, as usual, I use my script and start this with: ./StartArm.sh
(which uses command line:)
python ArmoryQt.py --ram-usage="ABCDE" --thread-count="FGHIJ" --satoshi-datadir=/BlockChain/chain20180414/blocks --datadir=/ArmoryDataDi --dbdir=/ArmoryDataDidatabases 
(this forces it to use my hard-coded values in SDM.py...)
So, this is the command which it reports that it starts with:
(WARNING) SDM.py:400 - Spawning DB with command: /BitcoinArmory/ArmoryDB --db-type="DB_FULL" --cookie --satoshi-datadir="/BlockChain/chain20180414/blocks" --datadir="/ArmoryDataDi" --dbdir="/ArmoryDataDidatabases" --ram-usage=1 --thread-count=1 
Again, this is where it gets dangerous; Armory can gobble so much memory and CPU that the windowing environment can cease up. So I ssh to the machine and keep an eye on it with:
"free -h" 

Section 7

So, on the Debian Desktop PC, I inserted the USB stick with the watch-only wallet I exported from the Pi.
Start Armory...
Import "Entire Wallet File" watch-only copy.
Wait 4 hours..
YAY!!!
After running Armory for about 30m, the memory usage dropped by 400m... wierd...
It took ~2 hours to get 40% completion.
After 3.5 hours it's almost there...
The memory went up to about 1.7Gb in use and 900Mb of Swap, but the machine remained fairly responsive throughout, apart from a few (10?) periods at the start, where it appeared to freeze for 10-30s at a time.
(That's where my ssh session came in handy - I could check the machine was still ok with a "free -h" command)
Now, I can:
Create an unsigned transaction on my Desktop,
Save the tx to USB stick,
Move to the Pi,
Sign the tx,
Move back to the Desktop,
Broadcast the signed tx.

Section 8

My initial Mistake:
This caused me to have to roll-back my Armory database, using the backup. so you should try to avoid doing this..
On the Pi, I exported only the ROOT data, which will NOT capture the watching-only part of the Private Key
It is RECOMMENDED to use the Digital Export of Entire Wallet File from the Pi when making a watch-only copy. If you just export just the "ROOT data", not the "Entire Wallet File", you'll have problems if you used an imported Private Key in the offline wallet, like I did.
Using the ROOT data text import, after it finished... my balance was zero. So,. I tried a Help->Rescan Balance (Restart Armory, takes 1minute to get back up and running) No Luck. Still zero balance.
So, I try Rescan Databases.. This will take longer. Nah.. no luck.
So, I tried again, thinking it might be to do with the fact that I imported the text "root data" stuff, instead of following the (Recommended) export of watching-wallet file.
So, I used my Armory backup, and wound back the ArmoryDataDi to the point before the install of the (zero balance) wallet. (you should not need to do this, as you will hopefully use the RECOMMENDED approach of exporting the "Entire Wallet File"!)
submitted by fartinator to Bitcoin [link] [comments]

Dogecoin on Linux - The Complete Beginner's Guide

I'm writing this because I couldn't find a single condensed guide on compiling the wallet and running mining software on linux, specficially Ubuntu/Linux Mint. I combed Bitcoin and Litecoin forums for similar problems I was running into and eventually got everything nailed down, so here it is in one place, for new Shibes.
If you want to make a Dogecoin directory in your downloads folder to keep things organized, you will need to modify these commands to refelct the change. So instead of going to ~/Downloads/ you will need to go to ~/Downloads/Dogecoin and be sure to put the zipped files there when you download them, but the commands will be the same otherwise.
cwayne18 put in the work to make a PPA for the QT client here.
Ubunutu/Mint/Debian users should be able to install the client with the following commands:
sudo add-apt-repository ppa:cwayne18/doge sudo apt-get update && sudo apt-get install dogecoin-qt 
To update using this method, run
sudo apt-get update && sudo apt-get upgrade dogecoin-qt 
Compiling the Wallet Manually
I suggest using the PPA above, but if you want to compile manually, here you go.
1)Download the newest source from here. If you want to check out the Github page, click here
2)Unzip the package with the native client OR, navigate to your downloads and unzip
cd ~/Downloads unzip dogecoin-master.zip 
3)Now it's time to compile. You will need to install the dependencies, just copy and paste the following code. It will be a fairly large download and could take some time. It is always important to update before installing any new software, so we'll do that first and then install the dependencies.
sudo apt-get update sudo apt-get upgrade sudo apt-get install libssl-dev libdb-dev libdb++-dev libqrencode-dev qt4-qmake libqtgui4 libqt4-dev sudo apt-get install libminiupnpc-dev libminiupnpc8 libboost-all-dev build-essential git libboost1.53-all-dev 
4)Once that is done, go to the doge-coin master directory and compile:
cd ~/Downloads/dogecoin-maste sed -i 's/-mgw46-mt-sd-1_53//g' dogecoin-qt.pro qmake USE_UPNP=- USE_QRCODE=0 USE_IPV6=0 make -j3 
After running the qmake command you will likely see some text similar to
Project MESSAGE: Building without UPNP support Project MESSAGE: Building with UPNP supportRemoved plural forms as the target language has less forms. If this sounds wrong, possibly the target language is not set or recognized. 
It's perfectly normal, so don't worry about that.
Your Dogewallet is ready to go! The executable is in ~/Downloads/dogecoin-maste and called dogecoin-qt. Your wallet information is in ~/.dogecoin. You can run the wallet at any time by opening terminal and typing
cd ~/Downloads/dogecoin-maste ./dogecoin-qt 
Future upgrades to dogewallet are easy. Back up your wallet.dat, and simply follow the same directions above, but you'll be unzipping and building the newer version. You will likely need to rename the old dogecoin-master directory in ~/Downloads before unzipping the newest version and building. Also, it is likely that you will not need to install the dependencies again.
Alternate Method For Installing Dogecoin Wallet from Nicebreakfast
After installing the dependencies listed in step 3, open terminal, then navigate to where you want Dogecoin Wallet stored and run:
git clone https://github.com/dogecoin/dogecoin ./autogen.sh ./configure make 
then when the wallet is updated just run
git pull 
from the dogecoin directory.
GPU Mining
GPU mining requires CGminer. My suggestion is to get the executable already built. The creator of cgminer has removed the built file from his website, but I've uploaded it here
sudo apt-get install pkg-config opencl-dev libcurl4-openssl-dev autoconf libtool automake m4 ncurses-dev cd ~/Downloads tar -xvf cgminer-3.7.2-x86_64-built.tar.bz2 
Don't use anything newer than 3.7.2. The newer versions of CGMiner don't support GPU mining.
That's it! You have cgminer ready to go! You will run cgminer with the following syntax
cd ~/Downloads/cgminer-3.7.2-x86_64-built/ ./cgminer --scrypt -o stratum+tcp://SERVERNAME:PORT -u WORKER.ID -p PASS 
A good guide for fine tuning cgminer can be found here; follow the litecoin example.
EDIT
I had trouble getting cgminer running with a single line command, but running it via an executable .sh file works. This is covered in the cgminer setup guide I posted above but I'll put it here too. In the same directory that has the cgminer executable, you need to make a file called cgminer.sh and make it executable. It should contain the follwing:
export GPU_USE_SYNC_OBJECTS=1 export GPU_MAX_ALLOC_PERCENT=100 export DISPLAY=:0 find *.bin -delete sleep 5 ./cgminer 
Then you can call cgminer in terminal by doing ./cgminer.sh You will need a cgminer.conf file containing all your options. All of this is covered in the guide that is linked above.
A quick note about AMD drivers: They used to be a huge PITA to install and get working, but the newest Catalyst drivers are great. There's a GUI installer, everything works out of the box, and there is a lot of documentation. You can download them here: AMD Catalyst 14.6 Beta Linux
CPU Mining
For CPU mining I use minerd because it doesn't require any work to get running, simply download it and get to work. Download the built file for your machine 32-bit or 64-bit, and then unzip it and you're ready to go!
cd ~/Downloads tar -xvf pooler-cpuminer-2.3.2-linux-x86.tar.gz 
The executable is called minerd and it will be in ~/Downloads but you can move it to wherever you like. To run it, pull up terminal and do
cd ~/Downloads minerd --url=stratum+tcp://SERVER:PORT --userpass=USERNAME.WORKERNAME:WORKERPASSWORD 
You're done! Happy mining!
Common Issues
I ran into this and I've seen others with this problem as well. Everything installs fine but there is a shared library file that isn't where it should be. In fact, it isn't there at all.
 libudev.so.1: cannot open shared object file: No such file or directory 
In terminal, do
sudo updatedb locate libudev.so.0.13.0 
And it will probably return a path /lib/x86_64-linux-gnu. Inside that directory there's a library file called libudev.so.0.13.0. You'll need to make a symlink (aka shortcut) that links libudev.so.1 to libudev.so.0.13.0 So, assuming you're working with libudev.so.0.13.0 do this
cd /lib/x86_64-linux-gnu sudo ln -s libudev.so.0.13.0 libudev.so.1 
Now if you do
ln -l 
You should see
libudev.so.1 -> ./libudev.so.0.13.0 
Meaning you've made the symlink. Also, the text for libudev.so.1 will be blue.
submitted by Boozybrain to dogecoin [link] [comments]

How to Mine BiblePay on Linux

This guide is outdated, please refer to:
https://wiki.biblepay.org/POBH_Setup
https://wiki.biblepay.org/PODC_Setup
 
 
 
 
 
 
 
 
IMPORTANT - Evolution Upgrade:
Quick Start https://wiki.biblepay.org/Quick_Start
Evolution Upgrade Information https://wiki.biblepay.org/Evolution_Upgrade
Getting Started with Evolution https://wiki.biblepay.org/Getting_Started_with_Evolution
Generic Smart Contracts https://wiki.biblepay.org/Generic_Smart_Contracts
What is BiblePay Evolution? https://www.reddit.com/BiblePay/comments/bifvpk/biblepay_evolution_what_is_it/
Recommend 2GB RAM or can get stuck compiling (if 1GB RAM can use Swap File) Use Ubuntu 16.04
INFO
https://github.com/biblepay/biblepay-evolution/blob/masteBuildBiblePay.txt
INSTALL COMMANDS
apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler apt-get install git apt-get install curl build-essential libtool autotools-dev automake pkg-config python3 bsdmainutils cmake sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install libdb4.8-dev libdb4.8++-dev git clone http://github.com/biblepay/biblepay-evolution prefix=x86_64-pc-linux-gnu cd biblepay-evolution/depends make -j4 # Choose a good -j value, depending on the number of CPU cores available cd .. ./autogen.sh #Note: if echo `pwd` does not return your working directory, replace it with your working directory such as /biblepay-evolution/ ./configure --prefix `pwd`/depends/x86_64-pc-linux-gnu make # See more here: #https://github.com/biblepay/biblepay-evolution/blob/mastedoc/build-unix.md 

SWAP FILE
NOTE: if server is 1GB RAM, before running last command "sudo make", set up a swap file
free #check if swap is 0 dd if=/dev/zero of=/vaswap.img bs=1024k count=1000 mkswap /vaswap.img swapon /vaswap.img free #check if swap is 1024 sudo make 

RUN COMMAND LINE
cd src ./biblepayd -daemon 
OR
RUN GUI
Your GUI program will be located in: /biblepay-evolution/src/qt
./biblepay-qt 
You can also run it in the background (to free up your terminal) if you call it with:
./biblepay-qt & 
To start mining, instructions are the same as for Windows: Go to Tools -> Debug Console
Execute this command (to start mining with 8 threads)
setgenerate true 8 
From there you can use all other commands such as getmininginfo, getwalletinfo, etc. Execute help command to get the list of all available commands.
Note: GUI will be built automatically only if you meet the requirements for qt library, i.e. make sure you ran this line before compiling:
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler 
BIBLEPAY is now Running!

SETUP CONFIG
Stop BiblePay and set up the config file to get starting nodes to sync with and enable mining:
./biblepay-cli stop cd ~/.biblepayevolution/ vi biblepay.conf addnode=node.biblepay.org gen=1 genproclimit=1 
Escape Key + : (Colon Key) + w + q + Enter (saves file and quits)

addnode --- adds a node to the list of nodes to connect to gen=1 --- turns on mining genproclimit --- sets number of threads to use when mining

Run BiblePay again and fully sync with network
cd ../biblepay-evolution/src ./biblepayd -daemon ./biblepay-cli getinfo 

USEFUL COMMANDS
./biblepay-cli help ./biblepay-cli getaccountaddress "" ./biblepay-cli getinfo ./biblepay-cli getmininginfo ./biblepay-cli setgenerate true 8 ./biblepay-cli sendtoaddress "insertAddressHere" 777 "" "" true ./biblepay-cli stop ./biblepayd -daemon top #CPU usage q to quit 

MINING THREADS: To change number of threads to use up for mining
a. Edit home/yourusername/.biblepayevolution/biblepay.conf file:
genproclimit=X 
and restart BiblePay -or- b. Menu >> Tools >> Debug Console >> Type command:
setgenerate true X 
(Replace X with number of threads Use top command to view CPU usage)

POOL
NOTE: To use the pool you must now use the external miner, not the wallet miner https://whitewalr.us/2019/biblepay-nomp-pool-mining.html
  1. Set up an account on pool website: https://pool.biblepay.org/
  2. Create Worker Username(s) - Workers tab >>> Add
  3. Enable pool and add Worker Username in ~/.biblepayevolution/biblepay.conf file, add these lines and save:
    pool=https://pool.biblepay.org workerid=insertWorkerUsernameHere
4. Restart BiblePay
./biblepay-cli stop ./biblepayd -daemon 
Setup Auto-Withdraw Navigate to Account >>> Account Settings >>> Verify your BBP Receiving Address >>> Click Authorize-Auto-Withdraws

UPDATE:

### Turn off/stop BiblePay
cd /home/yourname/biblepay-evolution/src ./biblepay-cli stop 

### Pull down latest Biblepay code and build it
cd /home/yourname/biblepay-evolution git pull origin master sudo make 

### Turn BiblePay back on and check version number
cd src ./biblepayd -daemon ./biblepay-cli getinfo ./biblepay-cli setgenerate true 8 

UPDATE IN ONE COMMAND:
./biblepay-evolution/src/biblepay-cli stop ; cd && cd biblepay-evolution/ && git pull origin master && sudo make && cd src && ./biblepayd -daemon && sleep 90 && ./biblepay-cli getmininginfo 
Note: the ";" says do this after, regardless of the outcome Note: && says do this after only if previous command finished with no errors

SPEED UP COMPILE:
To speed up the compile time, add -j4 or -j8 after make. This way it compiles using 4 or 8 threads instead of just 1.
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" sudo make -j8 
Reference: http://www.linux-databook.info/?page_id=2319

RSYNC stop biblepay from your nodes compile on your fastest machine then rsync with your machines only src folder is required
rsync -avuz /root/biblepay-evolution/src/ [email protected]:/root/biblepay-evolution/src/ 
https://stackoverflow.com/questions/3299951/how-to-pass-password-for-rsync-ssh-command https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
people make cron jobs and rsync automatically

OUTDATED

Unofficial Bash Script
https://gist.github.com/anonymous/d1c1d35e3c8f67f5fb2e204479fa5c6b

Official Ubuntu Package
https://launchpad.net/~biblepay-official

Unofficial Ubuntu Package
https://www.reddit.com/BiblePay/comments/7rwqqs/unofficial_ubuntu_packages_available/

Unofficial Mine in One Line
https://www.reddit.com/BiblePay/comments/7ryuk1/mine_in_one_line/
NOTE: DONT RUN ON A COMPUTER WITH COINS -- THIS IS A CLEAN INSTALL SCRIPT

COMPILE WITHOUT GUI: https://bitcointalk.org/index.php?topic=2042657.msg21878317#msg21878317 https://bitcointalk.org/index.php?topic=2042657.msg21878389#msg21878389
ADVANCED:

DOCKER IMAGES (NOTE: I havent tested these, use at your own risk) https://hub.docker.com/gagaha/biblepay/ https://hub.docker.com/cryptozero/biblepay-opt/
submitted by togoshige to BiblePay [link] [comments]

Learning Bitcoin 4 - Bitcoin Command Line Helper - Part 1 9. bitcoind Bitcoin from the Command Line - Sending Bitcoin ... Phoenix Blockchain - Bitcoin Peter Steinmetz Bitcoin JSON-RPC Tutorial 1

Go to C:\Program Files (x86)\Bitcoin using Windows Explorer. In that folder, hold shift and right-click and select Open command window here . In the command prompt, type bitcoin-qt.exe -rescan and hit enter . Now Bitcoin-Qt should start and rescan the blockchain to calculate the balances of the addresses in your wallet.dat file. Learning Bitcoin (and Lightning) from the Command Line. Learning Bitcoin from the Command Line is a tutorial for working with Bitcoin (and Lightning) that teaches direct interaction with the servers themselves, as the most robust and secure way to begin cryptocurrency work. Run the reference client Bitcoin-qt from the command line like this: # ... You can always check for the IP address by running docker-machine ip from the command line on Mac or Windows. How do I point this at the public blockchain? Run the reference client Bitcoin-qt, no need to run with special arguments. Run the docker container, but mount your bitcoin folder at datadir on the container: # on ... Sagen ich will eine Bitcoin-know-how habe ich, und drehen, die in eine Karriere. Gibt es eine website Auflistung job-Angebote zu Bitcoin, die ich verwenden könnte? Alternativ, wenn ich jemanden, der sich für Bitcoin-affinen Menschen zu beschäftigen, wo soll ich anfangen suchen? ... Bitcoin Core daemon should start. To interact with Bitcoin Core daemon, you will use the command bitcoin-cli (Bitcoin command line interface). If you installed Bitcoin Core into the default location, type the following at the command prompt to see whether it works:

[index] [36859] [46391] [6403] [99] [4095] [33497] [24917] [1468] [1152] [33831]

Learning Bitcoin 4 - Bitcoin Command Line Helper - Part 1

An introduction to the Bitcoin JSON-RPC tutorial series. BTC: 1NPrfWgJfkANmd1jt88A141PjhiarT8d9U One of the common complaints with Bitcoin is that it’s pretty hard to get started, and there’s a lot of overhead to making accounts and sending transactions.... C++ Qt 108 - Command Line, cross platform and threads - Duration: ... Bitcoin from the Command Line - Sending Bitcoin Transactions Programmatically with Javascript - Duration: 17:07. Decypher ... link:- https://tinyurl.com/ybut8p75 bitcoin, bitcoin news, bitcoin song, bitcoin mining, bitcoin etf, bitcoin wallet, #bitcoinatm, #bitcoinTrading, #bitcoinA... UPDATE: a few specifics have changed, see below for up-to-date commands In this video we create a local bitcoin testnet within a docker container.

#