nyuuzyou/wikis huggingface dataset:
Running Bitcoin

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. You can run one copy of either Bitcoin or bitcoind on your system at a time (if you accidently try to launch another, the copy will let you know that Bitcoin or bitcoind is already running and will exit).
__TOC__
==Linux Quickstart==
The simplest way to start from scratch with the command line client, automatically syncing blockchain and creating a wallet, is to just run this command (without arguments) from the directory containing your bitcoind binary:
 ./bitcoind
To run with the standard GUI interface:
 ./bitcoin-qt
==Command-line arguments==
You can get a list of command line options of the version of Bitcoin Core that you are running either in the GUI ("Help" --> "Command-line options") or the daemon ("bitcoind -?").
==Bitcoin.conf Configuration File==
All command-line options (except for -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. A user-friendly configuration file generator is available here. By default, Bitcoin (or bitcoind) will look for a file named 'bitcoin.conf' 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.
Operating System	Default bitcoin datadir 	Typical path to configuration file
Windows 	%APPDATA%\Bitcoin\ 	C:\Users\username\AppData\Roaming\Bitcoin\bitcoin.conf
Linux 	$HOME/.bitcoin/ 	/home/username/.bitcoin/bitcoin.conf
Mac OSX 	$HOME/Library/Application Support/Bitcoin/	/Users/username/Library/Application Support/Bitcoin/bitcoin.conf
Note: if running Bitcoin in testnet mode, the sub-folder "testnet" will be appended to the data directory automatically.
==Sample Bitcoin.conf==
See here https://github.com/bitcoin/bitcoin/blob/master/share/examples/bitcoin.conf
==Platforms==
===Windows===
====Start automatically====
To configure the Bitcoin client to start automatically:
You might use the configuration-file, or the GUI-Settings:
Settings -> Options
then mark the checkbox titled:
 [X] Start Bitcoin on system startup
====Batch automation====
To work with batch, you have to start the daemon (bitcoind.exe). The bitcoin.exe run with option "-server" will respond with GUI-messages you are not able to process its answers.
===Mac===
===Linux===
==See Also==
* Data directory
es:Ejecución de Bitcoin
Category:Technical
Category:Developer
Ruxum

A former exchange that allowed trade between the digital currencies Bitcoin (BTC) and a number of other currencies.
==History==
The exchange was founded by Chad Pankewitz. As of August 08, 2011 the service was still in invite-only beta. Sometime before April 18th, 2012 the service stopped operating as a functional exchange. Customers funds are being returned following contact with the operatorsent BTC to Ruxum wallet...
==See Also==
* Buying bitcoins
* Selling bitcoins
==External Links==
* Ruxum exchange website
==References==
SHA-256

SHA-256 is a member of the SHA-2 cryptographic hash functions designed by the NSA. SHA stands for Secure Hash Algorithm. Cryptographic hash functions are mathematical operations run on digital data; by comparing the computed "hash" (the output from execution of the algorithm) to a known and expected hash value, a person can determine the data's integrity. A one-way hash can be generated from any piece of data, but the data cannot be generated from the hash.
SHA-256 is used in several different parts of the Bitcoin network:
# Mining uses SHA-256 as the Proof of work algorithm.
# SHA-256 is used in the creation of bitcoin addresses to improve security and privacy.
== See also ==
* https://en.wikipedia.org/wiki/SHA-2
SMS Bitcoins

A mobile service that is used to transact using the SMS text messaging billing. This service is available only in Belgium and in the Netherlands.
==Example==
If you are in Belgium and you want to donate 0.32 BTC to the Bitcoin Faucet, just sms "DONATE BITCOIN FAUCET" to 6033. Your mobile will be charged 1 EUR.
The service was announce with the launch of the beta version on April 11, 2011 Buy or pay with bitcoins by sending an SMS from Belgium or the Netherlands.
==External Links==
* SMS bitcoins web site
==References==
Category:ECommerce
Category:Mobile
Satoshi Citadel Industries

Satoshi Citadel Industries is a Philippine startup company specializing in creating Bitcoin services and products for the Philippine market for the purpose of financial inclusion. It was founded by Filipino entrepreneurs John Bailon, Miguel Cuneta, Nick Galan, and Jardine Gerodias in March 2014, and is headquartered in Metro Manila, Philippines. It serves as a holding company for at least six different ventures in the Philippines Bitcoin industry.
==History==
Satoshi Citadel Industries (SCI) was founded by John Bailon, Miguel Cuneta, Nick Galan, and Jardine Gerodias in the first quarter of 2014. In a span of four months, the founders had grown into a team of 14 individuals. Work on the flagship product Bitmarket.ph was well under way, but the team kept growing and building more bitcoin related products and services for the Philippine market. 
==Growth and Expansion==
By August 2014, the company developed six bitcoin ventures: Digital payment service provider Bitmarket.ph, which enables millions of Philippine merchant to accept digital payments, Bitcoin Rebittance company Rebit.ph, which allows people to remit money to the Philippines using Bitcoin, allowing them to save money on remittances, 
Bitcoin Faucet/ social media service Bitstars.ph, a website that rewards users with Bitcoin for submitting photos Bitcoin exchange Coinage.ph, the first enterprise-grade orderbook exchange in the Philippines, the Philippines' first Bitcoin bills payment service Bills.ninja, and Prepaid Bitcoin stored value card provider Prepaidbitcoin.ph. 
==External Links==
* Satoshi Citadel Industries Website
* Bitmarket Website
* Rebit.ph Website
* Coinage Website
* Bitstars Website
* Preapid Bitcoin Website
* Bills Ninja Website
==References==
<References>
Satoshi Client Sockets and Messages

==Overview==
The original bitcoin client uses a multithreaded approach to socket
handling and messages processing. There is one thread that handles
socket communication (ThreadSocketHandler) and one (ThreadMessageHandler)
which handles pulling messages off sockets and calling the
processing routines. Both of these threads are in net.cpp.
The message processing routines are in main.cpp, however.
==Socket Thread==
The socket thread reads the sockets and places data into a CDataStream
associated with each node called vRecv. The Satoshi client uses C++
serialization operators >> and << to read and write to a CDataStream
and then it uses generic routines to move the data between the streams
and sockets.
==Message Thread==
The message thread reads and processes all messages from each node in
sequence, and then it sends messages to each node that should be sent
messages. That is all it does.
Specifically, ThreadMessageHandler2 calls ProcessMessages(), which is
located in main.cpp, to pull messages off each node's socket and
process them. Then it calls SendMessages(), which is also located
in main.cpp to create and send any messages appropriate for each node.
ProcessMessages() attempts to find a message start signature in the
vRecv stream. If it finds a message start, it deletes everything
prior to the start. Then it reads the header, extracts the message
type, and calls ProcessMessage on the message.
SendMessages() actually creates and sends messages; it does not
just send preexisting queued messages. It goes through various
maps looking for work to do and produces a message and calls
PushMessage method of CNode to send the message. PushMessage
queues outbound data in the vSend data stream. (See PushMessage() in
net.cpp). The socket thread handler then pulls data off the
vSend data stream and calls send on the socket to send the data.
Category:Developer
Category:Technical
Satoshi Client Transaction Exchange

==Overview==
The Satoshi client advertises locally generated transactions and relays
transactions from other nodes. This article describes the operations
that deal with this exchange of transactions.
Transactions are exchanged only if they are standard and valid.
== Wallet Send ==
The client periodically calls SendMessages() (in main.cpp) which calls
ResendWalletTransactions to send transactions generated locally.
This routine looks to see if there has been a new block since last time,
and if so, and the local transaction are still not in a block,
then the transactions are sent to all nodes.
This is done only about every 30 minutes.
Transactions are only rebroadcast if they have a timestamp at least
5 minutes older than the last block was received. They are sorted
and sent oldest first.See: CWallet::ResendWalletTransactions in wallet.cpp.
== Periodic Advertisement ==
The client periodically calls SendMessages() (in main.cpp) which
determines if a message should be sent to a remote node.
For each message processing iteration, one node is chosen as the
"trickle node".See: pnodeTrickle = vNodesCopy[GetRand(vNodesCopy.size())];
and SendMessages(pnode, pnode == pnodeTrickle); in ThreadMessageHandler2() in net.cpp. This node is the only one chosen to receive
an "addr" message, if appropriate.See:
 //
 // Message: addr
 //
 if (fSendTrickle)
 { 
in SendMessages() in main.cpp.
In the section for inventory, the client sends 1/4 of the transaction
inventory, determined randomlySee: bool fTrickleWait = ((hashRand & 3) != 0);
in SendMessages() in main.cpp., UNLESS they are the trickle node,
in which case they receive ALL transactions.See:
 // trickle out tx inv to protect privacy
 if (inv.type == MSG_TX && !fSendTrickle)
 { 
in SendMessages() in main.cpp. Yes, that seems reversed,
but it is what it is. If the node is to receive 1/4 (not all), then the
code also avoids sending any transactions that came from the local
wallet.See:
 // always trickle our own transactions
 if (!fTrickleWait)
 { 
 CWalletTx wtx;
 if (GetTransaction(inv.hash, wtx))
 if (wtx.fFromMe)
 fTrickleWait = true;
 }
in SendMessages() in main.cpp. The comments indicate this is intended to increase privacy.
== Relay ==
When the client receives a transaction via a "tx" messages,
it calls RelayMessage, which calls RelayInventory, which queues the
inventory to be sent to all other nodes.Both RelayMessage and RelayInventory in net.h.
==See Also==
 Transaction broadcasting
==Footnotes==
Category:Developer
Category:Technical
Satoshi Nakamoto

:For the unit, see satoshi (unit).
Satoshi Nakamoto is the founder of Bitcoin and initial creator of the Original Bitcoin client. He has said in a P2P foundation profileSatoshi Nakamoto profile on P2P Foundation that he is from Japan. Beyond that, not much else is known about him and his identity. He has been working on the Bitcoin project since 2007.Re: Questions about Bitcoin
His involvement in the Bitcoin project had tapered and by late 2010 it has ended. The most recent messages reportedly indicate that Satoshi is "gone for good"Transcript of #bitcoin-dev for 2011/04/26.
==Possible Motives==
He left some clues about why he is doing this project with the inclusion of the following text in the Genesis block, "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks".
Some interesting quotes:
Yes, [we will not find a solution to political problems in cryptography,] but we can win a major battle in the arms race and gain a new territory of 
freedom for several years.
Governments are good at cutting off the heads of a centrally controlled 
networks like Napster, but pure P2P networks like Gnutella and Tor seem to be 
holding their own.Re: Bitcoin P2P e-cash paper Fri, 07 Nov 2008 09:30:36 -0800
It's very attractive to the libertarian viewpoint if we can explain it 
properly. I'm better with code than with words though.Re: Bitcoin P2P e-cash paper Fri, 14 Nov 2008 14:29:22
==Possible identity==
His identity and nationality are unknown.
He is entirely unknown outside of Bitcoin as far as anyone can tell, and his (never used) PGP key was created just months prior to the date of the genesis block. He seems to be very familiar with the cryptography mailing list, but there are no non-Bitcoin posts from him on it. He has used an email address from an anonymous mail hosting service (vistomail) as well as one from a free webmail account (gmx.com) and sends mail when connected via Tor. Some have speculated that his entire identity was created in advance in order to protect himself or the network. Perhaps he chose the name Satoshi because it can mean "wisdom" or "reason" and Nakamoto can mean "Central source".
Ultimately the design of Bitcoin and its use of cryptographic proof and fully open implementation is one that makes its creator, in a sense, irrelevant and only of interest for historical reasons.
==External links==
* Satoshi's PGP public key
* Bitcoin: A Peer-to-Peer Electronic Cash System Paper
* SourceForge page this link is invalid as of 20190522T0153Z :-(
* Satoshi Nakamoto Institute
==References==
de:Satoshi Nakamoto
es:Satoshi Nakamoto
Category:People
Satoshi per byte

Satoshi per byte (also abbreviated to sat/byte) is a unit for measuring transaction priority, defined by the transaction's fee in satoshi divided by the size of the transaction in bytes.
This unit is only used for legacy addresses. Newer addresses that use Segwit use a new unit called Satoshi per virtual byte (sat/vbyte) which is equal to the transaction's size in Weight units divided by 4. Weight units are calculated by taking the transaction size (without the witness) times 3, added to the transaction size including witness.
Scam:Bithome.co

Warning: Bithome.co is a scam site.
Bithome scams users by offering to "buy" Bitcoin with PayPal, Skrill, MoneyGram, Western Union and SEPA / Wire transfer. Also users can "sell" Bitcoins, NOT.
This is a SCAM, do not use!
If you send any money, it will be gone and you will not hear back from them. In case of PayPal money is collected as "friend+family" payment and can not be charged back.
PayPal fraud team is aware, but did not do anything about it for months (01/2016). Additionally, the site uses Cloudflare and other technologies to cloak its origin. The contact address equals the one of bitin.co Scam. 
References:
* scam thread on bitcointalk
* reddit
* Bitin.co on bitcointalk
Schnorr

Bitcoin currently uses the ECDSA algorithm to generate cryptographic signatures for a given message and secp256k1 keypair. Schnorr is an alternative algorithm with several advantages. One key advantage is that when multiple keys are used to sign the same message with Schnorr, the resulting signatures can be combined into a single signature. This can be used to significantly reduce the size of multisig payments and other multisig related transactions, for example lightning channel transactions.
The main reason that Bitcoin did not originally use Schnorr signatures is that Schnorr was not standardized, and was not available in common crypto libraries.
==Technical details==
Schnorr signatures are a proposed future extension that give a new way to generate signatures (R,s) on a hash h.
Given a hash value h, hash function f(), private key x, group generator G, and public key P=xG, we can generate a Schnorr signature on h as follows:
Choose a random nonce k. Let R=Gk, and let s = k - f(h . R . P)x. The Schnorr signature is the pair (R, s). Note that R is a public key, so would require 33 bytes to represent (32 bytes + 1 bit indicating "even" vs "odd").
To check the validity of a signature (R, s) against a public key P, do the following:
Note that sG = (k- f(h . R . P)x)G = kG - f(h . R . P)xG = R - f(h . R . P)P. So we simply compare sG + f(h . R . P)P to R to check the signature.
An advantage of this method is that, if parties cooperate, we can generate a single signature that validates two or more separate transactions.
Choose h1, h2, x1, x2, G, P1=Gx1, P2=Gx2. Each party chooses a nonce yielding k1 and k2, and publicly shares R1=Gk1, R2=Gk2.
Let R = R1+R2. Each signer generates an s, s1 = k1 - f(h . R . P)x1, s2 = k2 - f(h . R . P)x2. The signature (R, s) where s = s1 + s2 proves both transactions are signed.
Note that sG = (s1 + s2)G = s1G + s2G = (k1 - f(h . R . P)x1)G + (k2 - f(h . R . P)x2)G = k1G - f(h . R . P)x1G + k2G - f(h . R . P)x2G = R1 + R2 - f(h . R . P)(P1 + P2) = R - f(h . R . P)(P1 + P2)
To verify, check that sG +f(h . R . P)(P1+P2) is R.
This can be easily generalized from 2 to N.
==See also==
Draft Schnorr specification for future use in Bitcoin
Category:Technical
Scrypt proof of work

Scrypt proof of work denotes the Hashcash proof of work using scrypt as underlying hash function.
By using a memory-intensive hash function designed to reduce the efficiency of logic circuits, this was claimed to make only CPU mining remain profitable, even with the advent of GPU mining, and completely failed in that goal.
It has been less widely used and analyzed than the SHA2 hashing algorithm used in Bitcoin, so there is some concern about possible weaknesses in its cryptographic scheme being discovered in the future.
== History ==
Originally introduced as part of the altcoin Tenebrix (TBX) by ArtForz and Lolcust, it was claimed to be resistant to GPU, FPGA, and ASIC implementation.
=== Specialized hardware ===
Around mid-2012, GPU-based scrypt mining began to become widespread, and by late 2013 scrypt ASICs had began shipping. As scrypt is not GPU-resistant, FPGA-resistant nor ASIC-resistant, it has failed to meet its stated goals entirely.
== Problems ==
=== Vulnerability to mining monopoly ===
"51% attacks" become more difficult to launch and maintain as the hash rate of the network grows.
However, this argument posits that since scrypt is designed to be inefficient on all common computer components (both CPUs and GPUs), a malicious entity need only produce a small batch of specialized/custom hardware to overtake all the commodity mining systems combined.
=== Memory bandwidth refutation ===
Some attempt to refute this by arguing that scrypt is not designed to be inefficient, but is instead designed to be highly dependent on memory bandwidth.
Since the high-speed cache RAM on modern processors already takes up most of the die space, no sizeable improvement could then be made by creating custom chips.
If we accept this argument we then estimate the cost of attack utilizing GPUs that are available today. 
To do so we start with an estimated cost of hardware at $400 per megahash per second and a reasonable network hashrate of 30 gigahashes per second.
The total amount of equipment necessary to match and takeover this network via 51% attack would then be an estimated $12M USD (or about 45,000 AMD HD 7950s).
== Variations ==
In mid-2013, a user nicknamed pocopoco introduced an altcoin ("YACoin") using scrypt with an adaptive "N-factor"BitcoinTalk discussion thread for the "YACoin" altcoin.
== References ==
Search volume by country

Google monthly search volume for "Bitcoin" is a good way to track growing interest. This page ranks the top 20 countries by search volume to give an approximation of the international composition of the Bitcoin community and Market.
Last updated: Jan 2013
R 	Country 	vol/mth
- 	World 	673.000
1º 	USA 	246.000
2º 	Germany 	49.500
3º 	UK 	49.500
4º 	Canada 	33.100
5º 	Australia 	22.200
6º 	Russia 	18.100
7º 	Netherlands 	14.800
8º 	Italy 	14.800
9º 	Brazil 	12.100
10º	Spain 	12.100
11º	Sweden 	12.100
12º	Finland 	9.900
13º	Austria 	6.600
14º	Argentina 	4.400
15º	India 	4.100
16º	Ireland 	3.600
17º	New Zealand 	3.600
18º	South Africa	1.900
19º	Turkey 	1.900
20º	Venezuela 	1.900
==See Also==
* Bitcoin Ladder
* Google trends 
* Keyword tool by Google
* Bitcoin charts
Secp256k1

secp256k1 refers to the parameters of the elliptic curve used in Bitcoin's public-key cryptography, and is defined in Standards for Efficient Cryptography (SEC) (Certicom Research, http://www.secg.org/sec2-v2.pdf). Currently Bitcoin uses secp256k1 with the ECDSA algorithm, though the same curve with the same public/private keys can be used in some other algorithms such as Schnorr.
secp256k1 was almost never used before Bitcoin became popular, but it is now gaining in popularity due to its several nice properties. Most commonly-used curves have a random structure, but secp256k1 was constructed in a special non-random way which allows for especially efficient computation. As a result, it is often more than 30% faster than other curves if the implementation is sufficiently optimized. Also, unlike the popular NIST curves, secp256k1's constants were selected in a predictable way, which significantly reduces the possibility that the curve's creator inserted any sort of backdoor into the curve.
=== Technical details ===
As excerpted from Standards: 
The elliptic curve domain parameters over Fp associated with a Koblitz curve secp256k1 are specified
by the sextuple T = (p,a,b,G,n,h) where the finite field Fp is defined by:
* p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
* = 2256 - 232 - 29 - 28 - 27 - 26 - 24 - 1
The curve E: y2 = x3+ax+b over Fp is defined by:
* a = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
* b = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000007
The base point G in compressed form is:
* G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
and in uncompressed form is:
* G = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8
Finally the order n of G and the cofactor are:
* n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
* h = 01
=== Properties ===
* secp256k1 has characteristic p, it is defined over the prime field ℤp. Some other curves in common use have characteristic 2, and are defined over a binary Galois field GF(2n), but secp256k1 is not one of them.
* As the a constant is zero, the ax term in the curve equation is always zero, hence the curve equation becomes y2 = x3 + 7.
== See also ==
* What does secp256k1 look like (Bitcoin stack exchange answer by Pieter Wuille)
es:Secp256k1
Category:Technical
SecureCoin

Formerly an escrow-like service that allows safer payment by securely holding a buyer's coins in escrow until the terms of the sale are met and as a result the buyer releases payment to the seller. Furthermore there is an id verification service. Users can confirm their identity and share them with other users about so-called public IDs.
==History==
The site was launched on July 2011. On September 2011 the site merged with the Bitcoin trading portal & auction house Bitmit.
==See Also==
* Secure Trading
==References==