Which transactions does bitcoind validate?


1, 2 and 3.

Transactions that arrive through inventory announcements on the network are validated completely by checking the form of the transaction for sanity, executing the script, checking signatures, ensuring that the outputs they are spending actually exist, and that the transaction doesn't end up making negative values anywhere. If they are accepted they are added to the nodes memory pool where they wait for inclusion in a block.

Additionally, non-consensus rules are applied to bare transactions known as IsStandard. On the production network only a small subset of transaction types are "standard", this includes P2SH (pay to script hash) and P2PKH (pay to pubkey hash, or an address), but not raw multisignature and other scripts. Transactions that do not pass are not accepted but relaying a non standard transaction is not a bannable offense.

After validation, IsMine is run to check if the nodes wallet (if it exists) has the keys which own these...

0 0


The "raw transaction API" was introduced with Bitcoin-Qt/bitcoind version 0.7. It gives developers or very sophisticated end-users low-level access to transaction creation and broadcast.


listunspent [minconf=1] [maxconf=999999]

Returns an array of unspent transaction outputs in the wallet that have between minconf and maxconf (inclusive) confirmations. Each output is a 5-element object with keys: txid, output, scriptPubKey, amount, confirmations. txid is the hexadecimal transaction id, output is which output of that transaction, scriptPubKey is the hexadecimal-encoded CScript for that output, amount is the value of that output and confirmations is the transaction's depth in the chain.

lockunspent unlock? [{"txid":txid,"vout":n},...]

Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs. A locked transaction output will not be chosen by automatic coin selection, when spending...

0 0

BitGoD is a NodeJS package and binary which operates a bitcoind-compatible JSON-RPC API. It is designed to proxy non-wallet API calls to a local bitcoind instance, though this is not required, if those API calls are not used. For wallet-related API calls, BitGoD speaks on the back-end to the BitGo REST API, and allows the client to easily operate a multi-sig wallet as if it were dealing with a standard bitcoind instance.

NodeJS must be installed as a prerequisite.

$ npm install -g bitgod

Running bitgod -h will produce usage information.

$ bitgod -h usage: bitgod [-h] [-v] [-conf CONF] [-env ENV] [-rpcbind RPCBIND] [-rpcport RPCPORT] [-rpcuser RPCUSER] [-rpcpassword RPCPASSWORD] [-rpcssl] [-rpcsslkey RPCSSLKEY] [-rpcsslcert RPCSSLCERT] [-proxyhost PROXYHOST] [-proxyport PROXYPORT] [-proxyuser PROXYUSER] [-proxypassword PROXYPASSWORD] [-proxyrpcssl] [-proxyrpcsslallowunauthorizedcerts] [-proxy PROXY]...
0 0

The mainstream banking and financial industry has been apprehensive about extending support for Bitcoin and other cryptocurrencies due to their independent and pseudonymous nature., The mainstream financial sector is bound by various rules, regulations and compliance requirements that make it hard for them to venture out of the purview of fiat currency. But with the new alliance between Chainalysis — a blockchain analysis firm and Nets- a Denmark-based payments provider may change that.

According to media reports, both Nets and Chainalysis are working together to create a solution that helps banks validate cryptocurrency transactions, in accordance with the necessary compliance requirements. The solution, once implemented might open the doors of Nordic banks to Bitcoin payments and operations while ensuring compliance with the existing regulations. The collaborative effort can potentially benefit over 240 financial institutions in the Nordic region to whom Nets already...

0 0

Provided by:



bitcoin.conf - bitcoin configuration file


All command-line options (except for '-datadir' and '-conf') may be specified in a configuration file, and all configuration file options may also be specified on the command line. Command-line options override values set in the configuration file. The configuration file is a list of 'setting=value' pairs, one per line, with optional comments starting with the '#' character. The configuration file is not automatically created; you can create it using your favorite plain-text editor. By default, bitcoind(1) will look for a file named bitcoin.conf(5) in the bitcoin data directory, but both the data directory and the configuration file path may be changed using the '-datadir' and '-conf' command-line arguments.


bitcoin.conf should be located in $HOME/.bitcoin


0 0
0 0

(For more resources related to this topic, see here.)

Bitcoind is the software that connects you to other nodes in the network. There is no single point of failure, and the more nodes there are the faster and more secure the network becomes. Peers are rewarded with a transaction fee for the first validation of a transaction and are assigned randomly.

After installing Bitcoind by using the following command, we have to synchronize it with the network, which means downloading millions of transactions exceeding a gigabyte in size to your Pi.

sudo apt-get install bitcoind

