Bitcoind – Commands, RPC Protocol, Install Server ...

Power of the Command Line (bitcoin-cli, hwi, electrum, trezorctl)

I think some of the console tools available with HW wallets today are greatly under utilized. Here's a quick write-up on how to create and sign a TXN very similar to 43d27...1fc06 found on the SLIP-14 wallet. I'll be using TrezorCTL, Electrum, and HWI for the signing. I won't go much into the setup or install, but feel free to ask if you have questions about it. Note, you don't have to use all three of these. Any one will produce a valid signed TXN for broadcast. I just showed how to do it three ways. Whats more some of the Electrum and HWI steps are interchangeable.
ColdCard also has a utility called ckcc that will do the sign operation instead of HWI, but in many ways they are interchangeable. KeepKey and Ledger both have libraries for scripted signing but no one-shot, one-line console apps that I know of. But HWI and Electrum of course work on all four.

TrezorCTL

This is the what most would think of to use to craft and sign TXNs, and is definitely very simple. The signing uses a script called build_tx.py to create a JSON file that is then used by the btc sign-tx command. The whole process is basically:
  1. tools/build_tx.py | trezorctl btc sign-tx -
This just means, take the output of build_tx and sign it. To copy 43d27...1fc06, I wrote a small script to feed build_tx, so my process looks like:
  1. ~/input.sh | tools/build_tx.py | trezorctl btc sign-tx -
But it's all very simple. Note... I used TrezorCTL v0.12.2 but build_tx.py version 0.13.0 1.

input.sh

```

!/bin/bash

secho() { sleep 1; echo $*}
secho "Testnet" # coin name secho "tbtc1.trezor.io" # blockbook server and outpoint (below) secho "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00:0" secho "m/84'/1'/0'/0/0" # prev_out derivation to signing key secho "4294967293" # Sequence for RBF; hex(-3) secho "segwit" # Signature type on prev_out to use secho "" # NACK to progress to outs secho "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3" # out[0].addr secho "10000000" # out[1].amt secho "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu" # out[1].addr secho "20000000" # out[1].amt secho "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x" # out[2].addr secho "99999694" # out[2].amt secho "" # NACK to progress to change secho "" # NACK to skip change secho "2" # txn.version secho "0" # txn.locktime ```

Electrum

Electrum is one of the better GUI wallets available, but it also has a pretty good console interface. Like before you need your Trezor with the SLIP-14 wallet loaded and paired to Electrum. I'll assume Electrum is up and running with the Trezor wallet loaded to make things simple.
Like with TrezorCTL, Electrum feeds on a JSON file, but unlike TrezorCTL it needs that JSON squished into the command line. This is a simple sed command, but I won't bore you with the details, but just assume that's done. So the process in Electrum (v4.0.3) looks like:
  1. electrum serialize (create psbt to sign)
  2. electrum --wallet signtransaction (sign said psbt)
Still pretty simple right! Below is the JSON I smushed for #1

txn.json