Before running the background daemon, you need to consider changing the data directory as the database files can take up many gigabytes of space. Mount a new storage place and always start Bitcoind with the following line:

bitcoind –datadir /mnt/HDD/bitcoin –daemon

After a few minutes, you can type in the following basic commands. You will need to wait until the entire block...

0 0

Bitcoins - Pools and Mining

Bitcoin is the first fully implemented cryptocurrency. A cryptocurrency relies on

cryptography to generate and validate transactions that become the currency itself.

This data is decentralized, meaning it is stored on computers all over the world and

it is shared using peer-to-peer technology. Digital counterfeiting is avoided by using

a proof-of-work scheme; a concept that works well but cannot be easily explained.

Bitcoin uses SHA-256 as its proof-of-work scheme, but Litecoin, an alternative to

Bitcoin, uses scrypt, a password-based key derivation function. Bitcoin and Litecoin

are the two most popular cryptocurrencies. They are not compatible with each other,

and require different hardware or configurations to work or mine with them. As of

writing this chapter, there are...

0 0

This tutorial shows how to use django-bitcoin to receive and send money in your Python + Django application. The walkthrough guides how to create a bitcoin wallet in your Django application, buy bitcoins, transfers bitcoins into your application and then spend them. This all is done interactively from the command, Django shell and Python prompt.The tutorial was tested on OSX. It should work on Linux unmodified. On Windows you are on your own.

django-bitcoin is a proven open source solution for handling bitcoins in your service. However, it might be rough on the edges, it is being actively developed and lacks satisfying documentation. If you need a helping hand to set it up please pop up on #localbitcoins-chat on irc.freenode.net or poke me by email.

Setup and configure memcached first.

Installation (virtualenv based):

git clone git@github.com:miohtama/django-bitcoin-example.git cd django-bitcoin-example virtualenv venv # Create virtualenv folder caller...
0 0
[Bitcoin-development] HTTP REST API for bitcoind Pieter Wuille pieter.wuille at gmail.com
Tue Jul 23 10:06:24 UTC 2013 On Tue, Jul 23, 2013 at 12:02 PM, Andy Parkins wrote: > On Tuesday 23 July 2013 10:56:02 Pieter Wuille wrote: > >> The block chain is not involved at all to verify transactions, it's >> just a historical >> record to serve to other nodes, and to do wallet rescans with. > > It must be involved to some extent. Certainly during a temporary fork, there > are two branches growing, and you have to be able, when verifying a new > transaction, to say which branch it's one... which branch of the blockchain. No, not really. The UTXO set is the state you need to validate blocks and transactions. You can see blocks as authenticated patches to the UTXO set (consumes some outputs, produces others). During validation, we store "undo data", basically (non-authenticated) reverse patches to the UTXO set, so we can walk back in case of a reorganization. -- Pieter ...
0 0
0 0

Since my last update at the end of June, the core development team produced two minor bug-fix releases while working towards a major 0.9 release. We’ve reviewed and closed over 300 pull requests, which range from correcting the spelling of a word in a comment to major new features like the payment protocol. I’ll highlight some changes that are already in the 0.9 source tree, and then write briefly about some changes that we hope will be ready soon.

Provably Prune-able Outputs

There have been huge debates in the past about embedding data in the blockchain; some people feel that the blockchain should be a public resource available to use for whatever people like, as long as they pay sufficient transaction fees to make it worthwhile for miners to store their transactions. Others feel that the blockchain should only contain the data necessary to validate bitcoin transactions, and any other data should be stored separately.

And while the debates raged, clever...

0 0

By Milly Bitcoin – May 16, 2013

The Electronic Frontier Foundation (EFF) released a statement today about Bitcoin. It states in the footnote “the network doesn’t actively conceal the IP addresses from which transactions were initiated.” This article explains how IP addresses are handled on the Bitcoin network.

If you use a web wallet or a service that connects to a centralized wallet then this does not apply. Only those services that you connect to have your IP address. They broadcast the transactions so if there is to be an IP address collected on the Bitcoin network then it is their IP address.

Many people have visited Blockchain.info. When you click on any transaction you see a “Relayed by IP.” What they do is run a program that tries to connect to as many Bitcoin nodes as possible. They are connected to many more nodes than most users but not all of them. The first IP address they happen to see is what they report as the “Relayed by IP”.


0 0

Three weeks ago I started working at BitGo as a software developer on the Platform/API team, and I got to get my hands dirty with one of BitGo’s open-source software tools, bitgod. I hadn’t used it prior to joining the company, so I quickly headed over to the BitGoD Github page to checkout the README and any documentation. Although the Summary section in the README is clear and concise, it took me longer than I thought it would to understand BitGoD to the point where I could make and test code changes. I spent a large chunk of that time learning exactly where bitgod sits in a blockchain developer’s stack, and what it should be used for. In response to this confusion, I wrote this article to help get you up to speed with bitgod as fast as possible.

The Road Plan

I’ll start by explaining why bitgod exists, then follow with an installation guide. Finally, I’ll go over the some common commands, and end by explaining how one can use...

0 0
0-Confirmation (Zero-Confirmation)

See Unconfirmed Transaction and Confirmation Number.

51% Attack

Also known as >50% attack or a double spend attack. An attacker can make a payment, wait till the merchant accepts some number of confirmations and provides the service, then starts mining a parallel chain of blocks starting with a block before the transaction. This parallel blockchain then includes another transaction that spends the same outputs on some other address. When the parallel chain becomes more difficult, it is considered a main chain by all nodes and the original transaction becomes invalid. Having more than a half of total hashrate guarantees possibility to overtake chain of any length, hence the name of an attack (strictly speaking, it is "more than 50%", not 51%). Also, even 40% of hashrate allows making a double spend, but the chances are less than 100% and are diminishing exponentially with the number of confirmations that the merchant requires. This attack is...

0 0

You can download the reference client Bitcoin Core, also known as the "Satoshi client," from bitcoin.org. The reference client implements all aspects of the bitcoin system, including wallets, a transaction verification engine with a full copy of the entire transaction ledger (blockchain), and a full network node in the peer-to-peer bitcoin network.

On Bitcoin’s Choose Your Wallet page, select Bitcoin Core to download the reference client. Depending on your operating system, you will download an executable installer. For Windows, this is either a ZIP archive or an .exe executable. For Mac OS it is a .dmg disk image. Linux versions include a PPA package for Ubuntu or a tar.gz archive. The bitcoin.org page that lists recommended bitcoin clients is shown in Figure 3-1.

For developers, there is also the option to download the full source code as a ZIP archive or by cloning the authoritative source repository from GitHub. On the GitHub bitcoin page, select Download ZIP from...

0 0

A Bitcoin payment processor plugin for the VirtueMart shopping cart for Joomla!.

Version: 0.9.1

Bitcoin.org forum topic
Github repository


Generates a new bitcoin address for every orderProvides payment address to customer on site at checkout, plus in a subsequent emailConfigurable timeout after which unpaid transactions will be canceled automaticallyConfigurable number of Bitcoin network confirmations after which an order is considered paidHTTP or HTTPS access to bitcoind


Base requirements

Joomla! 1.5VirtueMart 1.1.x

PHP requirements:

PHP5cURL supportSSL support (if you’re using HTTPS to talk to bitcoind)

Other requirements:

Access to create a cronjob on your web server (or elsewhere)wget or the curl commandline tool on the machine running the cronjob


It is assumed that Bitcoin is the only currency accepted.All prices are assumed to be in Bitcoins, and no currency...
0 0

Welcome to the Bitcoin Glossary. This glossary will help you understand exact meaning of all Bitcoin-related terms. We put this together to better help you find and understand all things bitcoin. If you know of anything we missed please contact us so we can add it.

If you find an inaccuracy, please report it to bitcoins@bitcoinaffiliatelist.com


Bitcoin address is a Base58Check representation of a Hash160 of a public key with a version byte 0x00 which maps to a prefix “1”. Typically represented as text (ex. 1CBtcGivXmHQ8ZqdPgeMfcpQNJrqTrSAcG) or as a QR code.

A more recent variant of an address is a P2SH address: a hash of a spending script with a v
ersion byte 0x05 which maps to a prefix “3” (ex. 3NukJ6fYZJ5Kk8bPjycAnruZkE5Q7UW7i8).

Another variant of an address is not a hash, but a raw private key representation (e.g. 5KQntKuhYWSRXNqp2yhdXzjekYAR7US3MT1715Mbv5CyUKV6hVe). It is rarely used, only for importing/exporting...

0 0

Once again, transaction malleability is affecting the whole network of Bitcoin. In general, it can cause so much confusion above anything else and end up apparently having two the same transaction up to the point that the following block is mined. It can be perceived as follows:

The original transaction has never confirmed. One more transaction having the same coin amounts going to as well as from similar addresses, showing up. This contains another transaction ID.

Most of the time, this another transaction ID will validate and in some block explorers you’ll be able to see notices about the first transaction which was a double spend or maybe being not valid.