{ "inputs": [{ "prevout_hash":"e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "prevout_n": 0, "value_sats": 129999867 }], "outputs": [{ "address": "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3", "value_sats": 10000000 },{ "address": "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu", "value_sats": 20000000 },{ "address": "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x", "value_sats": 99999694 }]}

HWI

HWI is an unsung hero in my book. It's a very small clean and simple interface between HW wallets and Bitcoin Core. It currently supports a good range of HW wallets. It keeps itself narrowly focused on TXN signing and offloads most everything else to Bitcoin Core. Again, I'll assume you've imported your Trezor keypool into Core and done the requisite IBD and rescan. And if you don't have the RPC enabled, you can always clone these commands into the QT-console.
To sign our TXN in HWI (v1.1.2), we will first need to craft (and finalize) it in Bitcoin Core (0.21.1). Like in Electrum, we will have to use simple sed to smush some JSON into command arguments, but I'll assume you have that covered. It will take an inputs.json and an outputs.json named separately.
  1. bitcoin-cli createpsbt (create psbt)
  2. bitcoin-cli -rpcwallet= walletprocesspsbt (process psbt)
  3. hwi -f signtx (sign psbt)
  4. bitcoin-cli -rpcwallet= finalizepsbt (get a signed TXN from psbt)
A little more involved, but still nothing too bad. Plus this gives you the full power of Bitcoin Core including integrations with LND (lightning).

inputs.json

[{ "txid": "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "vout": 0 }]

outputs.json

[{ "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3": 0.10000000 },{ "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu": 0.20000000 },{ "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x": 0.99999694 }]

Conclusion

This may all seem like very low level coding, but is surprisingly simple once you get a knack for it. Whats more, all these platforms support testnet which allows you to practice with valueless coins until you get the hang of it. And, like many things in bitcoin, this is all (mostly) python, which is one of the easier languages to learn.
Enjoy
Footnotes
1 - https://github.com/trezotrezor-firmware/issues/1296
submitted by brianddk to Bitcoin [link] [comments]

Power of the Command Line (bitcoin-cli, hwi, electrum, trezorctl)

I think some of the console tools available with HW wallets today are greatly under utilized. Here's a quick write-up on how to create and sign a TXN very similar to 43d27...1fc06 found on the SLIP-14 wallet. I'll be using TrezorCTL, Electrum, and HWI for the signing. I won't go much into the setup or install, but feel free to ask if you have questions about it. Note, you don't have to use all three of these. Any one will produce a valid signed TXN for broadcast. I just showed how to do it three ways. Whats more some of the Electrum and HWI steps are interchangeable.

TrezorCTL

This is the what most would think of to use to craft and sign TXNs, and is definitely very simple. The signing uses a script called build_tx.py to create a JSON file that is then used by the btc sign-tx command. The whole process is basically:
  1. tools/build_tx.py | trezorctl btc sign-tx -
This just means, take the output of build_tx and sign it. To copy 43d27...1fc06, I wrote a small script to feed build_tx, so my process looks like:
  1. ~/input.sh | tools/build_tx.py | trezorctl btc sign-tx -
But it's all very simple. Note... I used TrezorCTL v0.12.2 but build_tx.py version 0.13.0 1.

input.sh

```

!/bin/bash

secho() { sleep 1; echo $*}
secho "Testnet" # coin name secho "tbtc1.trezor.io" # blockbook server and outpoint (below) secho "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00:0" secho "m/84'/1'/0'/0/0" # prev_out derivation to signing key secho "4294967293" # Sequence for RBF; hex(-3) secho "segwit" # Signature type on prev_out to use secho "" # NACK to progress to outs secho "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3" # out[0].addr secho "10000000" # out[1].amt secho "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu" # out[1].addr secho "20000000" # out[1].amt secho "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x" # out[2].addr secho "99999694" # out[2].amt secho "" # NACK to progress to change secho "" # NACK to skip change secho "2" # txn.version secho "0" # txn.locktime ```

Electrum

Electrum is one of the better GUI wallets available, but it also has a pretty good console interface. Like before you need your Trezor with the SLIP-14 wallet loaded and paired to Electrum. I'll assume Electrum is up and running with the Trezor wallet loaded to make things simple.
Like with TrezorCTL, Electrum feeds on a JSON file, but unlike TrezorCTL it needs that JSON squished into the command line. This is a simple sed command, but I won't bore you with the details, but just assume that's done. So the process in Electrum (v4.0.3) looks like:
  1. electrum serialize (create psbt to sign)
  2. electrum --wallet signtransaction (sign said psbt)
Still pretty simple right! Below is the JSON I smushed for #1

txn.json

{ "inputs": [{ "prevout_hash":"e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "prevout_n": 0, "value_sats": 129999867 }], "outputs": [{ "address": "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3", "value_sats": 10000000 },{ "address": "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu", "value_sats": 20000000 },{ "address": "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x", "value_sats": 99999694 }]}

HWI

HWI is an unsung hero in my book. It's a very small clean and simple interface between HW wallets and Bitcoin Core. It currently supports a good range of HW wallets. It keeps itself narrowly focused on TXN signing and offloads most everything else to Bitcoin Core. Again, I'll assume you've imported your Trezor keypool into Core and done the requisite IBD and rescan. And if you don't have the RPC enabled, you can always clone these commands into the QT-console.
To sign our TXN in HWI (v1.1.2), we will first need to craft (and finalize) it in Bitcoin Core (0.21.1). Like in Electrum, we will have to use simple sed to smush some JSON into command arguments, but I'll assume you have that covered. It will take an inputs.json and an outputs.json named separately.
  1. bitcoin-cli createpsbt (create psbt)
  2. bitcoin-cli -rpcwallet= walletprocesspsbt (process psbt)
  3. hwi -f signtx (sign psbt)
  4. bitcoin-cli -rpcwallet= finalizepsbt (get a signed TXN from psbt)
A little more involved, but still nothing too bad. Plus this gives you the full power of Bitcoin Core including integrations with LND (lightning).

inputs.json

[{ "txid": "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "vout": 0 }]

outputs.json

[{ "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3": 0.10000000 },{ "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu": 0.20000000 },{ "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x": 0.99999694 }]

Conclusion

This may all seem like very low level coding, but is surprisingly simple once you get a knack for it. Whats more, all these platforms support testnet which allows you to practice with valueless coins until you get the hang of it. And, like many things in bitcoin, this is all (mostly) python, which is one of the easier languages to learn.
Enjoy
Footnotes
1 - https://github.com/trezotrezor-firmware/issues/1296
submitted by brianddk to TREZOR [link] [comments]

Creamcoin 0.18.0.0 – following Bitcoin’s tale

Creamcoin 0.18.0.0 – following Bitcoin’s tale

06/08/2019 3 min read📷216SHARES216VIEWSShare on Twitter
When new Creamcoin was designed, we had in mind not only a coin that would hold parity with any cryptocurrency, but something that would demonstrate the extra-special capabilities of a decentralized ledger, capable to introduce, help and bring it further to the regular people. Blockchain developing is unstoppable complex process with endless possibilities. Integration of applications on such a technology could achieve better, secure pass of value.
0.18.0.0

On August 5th, 2019 Creamcoin code was successfully updated to the latest Bitcoin version 0.18.0
https://github.com/creamcoin/cream/
With this latest release, we proved that Creamcoin itself it’s not a sort of a tenant to the Bitcoin. Much easier to apply and to pursue the main purpose of existence and to create further innovations in our Cream Line. The new release brings tremendous performance improvements, as well as integration will be much easier for any platform, exchange or integrator. Wallets are available to Releases tab on github
WALLETS

Multi-wallet support

Cream Core now supports loading multiple, separate wallets. The wallets are completely separated, with individual balances, keys and received transactions. Multi-wallet is enabled by using more than one -wallet argument when starting Creamcoin, either on the command line or in the Cream config file. In Creamcoin-Qt, only the first wallet will be displayed and accessible for creating and signing transactions. GUI selectable multiple wallets will be supported in a future version. This feature will continue to be refined with later updates, as there are still some known issues in using the GUI to access the “multiwallet” command. The most notable is that you can’t use coin control features with multiple wallets loaded, or else you will likely retain the wrong wallet when attempting to switch wallets.
When running Cream Core with multi-wallet, wallet-level RPC methods must specify the wallet for which they’re intended in every request. HTTP RPC requests should be send to the :/wallet// endpoint, for example 127.0.0.1:8332/wallet/wallet1.dat/. bitcoin-cli commands should be run with a -rpcwallet option, for example [bitcoin-cli -rpcwallet=wallet1.dat getbalance] A new node-level [listwallets] RPC method is added to display which wallets are currently loaded. Starting command for both wallets should look like this: [creamd -daemon -wallet=wallet1.dat -wallet=wallet2.dat]

Hardware Wallet native compatibility

With a new release of Cream Core the possibility is added in the form of use hardware wallets (Ledger, Trezor, Digital BitBox, KeepKey, Coldcard), but this process is manual and involves the use of Hardware Wallet Interaction (HWI) tool and it needs HW support and addition of Cream in the future, which is not excluded from roadmap. This is a great news for everyone who use Cream Core, and want extra security. Only applies to those who can use command line/CLI (for now), and when some of Hardware wallets actually supports Cream.

SegWit 4MB limit

SegWit replacing the block size limit with a block “weight” limit, allowing up to 4 megabytes of transaction data, and giving a substantial boost in the transaction capacity of the Cream network.

www.creamcoin.com

In the same with the new code update, Creamcoin Team is doing major shifting power, migrating the marketing and promotion activities, from our news site cream.technology to our main page www.creamcoin.com. We will come up with additional statement in this matter, so our supporters and followers have better perspective of Cream Line and the products of it.
In the meantime we are looking into new ways that developers can enhance the capabilities of the Creamcoin protocol, integration of decentralized exchange functionality, lightning network and number of other options that would allow for different types of conditional sends of Creamcoin assets. We are inviting any individual, platform, exchange or integrator who would like to submit recommendations or feature requests, feel free to contribute to the Creamcoin Github.
By Cream Team
submitted by creamcointeam to u/creamcointeam [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]

What is up with all these Bitcoin devs who think that their job includes HARD-CODING CERTAIN VALUES THAT ARE SUPPOSED TO BE USER-CONFIGURABLE (eg: "seed servers")?

Recently, the developer of SegWit2x / BTC1, Jeff Garzik, caused some controversy by hard-coding the "seed servers" which Bitcoin uses to first start hunting for "peers".
Worse than that: apparently one of the "seeds" is a company he started, variously named Chainalysis / Skry / Bloq - which apparently specializes in de-anonymizing Bitcoin transactions and performing KYC/AML - and which also has apparently entered into agreements with Interpol.
Seriously, WTF???
This is what "Bitcoin devs" still consider to be part of their "job" - hard-coding parameters like this, which affect everyone else on the network - and which could easily be "exposed" to be made user-configurable - instead of being baked into the source code and requiring a friggin' recompile to change???
This recent event has refocused attention on the fact all these past years, most of these seed servers in "the" existing (legacy) client running on most of the network have _also been hard-coded - to domains under the control of "devs associated with Blockstream".
I don't like the list of seed servers in Bitcoin Core
Pieter Wuille - does not support BIP148 - works for Blockstream
Matt Corallo - does not support BIP148 - works for Blockstream
Luke Dashjr - supports BIP148 - works for Blockstream
Christian Decker - supports BIP148 - works for Blockstream
Jonas Schnelli - supports BIP148
Peter Todd - supports BIP148 - worked for Samson Mow who works for Blockstream
https://np.reddit.com/btc/comments/6nd50h/i_dont_like_the_list_of_seed_servers_in_bitcoin/
The corporate takeover of bitcoin illustrated in 1 commit
In The corporate takeover of bitcoin illustrated in 1 commit a user complains that btc1 changing the seed servers to servers run by some companies (see commit) equals a "corporate takeover of bitcoin". I never really took much care who runs these seed server, although they do posses a certain power over the network as correctly pointed out by P. Todd in the same thread:
...and the key thing with that is being able to control what nodes a node connects to can be a very powerful tool to attack new nodes, as it lets you prevent a node from learning about the valid chain with the most work.
[...]
4 out of 5 people running the bitcoin networks seed servers are directly associated with Blockstream!
I don't even believe that Blockstream is actually plotting an evil, forceful takeover of bitcoin using the seed servers. However it beautifully counteracts Adam's "decentralization is everything" arguments. What is most troublesome to me, is that this simple information is not allowed to appear on r\bitcoin at all.
https://np.reddit.com/btc/comments/6n8vqc/the_corporate_takeover_of_bitcoin_illustrated_in/
Seriously?
Bitcoin is almost 9 years old - and most people are still running clients which use hard-coded values (which require an inconvenient recompile to reconfigure) for the "seed servers"??
Maybe this is, in some sense, part of the reason why people like BlueMatt and Luke-Jr and Pieter Wiulle think they can lord it over us and tell everyone else what to do? ...because they have quietly (and unfairly / incompetently) hard-coded their own friggin' server domain names directly into everyone else's client code, as our "seed servers"?
Is the low level of "quality" we - as a community - have become accustomed to from our devs?
Do other clients (Bitcoin Classic, Bitcoin Unlimited and Bitcoin ABC) also gratuitously hard-code their "seed servers" like this?
Here's a post from a year ago regarding "seed servers" in Classic:
How come "classic" uses the same alert keys/DNS seeds as Core?
https://np.reddit.com/btc/comments/44atsp/how_come_classic_uses_the_same_alert_keysdns/
Meanwhile, here's the main question:
Why are any "serious" Bitcoin clients still "gratuitously" hard-coding any values like this?
Why has our "ecosystem" / "community" not naturally evolved to the point where we have some public "wiki" pages listing all the "good" (community-recognized, popular) seed servers - and every user configures their own client software by choosing who they want from this list?
(Maybe because we've been distracted by bullshit for these past few years, fighting with these very same devs because they've refused provide any support for users who want bigger blocks?)
What would users have to do if (God forbid) something were to happen to the servers of those 4-5 seed servers which are currently hard-coded into nearly everyone's clients?
In that situation (assuming some "new" seed servers quickly appeared) people would be have two options:
  • Edit their C++ source code and download/install a (trusted, verified) C++ compiler (if they don't already have one), and recompile the friggin' code; or
  • Wait until new binaries got posted online - and download them (and verify them).
Seriously?
This unnecessary "centralization point" (or major inconvenience / bottleneck) has been sitting in our code this entire time - while these supposedly knowledgeable devs keep beating us over their head with their mantra of "decentralization" - which they have actually been doing so little to maximize?
Psycho-Socio-Economic Side Bar
Serious (but delicate/senstive) question: How many of these "devs" have developed (possibly unconscious?) behaviors in life where they try to make users dependent on them?
"Vendor lock-in" is a thing - a very bad thing, which certain Bitcoin devs have exhibited a tendency to inflict on users - in many cases due to rather obvious (psychological, social, and/or economic) reasons.
We should gently (but firmly) reject these tendencies whenever any dev exhibits them.
Our community should expect and demand an accessible, user-friendly interface for all user-configurable parameters - to maximize decentralization and autonomy
  • In "command-line" versions of the client program, these kind of parameters should be:
    • in a separate config file - using some ultra-simple, standard format such as YAML or JSON
    • also configurable via options (eg, --seed-server) upon invocation on the command-line
  • In GUI versions version of the client program (using some popular cross-platform standard such as Qt, HTML, etc.) these kind of parameters should be exposed as user-configurable options.
Yes, these user-configurable values for things like "seed servers" (or "max blocksize") could come pre-configured to "sensible defaults - so that the software will work "out of the box" (immediately upon downloading and installing) - with no initial configuration required by the user.
Yes: Even the blocksize has always been user-configurable - but most users don't know this, because most devs have been hiding this fact from us.
Three recent posts by u/ForkiusMaximus explained how Adjustable-Blocksize-Cap (ABC) Bitcoin clients shatter this illusion:
Adjustable-blocksize-cap (ABC) clients give miners exactly zero additional power. BU, Classic, and other ABC clients are really just an argument in code form, shattering the illusion that devs are part of the governance structure.
https://np.reddit.com/btc/comments/614su9/adjustableblocksizecap_abc_clients_give_miners/
Adjustable blocksize cap (ABC) is dangerous? The blocksize cap has always been user-adjustable. Core just has a really shitty inferface for it.
https://np.reddit.com/btc/comments/617gf9/adjustable_blocksize_cap_abc_is_dangerous_the/
Clearing up Some Widespread Confusions about BU
https://np.reddit.com/btc/comments/602vsy/clearing_up_some_widespread_confusions_about_bu/
Note about Bitcoin ABC vs Bitcoin Unlimited:
There is a specific new Bitcoin client called Bitcoin ABC, which functions similar to Bitcoin Unlimited - with the important difference that Bitcoin ABC is _guaranteed to hard-fork to bigger blocks on August 1_.
(Please correct me if I'm wrong about this. Documentation for the behavior of these various hard-forks is currently still rather disorganized :-)
All serious devs should be expected to provide code which does not require a "recompile" to change these "initial, sensible" default parameters.
I mean - come on. Even back in the 80s people had "*.INI" files on DOS and Windows.
Nearly all users understand and know how to set user-configurable values - for decades.
How many people are familiar with using a program which has a "Preferences" screen? (Sometimes you may have to close and re-open the program in order for your new preferences to take effect.) This is really basic, basic functionality which nearly all software provides via a GUI (and or config file and/or command-line options).
And nearly all devs have been offering this kind of functionality - in either command-line parameters, config files, and/or graphic user interfaces (GUIs).
Except most Bitcoin devs.
The state of "software development" for Bitcoin clients seems really messed up in certain ways like this.
As users, we need to start demanding simple, standard features in our client software - such as accessible, user-friendly configurability of parameter values - without the massive inconvenience of a recompile.
What is a "Bitcoin client"?
After nearly 9 years in operation, our community should by now have a basic concept or definition of what a "Bitcoin client" is / does - probably something along the lines of:

A Bitcoin client is a device for reading (and optionally appending to) the immutable Bitcoin Blockchain.

Based on that general concept / definition, a program which does all of the above and also gratuitously "hard-codes" a bunch of domain names for "seed servers" is not quite the same thing as a "a Bitcoin client".
Such an "overspecialized" client actually provides merely a subset of the full functionality of a true "Bitcoin client", eg:
  • An "overspecialized" client only enables connecting to certain "seed servers" upon startup (in accordance with the "gratuitous opinion" of the dev who (mis)translated the community's conceptual specifications to C++ code)
  • An "overspecialized" client only enables mining blocks less that a certain size (in accordance with the "gratuitous opinion" of the dev who (mis)translated the community's conceptual specifications to C++ code)
One of the main problems with nearly all Bitcoin clients developed so far is that they are gratuitously opinionated: they "gratuitously" hard-code particular values (eg, "max blocksize", "seed servers") which are not part of the whitepaper, and not part of the generally accepted definition of a "Bitcoin client".
This failure on the part of devs to provide Bitcoin clients which behave in accordance with the community's specification of "Bitcoin clients" is seriously damaging Bitcoin - and needs to be fixed as soon as possible.
Right now is a good opportunity - with so many new Bitcoin clients popping up, as the community prepares to fork.
All devs working on various Bitcoin client software offerings need to wake up and realize that there is about to be a major battle to find out which Bitcoin client software offering performs "best" (in the user-interface sense - and ultimately in the economic sense) at:

reading (and optionally appending to) the immutable Bitcoin Blockchain

The Bitcoin client software offerings which can optimally (and most simply and securely :-) "satisfy" the above specification (and not merely some gratuitously overspecialized "subset" of it) will have the most success.
submitted by ydtm to btc [link] [comments]

Question, I backed up my wallet about 6 months ago, since then I've done about 10 transactions and transferred the coins from one address to another within the same wallet. Will I still have my balance when I restore the wallet?

SEE UPDATE AT BOTTOM
Thank you, I think I may have messed up.
I believe I created the address and transferred my balance to that address. Then I lost my wallet. Did the address that has my balance in my wallet, even though I created it after backing it up?
After reading this, i'm not sure how this works:
The wallet contains a pool of queued keys. By default there are 100 keys in the key pool. The size of the pool is configurable using the "-keypool" command line argument. When you need an address for whatever reason (send, “new address”, generation, etc.), the key is not actually generated freshly, but taken from this pool. A brand new address is generated to fill the pool back to 100. So when a backup is first created, it has all of your old keys plus 100 unused keys. After sending a transaction, it has 99 unused keys. After a total of 100 new-key actions, you will start using keys that are not in your backup. Since the backup does not have the private keys necessary for authorizing spends of these coins, restoring from the old backup will cause you to lose Bitcoins. Creating a new address generates a new pair of public and private keys, which are added to your wallet. Each keypair is mostly random numbers, so they cannot be known prior to generation. If you backup your wallet and then create more than 100 new addresses, the keypair associated with the newest addresses will not be in the old wallet because the new keypairs are only known after creating them. Any coins received at these addresses will be lost if you restore from the backup.
UPDATE
Just got it all thank you... needed to download all the block chains to get my balance and it took a long time.
I was actually fairly confident I would get my coins back before the balance came through as I could trace which account was holding the coins using blockchain.info and doing the following:
I had the address of my first address in Bitcoin-QT, it was in my address book when I loaded the backed up wallet. I located the address on blockchain.info then followed transactions until I found an account that had a balance I recognized. Then I was able to use the debug function part of bitcoin-qt to see that I owned the public and private key in my backed up wallet. I used the following method:
-validateaddress 1BZZnJG6q95aJqPZweSCGnno2rxcXyfaLo
submitted by onowahoo to Bitcoin [link] [comments]

Supporting the network at night

I have previously suggested that one way to get more people to run full nodes would be to make it so that the client only forwards transactions at night. This could be a good option for people who would like to run a full node, but who find that it negatively impacts their internet or PC performance.
Some people responded suggesting I write a patch. I don't have the skill set to do that, however, I did research how to schedule tasks from the Windows command line, and wanted to share.
To run a (windows) full node all the time, but only upload at night, you can type the following commands:
schtasks /Create /SC DAILY /TN bitcoin_night /TR "\"C:\Program Files\Bitcoin\bitcoin-qt.exe\"" /ST 23:00 schtasks /Create /SC DAILY /TN bitcoin_night_kill /TR "taskkill /pid bitcoin-qt.exe" /ST 07:00 schtasks /Create /SC DAILY /TN bitcoin_day /TR "\"C:\Program Files\Bitcoin\bitcoin-qt.exe\" -maxconnections=8" /ST 07:05 schtasks /Create /SC DAILY /TN bitcoin_day_kill /TR "taskkill /pid bitcoin-qt.exe" /ST 22:55 
This will restrict the node to 8 peers during the day, allowing you to receive new blocks while consuming minimum resources. At night, the node will connect to up to 125 peers.
You could use this to set up more complicated schedules -- for example run without restricting connections when you are asleep and when you are at work.
You can either type these commands in the windows command line, or you can drop them into a batch file and run it. (Create a text file and save it with the .bat extension to create a runnable batch file. Careful with using Notepad, which will sneak in a hidden .txt extension unless you set the save file type to all files instead of text files.)
Schtasks does not support waking the computer up from sleep. If you want your computer to wake up, you will need to use the Control Panel to create the scheduled tasks. :-( It's not too hard, but putting the above lines in a batch file is easier.
If you want your computer to fall asleep after it finishes node-work, you can use something like this:
schtasks /Create /SC DAILY /TN bitcoin_day_sleep /TR "rundll32.exe powrprof.dll,SetSuspendState 0,1,0" /ST 07:00 /F 
Here are instructions on how to make it wake back up
I suggest you run the command
cmd.exe /c "exit" 
...to wake the computer, and then have bitcoin start up a few minutes later. It did not work for me when I tried to set up a task to start bitcoin and wake the computer at the same time.
Obviously the more time your node can spend relaying blocks and transactions the better, but this option might get some people who are on the fence to start running a reachable node.
Remember to open port 8333! If you are using a typical setup, this could mean that you need to:
  1. Configure your router to assign your computer a static ip address
  2. Configure your router to forward port 8333 to that ip address
  3. Go to windows firewall and open port 8333
More help
I think the "on at night" feature would be helpful to have standard in Bitcoin Core to encourage altruistic nodes.
Other improvements I would like to see to help boost the number of running full nodes:
  1. Data cap of some kind. For example, there could be the option to set a daily data cap -- after which the client will receive blocks but will not transmit them.
  2. More wallets options that use Core. For example, it would be nice if you could get a version of Electrum that communicates with your running full node. I have nothing but respect for the Core devs, who are advancing the state of the art, but there is no mystery why people are using Electrum instead of Bitcoin Core for their wallet.
  3. A wallet on your phone that could pair with your home full node. That way your phone would not have to leak any information to listening full nodes, and also you would have full validation whenever anyone sent you coins.
  4. A clearly visible message that notifies the user that port 8333 is closed and tells them that they are not contributing to the network. Instructions on how to open port 8333.
For many of us, running a full node would have negligible cost. Even if we may not need them, having thousands of independent, reachable nodes inspires confidence in the Bitcoin network and rebuts the specious but often heard argument that full nodes are declining and therefore Bitcoin is doomed. If you are interested in the success of Bitcoin, please show your support by running a full node. If you prefer not to run it all the time, consider running it just at night.
submitted by moral_agent to Bitcoin [link] [comments]

Bitcoin Core - bitcoind and bitcoin-qt using same configuration and save folder [X-post /r/bitcoin]

Original post
Using Debian sid, bitcoind, bitcoin-qt 0.12.1-0.1.
I setup bitcoin-qt by making a symbolic link to another drive (using ln -s) and got the blockchain fully up to date.
According to en.bitcoin.it bitcoind and bitcoin-qt 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
However, when I closed bitcoin-qt (verified with ps), I tried to launch bitcoind and get the following error:
EXCEPTION: N5boost10filesystem16filesystem_errorE boost::filesystem::create_directory: File exists: "/home/awxdvrgyn/.bitcoin" bitcoin in AppInit() bitcoind: chainparams.cpp:302: const CChainParams& Params(): Assertion `pCurrentParams' failed. Aborted 
I also tried using the following launch arguments which gave the same error:
bitcoind -data-dir=/mnt/hdd2/Bitcoin/ -wallet=/mnt/hdd2/Bitcoin/wallet.dat -loadblock=/mnt/hdd2/Bitcoin/blocks/blk0* -conf=/mnt/hdd2/Bitcoin/bitcoin.conf 
It appears bitcoind is not respecting the symbolic link, is there any way to force it, or manually configure all it's files? Or is there a way to make a more universal symbolic link?
I tried temporarily removing the symlink and launching bitcoind with the same data directory and it restarted obtaining the blockchain and saving it to ~/.bitcoin as well as creating a new wallet.dat
submitted by awxdvrgyn to btc [link] [comments]

Bitcoin Core - bitcoind and bitcoin-qt using same configuration and save folder

Using Debian sid, bitcoind, bitcoin-qt 0.12.1-0.1.
I setup bitcoin-qt by making a symbolic link to another drive (using ln -s) and got the blockchain fully up to date.
According to en.bitcoin.it bitcoind and bitcoin-qt 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
However, when I closed bitcoin-qt (verified with ps), I tried to launch bitcoind and get the following error:
EXCEPTION: N5boost10filesystem16filesystem_errorE boost::filesystem::create_directory: File exists: "/home/awxdvrgyn/.bitcoin" bitcoin in AppInit() bitcoind: chainparams.cpp:302: const CChainParams& Params(): Assertion `pCurrentParams' failed. Aborted 
I also tried using the following launch arguments which gave the same error:
bitcoind -data-dir=/mnt/hdd2/Bitcoin/ -wallet=/mnt/hdd2/Bitcoin/wallet.dat -loadblock=/mnt/hdd2/Bitcoin/blocks/blk0* -conf=/mnt/hdd2/Bitcoin/bitcoin.conf 
It appears bitcoind is not respecting the symbolic link, is there any way to force it, or manually configure all it's files? Or is there a way to make a more universal symbolic link?
E: I just tried temporarily removing the symlink and launching bitcoind with the same data directory and it restarted obtaining the blockchain and saving it to ~/.bitcoin as well as creating a new wallet.dat
submitted by awxdvrgyn to Bitcoin [link] [comments]

CLAMS: Claiming Your CLAMS On Windows!

PLEASE NOTE THIS POST IS A WORK IN PROGRESS. SEE THE ANNOUNCEMENT THREAD FOR MORE DETAILED INSTRUCTIONS
CLAMS: Claiming Your CLAMS On Windows!
Claiming your CLAMS takes an additional step or two that you may be unfamiliar with in your previous crypto-travels. The process isn't all that difficult, however. If you have any problems following the steps below: please feel free to comment or create a new post asking for assistance!
Download CLAMS
You can find the CLAMS Wallet HERE. Simply download the client and then run it once; it will automatically create the folders required from the following steps.
Back-Up Your Wallets
Bitcoin, Litecoin, and Dogecoin (like most crypto-currencies) keep the wallet file in the AppData/Roaming directory. This can normally be found at: C:/Users/USERNAME/.Appdata/Roaming/COINNAME/. To back-up your BTC, LTC, DOGE wallet files: stop the relevant client and copy the wallet.dat file to a secure place.
Copy Your Wallet
Now that your BTC, LTC or DOGE wallet has been securely backed-up, you can copy it into your CLAMS directory. Your CLAMS directory can normally be found at: C:/Users/USERNAME/.Appdata/Roaming/Clams/. If you have any CLAMS in your wallet, please be sure to back-up your CLAMS wallet file as well. Then, simply copy your BTC, LTC, or DOGE wallet.dat file into the CLAMS directory.
Start CLAMS with --salvagewallet
You may start the wallet with the argument --salvagewallet in two primary ways: * Create a shortcut for clams-qt.exe. Right-Click -> Properties. Add --salvagewallet to "Target:" ("C:\clams-qt.exe" --salvagewallet). * Open the Command-Line (Start -> "cmd.exe"). Type: "C:/SomeDirectory/clams-qt.exe --salvagewallet".
CLAMS Announcement Post
submitted by clams_are_people_too to CLAMClient [link] [comments]

Bitcoin Core 0.10.0 released | Wladimir | Feb 16 2015

Wladimir on Feb 16 2015:
Bitcoin Core version 0.10.0 is now available from:
https://bitcoin.org/bin/0.10.0/
This is a new major version release, bringing both new features and
bug fixes.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
The whole distribution is also available as torrent:
https://bitcoin.org/bin/0.10.0/bitcoin-0.10.0.torrent
magnet:?xt=urn:btih:170c61fe09dafecfbb97cb4dccd32173383f4e68&dn;=0.10.0&tr;=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr;=udp%3A%2F%2Fopen.demonii.com%3A1337&ws;=https%3A%2F%2Fbitcoin.org%2Fbin%2F
Upgrading and downgrading

How to Upgrade
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 (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrading warning
Because release 0.10.0 makes use of headers-first synchronization and parallel
block download (see further), the block files and databases are not
backwards-compatible with older versions of Bitcoin Core or other software:
  • Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
  • The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility.
Notable changes

Faster synchronization
Bitcoin Core now uses 'headers-first synchronization'. This means that we first
ask peers for block headers (a total of 27 megabytes, as of December 2014) and
validate those. In a second stage, when the headers have been discovered, we
download the blocks. However, as we already know about the whole chain in
advance, the blocks can be downloaded in parallel from all available peers.
In practice, this means a much faster and more robust synchronization. On
recent hardware with a decent network link, it can be as little as 3 hours
for an initial full synchronization. You may notice a slower progress in the
very first few minutes, when headers are still being fetched and verified, but
it should gain speed afterwards.
A few RPCs were added/updated as a result of this:
  • getblockchaininfo now returns the number of validated headers in addition to
the number of validated blocks.
  • getpeerinfo lists both the number of blocks and headers we know we have in
common with each peer. While synchronizing, the heights of the blocks that we
have requested from peers (but haven't received yet) are also listed as
'inflight'.
  • A new RPC getchaintips lists all known branches of the block chain,
including those we only have headers for.
Transaction fee changes
This release automatically estimates how high a transaction fee (or how
high a priority) transactions require to be confirmed quickly. The default
settings will create transactions that confirm quickly; see the new
'txconfirmtarget' setting to control the tradeoff between fees and
confirmation times. Fees are added by default unless the 'sendfreetransactions'
setting is enabled.
Prior releases used hard-coded fees (and priorities), and would
sometimes create transactions that took a very long time to confirm.
Statistics used to estimate fees and priorities are saved in the
data directory in the fee_estimates.dat file just before
program shutdown, and are read in at startup.
New command line options for transaction fee changes:
  • -txconfirmtarget=n : create transactions that have enough fees (or priority)
so they are likely to begin confirmation within n blocks (default: 1). This setting
is over-ridden by the -paytxfee option.
  • -sendfreetransactions : Send transactions as zero-fee transactions if possible
(default: 0)
New RPC commands for fee estimation:
  • estimatefee nblocks : Returns approximate fee-per-1,000-bytes needed for
a transaction to begin confirmation within nblocks. Returns -1 if not enough
transactions have been observed to compute a good estimate.
  • estimatepriority nblocks : Returns approximate priority needed for
a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not
enough free transactions have been observed to compute a good
estimate.
RPC access control changes
Subnet matching for the purpose of access control is now done
by matching the binary network address, instead of with string wildcard matching.
For the user this means that -rpcallowip takes a subnet specification, which can be
  • a single IP address (e.g. 1.2.3.4 or fe80::0012:3456:789a:bcde)
  • a network/CIDR (e.g. 1.2.3.0/24 or fe80::0000/64)
  • a network/netmask (e.g. 1.2.3.4/255.255.255.0 or fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)
An arbitrary number of -rpcallow arguments can be given. An incoming connection will be accepted if its origin address
matches one of them.
For example:
| 0.9.x and before | 0.10.x |
|--------------------------------------------|---------------------------------------|
| -rpcallowip=192.168.1.1 | -rpcallowip=192.168.1.1 (unchanged) |
| -rpcallowip=192.168.1.* | -rpcallowip=192.168.1.0/24 |
| -rpcallowip=192.168.* | -rpcallowip=192.168.0.0/16 |
| -rpcallowip=* (dangerous!) | -rpcallowip=::/0 (still dangerous!) |
Using wildcards will result in the rule being rejected with the following error in debug.log:
 Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). 
REST interface
A new HTTP API is exposed when running with the -rest flag, which allows
unauthenticated access to public node data.
It is served on the same port as RPC, but does not need a password, and uses
plain HTTP instead of JSON-RPC.
Assuming a local RPC server running on port 8332, it is possible to request:
In every case, EXT can be bin (for raw binary data), hex (for hex-encoded
binary) or json.
For more details, see the doc/REST-interface.md document in the repository.
RPC Server "Warm-Up" Mode
The RPC server is started earlier now, before most of the expensive
intialisations like loading the block index. It is available now almost
immediately after starting the process. However, until all initialisations
are done, it always returns an immediate error with code -28 to all calls.
This new behaviour can be useful for clients to know that a server is already
started and will be available soon (for instance, so that they do not
have to start it themselves).
Improved signing security
For 0.10 the security of signing against unusual attacks has been
improved by making the signatures constant time and deterministic.
This change is a result of switching signing to use libsecp256k1
instead of OpenSSL. Libsecp256k1 is a cryptographic library
optimized for the curve Bitcoin uses which was created by Bitcoin
Core developer Pieter Wuille.
There exist attacks[1] against most ECC implementations where an
attacker on shared virtual machine hardware could extract a private
key if they could cause a target to sign using the same key hundreds
of times. While using shared hosts and reusing keys are inadvisable
for other reasons, it's a better practice to avoid the exposure.
OpenSSL has code in their source repository for derandomization
and reduction in timing leaks that we've eagerly wanted to use for a
long time, but this functionality has still not made its
way into a released version of OpenSSL. Libsecp256k1 achieves
significantly stronger protection: As far as we're aware this is
the only deployed implementation of constant time signing for
the curve Bitcoin uses and we have reason to believe that
libsecp256k1 is better tested and more thoroughly reviewed
than the implementation in OpenSSL.
[1] https://eprint.iacr.org/2014/161.pdf
Watch-only wallet support
The wallet can now track transactions to and from wallets for which you know
all addresses (or scripts), even without the private keys.
This can be used to track payments without needing the private keys online on a
possibly vulnerable system. In addition, it can help for (manual) construction
of multisig transactions where you are only one of the signers.
One new RPC, importaddress, is added which functions similarly to
importprivkey, but instead takes an address or script (in hexadecimal) as
argument. After using it, outputs credited to this address or script are
considered to be received, and transactions consuming these outputs will be
considered to be sent.
The following RPCs have optional support for watch-only:
getbalance, listreceivedbyaddress, listreceivedbyaccount,
listtransactions, listaccounts, listsinceblock, gettransaction. See the
RPC documentation for those methods for more information.
Compared to using getrawtransaction, this mechanism does not require
-txindex, scales better, integrates better with the wallet, and is compatible
with future block chain pruning functionality. It does mean that all relevant
addresses need to added to the wallet before the payment, though.
Consensus library
Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library.
The purpose of this library is to make the verification functionality that is
critical to Bitcoin's consensus available to other applications, e.g. to language
bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or
alternative node implementations.
This library is called libbitcoinconsensus.so (or, .dll for Windows).
Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h).
In its initial version the API includes two functions:
  • bitcoinconsensus_verify_script verifies a script. It returns whether the indicated input of the provided serialized transaction
correctly spends the passed scriptPubKey under additional constraints indicated by flags
  • bitcoinconsensus_version returns the API version, currently at an experimental 0
The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface
for existing methods should remain stable.
Standard script rules relaxed for P2SH addresses
The IsStandard() rules have been almost completely removed for P2SH
redemption scripts, allowing applications to make use of any valid
script type, such as "n-of-m OR y", hash-locked oracle addresses, etc.
While the Bitcoin protocol has always supported these types of script,
actually using them on mainnet has been previously inconvenient as
standard Bitcoin Core nodes wouldn't relay them to miners, nor would
most miners include them in blocks they mined.
bitcoin-tx
It has been observed that many of the RPC functions offered by bitcoind are
"pure functions", and operate independently of the bitcoind wallet. This
included many of the RPC "raw transaction" API functions, such as
createrawtransaction.
bitcoin-tx is a newly introduced command line utility designed to enable easy
manipulation of bitcoin transactions. A summary of its operation may be
obtained via "bitcoin-tx --help" Transactions may be created or signed in a
manner similar to the RPC raw tx API. Transactions may be updated, deleting
inputs or outputs, or appending new inputs and outputs. Custom scripts may be
easily composed using a simple text notation, borrowed from the bitcoin test
suite.
This tool may be used for experimenting with new transaction types, signing
multi-party transactions, and many other uses. Long term, the goal is to
deprecate and remove "pure function" RPC API calls, as those do not require a
server round-trip to execute.
Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making
key and script operations easily accessible via command line.
Mining and relay policy enhancements
Bitcoin Core's block templates are now for version 3 blocks only, and any mining
software relying on its getblocktemplate must be updated in parallel to use
libblkmaker either version 0.4.2 or any version from 0.5.1 onward.
If you are solo mining, this will affect you the moment you upgrade Bitcoin
Core, which must be done prior to BIP66 achieving its 951/1001 status.
If you are mining with the stratum mining protocol: this does not affect you.
If you are mining with the getblocktemplate protocol to a pool: this will affect
you at the pool operator's discretion, which must be no later than BIP66
achieving its 951/1001 status.
The prioritisetransaction RPC method has been added to enable miners to
manipulate the priority of transactions on an individual basis.
Bitcoin Core now supports BIP 22 long polling, so mining software can be
notified immediately of new templates rather than having to poll periodically.
Support for BIP 23 block proposals is now available in Bitcoin Core's
getblocktemplate method. This enables miners to check the basic validity of
their next block before expending work on it, reducing risks of accidental
hardforks or mining invalid blocks.
Two new options to control mining policy:
  • -datacarrier=0/1 : Relay and mine "data carrier" (OP_RETURN) transactions
if this is 1.
  • -datacarriersize=n : Maximum size, in bytes, we consider acceptable for
"data carrier" outputs.
The relay policy has changed to more properly implement the desired behavior of not
relaying free (or very low fee) transactions unless they have a priority above the
AllowFreeThreshold(), in which case they are relayed subject to the rate limiter.
BIP 66: strict DER encoding for signatures
Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new
consensus rule, which prohibits non-DER signatures. Such transactions have been
non-standard since Bitcoin v0.8.0 (released in February 2013), but were
technically still permitted inside blocks.
This change breaks the dependency on OpenSSL's signature parsing, and is
required if implementations would want to remove all of OpenSSL from the
consensus code.
The same miner-voting mechanism as in BIP 34 is used: when 751 out of a
sequence of 1001 blocks have version number 3 or higher, the new consensus
rule becomes active for those blocks. When 951 out of a sequence of 1001
blocks have version number 3 or higher, it becomes mandatory for all blocks.
Backward compatibility with current mining software is NOT provided, thus miners
should read the first paragraph of "Mining and relay policy enhancements" above.
0.10.0 Change log

Detailed release notes follow. This overview includes changes that affect external
behavior, not code moves, refactors or string updates.
RPC:
  • f923c07 Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost
  • b641c9c Fix addnode "onetry": Connect with OpenNetworkConnection
  • 171ca77 estimatefee / estimatepriority RPC methods
  • b750cf1 Remove cli functionality from bitcoind
  • f6984e8 Add "chain" to getmininginfo, improve help in getblockchaininfo
  • 99ddc6c Add nLocalServices info to RPC getinfo
  • cf0c47b Remove getwork() RPC call
  • 2a72d45 prioritisetransaction
  • e44fea5 Add an option -datacarrier to allow users to disable relaying/mining data carrier transactions
  • 2ec5a3d Prevent easy RPC memory exhaustion attack
  • d4640d7 Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation
  • 83f3543 Added argument to listaccounts to include watchonly addresses
  • 952877e Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address
  • d7d5d23 Added argument to listtransactions and listsinceblock to include watchonly addresses
  • f87ba3d added includeWatchonly argument to 'gettransaction' because it affects balance calculation
  • 0fa2f88 added includedWatchonly argument to listreceivedbyaddress/...account
  • 6c37f7f getrawchangeaddress: fail when keypool exhausted and wallet locked
  • ff6a7af getblocktemplate: longpolling support
  • c4a321f Add peerid to getpeerinfo to allow correlation with the logs
  • 1b4568c Add vout to ListTransactions output
  • b33bd7a Implement "getchaintips" RPC command to monitor blockchain forks
  • 733177e Remove size limit in RPC client, keep it in server
  • 6b5b7cb Categorize rpc help overview
  • 6f2c26a Closely track mempool byte total. Add "getmempoolinfo" RPC
  • aa82795 Add detailed network info to getnetworkinfo RPC
  • 01094bd Don't reveal whether password is <20 or >20 characters in RPC
  • 57153d4 rpc: Compute number of confirmations of a block from block height
  • ff36cbe getnetworkinfo: export local node's client sub-version string
  • d14d7de SanitizeString: allow '(' and ')'
  • 31d6390 Fixed setaccount accepting foreign address
  • b5ec5fe update getnetworkinfo help with subversion
  • ad6e601 RPC additions after headers-first
  • 33dfbf5 rpc: Fix leveldb iterator leak, and flush before gettxoutsetinfo
  • 2aa6329 Enable customising node policy for datacarrier data size with a -datacarriersize option
  • f877aaa submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock
  • e69a587 submitblock: Support for returning specific rejection reasons
  • af82884 Add "warmup mode" for RPC server
  • e2655e0 Add unauthenticated HTTP REST interface to public blockchain data
  • 683dc40 Disable SSLv3 (in favor of TLS) for the RPC client and server
  • 44b4c0d signrawtransaction: validate private key
  • 9765a50 Implement BIP 23 Block Proposal
  • f9de17e Add warning comment to getinfo
Command-line options:
  • ee21912 Use netmasks instead of wildcards for IP address matching
  • deb3572 Add -rpcbind option to allow binding RPC port on a specific interface
  • 96b733e Add -version option to get just the version
  • 1569353 Add -stopafterblockimport option
  • 77cbd46 Let -zapwallettxes recover transaction meta data
  • 1c750db remove -tor compatibility code (only allow -onion)
  • 4aaa017 rework help messages for fee-related options
  • 4278b1d Clarify error message when invalid -rpcallowip
  • 6b407e4 -datadir is now allowed in config files
  • bdd5b58 Add option -sysperms to disable 077 umask (create new files with system default umask)
  • cbe39a3 Add "bitcoin-tx" command line utility and supporting modules
  • dbca89b Trigger -alertnotify if network is upgrading without you
  • ad96e7c Make -reindex cope with out-of-order blocks
  • 16d5194 Skip reindexed blocks individually
  • ec01243 --tracerpc option for regression tests
  • f654f00 Change -genproclimit default to 1
  • 3c77714 Make -proxy set all network types, avoiding a connect leak
  • 57be955 Remove -printblock, -printblocktree, and -printblockindex
  • ad3d208 remove -maxorphanblocks config parameter since it is no longer functional
Block and transaction handling:
  • 7a0e84d ProcessGetData(): abort if a block file is missing from disk
  • 8c93bf4 LoadBlockIndexDB(): Require block db reindex if any blk*.dat files are missing
  • 77339e5 Get rid of the static chainMostWork (optimization)
  • 4e0eed8 Allow ActivateBestChain to release its lock on cs_main
  • 18e7216 Push cs_mains down in ProcessBlock
  • fa126ef Avoid undefined behavior using CFlatData in CScript serialization
  • 7f3b4e9 Relax IsStandard rules for pay-to-script-hash transactions
  • c9a0918 Add a skiplist to the CBlockIndex structure
  • bc42503 Use unordered_map for CCoinsViewCache with salted hash (optimization)
  • d4d3fbd Do not flush the cache after every block outside of IBD (optimization)
  • ad08d0b Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache
  • 5734d4d Only remove actualy failed blocks from setBlockIndexValid
  • d70bc52 Rework block processing benchmark code
  • 714a3e6 Only keep setBlockIndexValid entries that are possible improvements
  • ea100c7 Reduce maximum coinscache size during verification (reduce memory usage)
  • 4fad8e6 Reject transactions with excessive numbers of sigops
  • b0875eb Allow BatchWrite to destroy its input, reducing copying (optimization)
  • 92bb6f2 Bypass reloading blocks from disk (optimization)
  • 2e28031 Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage)
  • ab15b2e Avoid copying undo data (optimization)
  • 341735e Headers-first synchronization
  • afc32c5 Fix rebuild-chainstate feature and improve its performance
  • e11b2ce Fix large reorgs
  • ed6d1a2 Keep information about all block files in memory
  • a48f2d6 Abstract context-dependent block checking from acceptance
  • 7e615f5 Fixed mempool sync after sending a transaction
  • 51ce901 Improve chainstate/blockindex disk writing policy
  • a206950 Introduce separate flushing modes
  • 9ec75c5 Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true
  • 868d041 Remove coinbase-dependant transactions during reorg
  • 723d12c Remove txn which are invalidated by coinbase maturity during reorg
  • 0cb8763 Check against MANDATORY flags prior to accepting to mempool
  • 8446262 Reject headers that build on an invalid parent
  • 008138c Bugfix: only track UTXO modification after lookup
P2P protocol and network code:
  • f80cffa Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails
  • c30329a Add testnet DNS seed of Alex Kotenko
  • 45a4baf Add testnet DNS seed of Andreas Schildbach
  • f1920e8 Ping automatically every 2 minutes (unconditionally)
  • 806fd19 Allocate receive buffers in on the fly
  • 6ecf3ed Display unknown commands received
  • aa81564 Track peers' available blocks
  • caf6150 Use async name resolving to improve net thread responsiveness
  • 9f4da19 Use pong receive time rather than processing time
  • 0127a9b remove SOCKS4 support from core and GUI, use SOCKS5
  • 40f5cb8 Send rejects and apply DoS scoring for errors in direct block validation
  • dc942e6 Introduce whitelisted peers
  • c994d2e prevent SOCKET leak in BindListenPort()
  • a60120e Add built-in seeds for .onion
  • 60dc8e4 Allow -onlynet=onion to be used
  • 3a56de7 addrman: Do not propagate obviously poor addresses onto the network
  • 6050ab6 netbase: Make SOCKS5 negotiation interruptible
  • 604ee2a Remove tx from AlreadyAskedFor list once we receive it, not when we process it
  • efad808 Avoid reject message feedback loops
  • 71697f9 Separate protocol versioning from clientversion
  • 20a5f61 Don't relay alerts to peers before version negotiation
  • b4ee0bd Introduce preferred download peers
  • 845c86d Do not use third party services for IP detection
  • 12a49ca Limit the number of new addressses to accumulate
  • 35e408f Regard connection failures as attempt for addrman
  • a3a7317 Introduce 10 minute block download timeout
  • 3022e7d Require sufficent priority for relay of free transactions
  • 58fda4d Update seed IPs, based on bitcoin.sipa.be crawler data
  • 18021d0 Remove bitnodes.io from dnsseeds.
Validation:
  • 6fd7ef2 Also switch the (unused) verification code to low-s instead of even-s
  • 584a358 Do merkle root and txid duplicates check simultaneously
  • 217a5c9 When transaction outputs exceed inputs, show the offending amounts so as to aid debugging
  • f74fc9b Print input index when signature validation fails, to aid debugging
  • 6fd59ee script.h: set_vch() should shift a >32 bit value
  • d752ba8 Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only)
  • 698c6ab Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only)
  • ab9edbd script: create sane error return codes for script validation and remove logging
  • 219a147 script: check ScriptError values in script tests
  • 0391423 Discourage NOPs reserved for soft-fork upgrades
  • 98b135f Make STRICTENC invalid pubkeys fail the script rather than the opcode
  • 307f7d4 Report script evaluation failures in log and reject messages
  • ace39db consensus: guard against openssl's new strict DER checks
  • 12b7c44 Improve robustness of DER recoding code
  • 76ce5c8 fail immediately on an empty signature
Build system:
  • f25e3ad Fix build in OS X 10.9
  • 65e8ba4 build: Switch to non-recursive make
  • 460b32d build: fix broken boost chrono check on some platforms
  • 9ce0774 build: Fix windows configure when using --with-qt-libdir
  • ea96475 build: Add mention of --disable-wallet to bdb48 error messages
  • 1dec09b depends: add shared dependency builder
  • c101c76 build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix
  • e432a5f build: add option for reducing exports (v2)
  • 6134b43 Fixing condition 'sabotaging' MSVC build
  • af0bd5e osx: fix signing to make Gatekeeper happy (again)
  • a7d1f03 build: fix dynamic boost check when --with-boost= is used
  • d5fd094 build: fix qt test build when libprotobuf is in a non-standard path
  • 2cf5f16 Add libbitcoinconsensus library
  • 914868a build: add a deterministic dmg signer
  • 2d375fe depends: bump openssl to 1.0.1k
  • b7a4ecc Build: Only check for boost when building code that requires it
Wallet:
  • b33d1f5 Use fee/priority estimates in wallet CreateTransaction
  • 4b7b1bb Sanity checks for estimates
  • c898846 Add support for watch-only addresses
  • d5087d1 Use script matching rather than destination matching for watch-only
  • d88af56 Fee fixes
  • a35b55b Dont run full check every time we decrypt wallet
  • 3a7c348 Fix make_change to not create half-satoshis
  • f606bb9 fix a possible memory leak in CWalletDB::Recover
  • 870da77 fix possible memory leaks in CWallet::EncryptWallet
  • ccca27a Watch-only fixes
  • 9b1627d [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis
  • a53fd41 Deterministic signing
  • 15ad0b5 Apply AreSane() checks to the fees from the network
  • 11855c1 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option
GUI:
  • c21c74b osx: Fix missing dock menu with qt5
  • b90711c Fix Transaction details shows wrong To:
  • 516053c Make links in 'About Bitcoin Core' clickable
  • bdc83e8 Ensure payment request network matches client network
  • 65f78a1 Add GUI view of peer information
  • 06a91d9 VerifyDB progress reporting
  • fe6bff2 Add BerkeleyDB version info to RPCConsole
  • b917555 PeerTableModel: Fix potential deadlock. #4296
  • dff0e3b Improve rpc console history behavior
  • 95a9383 Remove CENT-fee-rule from coin control completely
  • 56b07d2 Allow setting listen via GUI
  • d95ba75 Log messages with type>QtDebugMsg as non-debug
  • 8969828 New status bar Unit Display Control and related changes
  • 674c070 seed OpenSSL PNRG with Windows event data
  • 509f926 Payment request parsing on startup now only changes network if a valid network name is specified
  • acd432b Prevent balloon-spam after rescan
  • 7007402 Implement SI-style (thin space) thoudands separator
  • 91cce17 Use fixed-point arithmetic in amount spinbox
  • bdba2dd Remove an obscure option no-one cares about
  • bd0aa10 Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution
  • 94e1b9e Re-work overviewpage UI
  • 8bfdc9a Better looking trayicon
  • b197bf3 disable tray interactions when client model set to 0
  • 1c5f0af Add column Watch-only to transactions list
  • 21f139b Fix tablet crash. closes #4854
  • e84843c Broken addresses on command line no longer trigger testnet
  • a49f11d Change splash screen to normal window
  • 1f9be98 Disable App Nap on OSX 10.9+
  • 27c3e91 Add proxy to options overridden if necessary
  • 4bd1185 Allow "emergency" shutdown during startup
  • d52f072 Don't show wallet options in the preferences menu when running with -disablewallet
  • 6093aa1 Qt: QProgressBar CPU-Issue workaround
  • 0ed9675 [Wallet] Add global boolean whether to send free transactions (default=true)
  • ed3e5e4 [Wallet] Add global boolean whether to pay at least the custom fee (default=true)
  • e7876b2 [Wallet] Prevent user from paying a non-sense fee
  • c1c9d5b Add Smartfee to GUI
  • e0a25c5 Make askpassphrase dialog behave more sanely
  • 94b362d On close of splashscreen interrupt verifyDB
  • b790d13 English translation update
  • 8543b0d Correct tooltip on address book page
Tests:
  • b41e594 Fix script test handling of empty scripts
  • d3a33fc Test CHECKMULTISIG with m == 0 and n == 0
  • 29c1749 Let tx (in)valid tests use any SCRIPT_VERIFY flag
  • 6380180 Add rejection of non-null CHECKMULTISIG dummy values
  • 21bf3d2 Add tests for BoostAsioToCNetAddr
  • b5ad5e7 Add Python test for -rpcbind and -rpcallowip
  • 9ec0306 Add CODESEPARATOFindAndDelete() tests
  • 75ebced Added many rpc wallet tests
  • 0193fb8 Allow multiple regression tests to run at once
  • 92a6220 Hook up sanity checks
  • 3820e01 Extend and move all crypto tests to crypto_tests.cpp
  • 3f9a019 added list/get received by address/ account tests
  • a90689f Remove timing-based signature cache unit test
  • 236982c Add skiplist unit tests
  • f4b00be Add CChain::GetLocator() unit test
  • b45a6e8 Add test for getblocktemplate longpolling
  • cdf305e Set -discover=0 in regtest framework
  • ed02282 additional test for OP_SIZE in script_valid.json
  • 0072d98 script tests: BOOLAND, BOOLOR decode to integer
  • 833ff16 script tests: values that overflow to 0 are true
  • 4cac5db script tests: value with trailing 0x00 is true
  • 89101c6 script test: test case for 5-byte bools
  • d2d9dc0 script tests: add tests for CHECKMULTISIG limits
  • d789386 Add "it works" test for bitcoin-tx
  • df4d61e Add bitcoin-tx tests
  • aa41ac2 Test IsPushOnly() with invalid push
  • 6022b5d Make script_{valid,invalid}.json validation flags configurable
  • 8138cbe Add automatic script test generation, and actual checksig tests
  • ed27e53 Add coins_tests with a large randomized CCoinViewCache test
  • 9df9cf5 Make SCRIPT_VERIFY_STRICTENC compatible with BIP62
  • dcb9846 Extend getchaintips RPC test
  • 554147a Ensure MINIMALDATA invalid tests can only fail one way
  • dfeec18 Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule
  • 2b62e17 Clearly separate PUSHDATA and numeric argument MINIMALDATA tests
  • 16d78bd Add valid invert of invalid every numeric opcode tests
  • f635269 tests: enable alertnotify test for Windows
  • 7a41614 tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment
  • 5122ea7 tests: fix forknotify.py on windows
  • fa7f8cd tests: remove old pull-tester scripts
  • 7667850 tests: replace the old (unused since Travis) tests with new rpc test scripts
  • f4e0aef Do signature-s negation inside the tests
  • 1837987 Optimize -regtest setgenerate block generation
  • 2db4c8a Fix node ranges in the test framework
  • a8b2ce5 regression test only setmocktime RPC call
  • daf03e7 RPC tests: create initial chain with specific timestamps
  • 8656dbb Port/fix txnmall.sh regression test
  • ca81587 Test the exact order of CHECKMULTISIG sig/pubkey evaluation
  • 7357893 Prioritize and display -testsafemode status in UI
  • f321d6b Add key generation/verification to ECC sanity check
  • 132ea9b miner_tests: Disable checkpoints so they don't fail the subsidy-change test
  • bc6cb41 QA RPC tests: Add tests block block proposals
  • f67a9ce Use deterministically generated script tests
  • 11d7a7d [RPC] add rpc-test for http keep-alive (persistent connections)
  • 34318d7 RPC-test based on invalidateblock for mempool coinbase spends
  • 76ec867 Use actually valid transactions for script tests
  • c8589bf Add actual signature tests
  • e2677d7 Fix smartfees test for change to relay policy
  • 263b65e tests: run sanity checks in tests too
Miscellaneous:
  • 122549f Fix incorrect checkpoint data for testnet3
  • 5bd02cf Log used config file to debug.log on startup
  • 68ba85f Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments
  • e5ee8f0 Remove -beta suffix
  • 38405ac Add comment regarding experimental-use service bits
  • be873f6 Issue warning if collecting RandSeed data failed
  • 8ae973c Allocate more space if necessary in RandSeedAddPerfMon
  • 675bcd5 Correct comment for 15-of-15 p2sh script size
  • fda3fed libsecp256k1 integration
  • 2e36866 Show nodeid instead of addresses in log (for anonymity) unless otherwise requested
  • cd01a5e Enable paranoid corruption checks in LevelDB >= 1.16
  • 9365937 Add comment about never updating nTimeOffset past 199 samples
  • 403c1bf contrib: remove getwork-based pyminer (as getwork API call has been removed)
  • 0c3e101 contrib: Added systemd .service file in order to help distributions integrate bitcoind
  • 0a0878d doc: Add new DNSseed policy
  • 2887bff Update coding style and add .clang-format
  • 5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope
  • b4a72a7 contrib/linearize: split output files based on new-timestamp-year or max-file-size
  • e982b57 Use explicit fflush() instead of setvbuf()
  • 234bfbf contrib: Add init scripts and docs for Upstart and OpenRC
  • 01c2807 Add warning about the merkle-tree algorithm duplicate txid flaw
  • d6712db Also create pid file in non-daemon mode
  • 772ab0e contrib: use batched JSON-RPC in linarize-hashes (optimization)
  • 7ab4358 Update bash-completion for v0.10
  • 6e6a36c contrib: show pull # in prompt for github-merge script
  • 5b9f842 Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293)
  • 4e7c219 Catch UTXO set read errors and shutdown
  • 867c600 Catch LevelDB errors during flush
  • 06ca065 Fix CScriptID(const CScript& in) in empty script case
Credits

Thanks to everyone who contributed to this release:
  • 21E14
  • Adam Weiss
  • Aitor Pazos
  • Alexander Jeng
  • Alex Morcos
  • Alon Muroch
  • Andreas Schildbach
  • Andrew Poelstra
  • Andy Alness
  • Ashley Holman
  • Benedict Chan
  • Ben Holden-Crowther
  • Bryan Bishop
  • BtcDrak
  • Christian von Roques
  • Clinton Christian
  • Cory Fields
  • Cozz Lovan
  • daniel
  • Daniel Kraft
  • David Hill
  • Derek701
  • dexX7
  • dllud
  • Dominyk Tiller
  • Doug
  • elichai
  • elkingtowa
  • ENikS
  • Eric Shaw
  • Federico Bond
  • Francis GASCHET
  • Gavin Andresen
  • Giuseppe Mazzotta
  • Glenn Willen
  • Gregory Maxwell
  • gubatron
  • HarryWu
  • himynameismartin
  • Huang Le
  • Ian Carroll
  • imharrywu
  • Jameson Lopp
  • Janusz Lenar
  • JaSK
  • Jeff Garzik
  • JL2035
  • Johnathan Corgan
  • Jonas Schnelli
  • jtimon
  • Julian Haight
  • Kamil Domanski
  • kazcw
  • kevin
  • kiwigb
  • Kosta Zertsekel
  • LongShao007
  • Luke Dashjr
  • Mark Friedenbach
  • Mathy Vanvoorden
  • Matt Corallo
  • Matthew Bogosian
  • Micha
  • Michael Ford
  • Mike Hearn
  • mrbandrews
  • mruddy
  • ntrgn
  • Otto Allmendinger
  • paveljanik
  • Pavel Vasin
  • Peter Todd
  • phantomcircuit
  • Philip Kaufmann
  • Pieter Wuille
  • pryds
  • randy-waterhouse
  • R E Broadley
  • Rose Toomey
  • Ross Nicoll
  • Roy Badami
  • Ruben Dario Ponticelli
  • Rune K. Svendsen
  • Ryan X. Charles
  • Saivann
  • sandakersmann
  • SergioDemianLerner
  • shshshsh
  • sinetek
  • Stuart Cardall
  • Suhas Daftuar
  • Tawanda Kembo
  • Teran McKinney
  • tm314159
  • Tom Harding
  • Trevin Hofmann
  • Whit J
  • Wladimir J. van der Laan
  • Yoichi Hirai
  • Zak Wilcox
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
Also lots of thanks to the bitcoin.org website team David A. Harding and Saivann Carignan.
Wladimir
original: http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-February/007480.html
submitted by bitcoin-devlist-bot to bitcoin_devlist [link] [comments]

Guide to Komodo's basic CLI parameters (Linux command line) Check balance and send nxt coins using C# and NxtLib in 8 minutes C++ tutorial 15 - command line arguments - YouTube Python Tutorial - 25. Command line argument processing ... How to Build / Compile and Run a C Program in Command ...

bitcoin-qt command line arguments. GitHub Gist: instantly share code, notes, and snippets. 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. bitcoin-qt. Command-line arguments. Give bitcoind the -? or –-help argument and it will print out a list of the most commonly used command-line arguments and. 25 May 2018. Searching for the Terminal application. The method for installing Bitcoin Core described here requires that you enter text-based commands. The. Backup your wallet by using the backup wallet command from the QT wallet menu or by closing the wallet and waiting about a financial news 5th august to close and copy the wallet. I'd also expect the VS config to become popular in a short space of time which would reduce the maintenance burden. You signed out in another tab or window. My mistake, I had bitcoin. GetBoolArg " -resetguisettings ... Bitcoind – a daemon program that implements the Bitcoin protocol, is controlled through the command line. It is one of the main components of the Bitcoin network node software. Bitcoin software exists in two forms: a GUI application and a background application (daemon on Unix, service on Windows).

[index] [17085] [28461] [12719] [14918] [45758] [6886] [34111] [44874] [47873] [32803]

Guide to Komodo's basic CLI parameters (Linux command line)

Video without background music: https://youtu.be/OxpBMNalsDM The python tutorial discusses command line argument processing using “argparse”.The video compri... QML Beginners: https://www.udemy.com/course/qml-for-beginners/?referralCode=3B69B9927B587BBF40F1 Qt Core Beginners: https://www.udemy.com/course/qt-core-for-... Learn how to use the Komodo from a command line. There are many command you could use, and in this video PTYrader will demonstrate how to use a few of them. Here are a few things you can do ... I've seen several comments in the AeroCoin ANN thread on Bitcoin Talk that people aren't able to get the AeroCoin wallet to sync. This video will help you do just that. Also - the conf file now ... 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 ...

#