Eventually however, only one exchange, with the right quantity of Bitcoins being transferred ought to affirm. If no exchanges affirm, or beyond one affirm, at that point this most likely isn't specifically connected to exchange malleability.

In any case, it was seen that there were a few exchanges sent...

0 0

Amir Taaki’s libbitcoin has come to be one of the most advanced alternative implementations of the Bitcoin protocol in existence. Although there are now dozens of alternative implementations on the market, libbitcoin is one of the few that re-implements the complete Bitcoin standard, allowing users to run a deterministic wallet, an elliptic curve message signing interface and, of course, a fully functional Bitcoin node. Even multisignature transactions, which many popular wallets including blockchain.info and Bitcoin Wallet for Android still do not support, libbitcoin handles just fine. Libbitcoin is also unique in its modularity; the package itself is a software library, containing a set of components each of which can be programmatically called individually, avoiding the need to start up a fully fledged, monolithic software daemon just to make a few simple transactions or queries. If you want a full client running locally, you can use libbitcoin to do that, but you can also just...

0 0

In this chapter we will install what is called a full node.

A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.

Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet. If not enough nodes perform this function, clients won’t be able to connect through the peer-to-peer network — they’ll have to use centralized services instead.

Many people and organizations volunteer to run full nodes using spare computing and bandwidth resources — but more volunteers are needed to allow Bitcoin to continue to grow. This document describes how you can help and what helping will cost you.

The full node will be reachable over IPv4, IPv6 and as Hidden...

0 0

Last updated: 19th October 2015

Bitcoin wallets store the private keys that you need to access a bitcoin address and spend your funds. They come in different forms, designed for different types of device. You can even use paper storage to avoid having them on a computer at all. Of course, it is very important to secure and back up your bitcoin wallet.

Bitcoins are a modern equivalent of cash and, every day, another merchant starts accepting them as payment. We know how they are generated and how a bitcoin transaction works, but how are they stored? We store fiat cash in a physical wallet, and bitcoin works in a similar way, except it's normally digital.

Well, to be absolutely accurate, you don't technically store bitcoins anywhere. What you store are the secure digital keys used to access your public bitcoin addresses and sign transactions. This information is stored in a bitcoin wallet.

Bitcoin wallets come in a variety of forms. There are five main...

0 0

It's well known that bitcoin is designed as a decentralized peer-to-peer (P2P) network. However, what's often lost in translation is the sheer amount of machinery that is needed to maintain this global infrastructure.

For example, in order to validate and relay transactions, bitcoin requires more than a network of miners processing transactions, it must broadcast messages across a network using 'nodes'. This is the first step in the transaction process that results in a block confirmation.

To function to its full potential, the bitcoin network must not only provide an avenue for transactions, but also remain secure. By using a number of randomly selected nodes, the network can reduce the problem of double spending – when a user attempts to spend the same digital token twice.

However, bitcoin doesn't just need nodes, it requires lots of fully functioning nodes – nodes that have the bitcoin core client on a machine instance with the complete block chain. The more...

0 0

It might not be official yet but for all intents and purposes, Bitcoin is effectively a third currency, sitting alongside debit cards and traditional money.

It might be totally digital but Bitcoin is becoming more and more popular all the time, with steep rises every year in its usage.

With more and more people using Bitcoin every year the benefits and risks grow alongside it. Bitcoin isn’t quite as simple as going into a shop and handing over some money or scanning your card but it’s not as complex as it might appear either.

But before you go about buying and trading Bitcoins it’s always a good idea to read up on the benefits and risks involved. Even if you’re well-versed in how Bitcoin works a refresher on the main benefits and risks is always a good idea.

So, let’s take a closer look at the benefits and risks of using Bitcoin.

Untraceable – A Benefit and a Risk

The anonymity and un-traceability of Bitcoin as the unusual distinction of...

0 0

What is a UASF?

UASF stands for User Activated Soft Fork. It’s a mechanism where the activation time of a soft fork occurs on a specified date enforced by full nodes, a concept sometimes referred to as the economic majority. A UASF requires a lot of industry support and coordination, which is good practice for eventual hard forks which requires even more industry coordination. In the past, a UASF was successfully carried out to activate the P2SH soft fork (BIP16). The UASF concept was combined with SegWit activation in the BIP148 proposal which can be found here: github.com/bitcoin/bips/blob/master/bip-0148.mediawiki.

UASF Signaling

sourced from uasf.saltylemon.org

What is a MASF?

MASF stands for Miner Activated Soft Fork. It’s a mechanism by which miners trigger activation of soft forks when a majority signals the readiness to upgrade. This allows for a faster activation time for the soft fork, leaving full nodes to upgrade at...

0 0