New Bitcoin Core subsite

This commit contains a large number of contributions from Saïvann
Carignan.
This commit is contained in:
David A. Harding 2015-09-01 21:21:51 -04:00
parent c4517a951e
commit 706c791e92
No known key found for this signature in database
GPG Key ID: 4B29C30FF29EC4B7
85 changed files with 3289 additions and 88 deletions

View File

@ -56,7 +56,8 @@ pre-build-tests-fast: check-for-non-ascii-urls check-for-wrong-filename-assignme
check-for-missing-rpc-summaries \
check-for-missing-copyright-licenses \
check-bundle \
check-for-english-in-en-dir
check-for-english-in-en-dir \
check-for-consistent-bitcoin-core-titles
## Post-build tests which, aggregated together, take less than 10 seconds to run on a typical PC
post-build-tests-fast: check-for-build-errors ensure-each-svg-has-a-png check-for-liquid-errors \
@ -151,7 +152,7 @@ check-for-non-ascii-urls:
## characters or spaces.
$S find _translations -name '*.yml' -type f | while read file \
; do grep -H . $$file | sed -n -e '/url:/,$$p' \
| grep -P ': +[a-z0-9\-]+: +.*([^\x00-\x7f]|[^a-z0-9\-"]).*$$' \
| grep -P ': +[a-z0-9\-]+: +.*([^\x00-\x7f]|[^a-z0-9\/\-"]).*$$' \
; done | eval $(ERROR_ON_OUTPUT)
check-for-broken-kramdown-tables:
@ -278,3 +279,8 @@ check-for-javascript-in-svgs:
check-for-english-in-en-dir:
## All pages must have page.lang set to work properly with the site templates
$S grep -rl -- '---' en/ | xargs grep -L '^ *lang: *en' | eval $(ERROR_ON_OUTPUT)
check-for-consistent-bitcoin-core-titles:
## Ensure all page titles in the en/bitcoin-core/ hierarchy mention
## Bitcoin Core
$S grep -r -L '^title:.*Bitcoin Core' en/bitcoin-core/ | eval $(ERROR_ON_OUTPUT)

View File

@ -208,6 +208,23 @@ kramdown:
coderay_bold_every: 10
coderay_css: style
text:
## Values last updated 2015-08-26
## All variable names must indicate unit type for easy translation of adjacent text,
## such as: subsidy_in_decimal_bitcoins or
## bitcoin_org_docs_maintainer_email_link
subsidy_in_decimal_bitcoins: 25
chain_gb: 50
bitcoin_datadir_gb: 60
bitcoin_datadir_gb_pruned: 3
total_tx_count_in_millions: 40
typical_ibd_time_in_hours: 4
typical_144_block_catchup_time_in_minutes: 5
bitcoin_org_docs_maintainer_email_link: '<a href="mailto:dave@dtrt.org">Dave Harding</a>'
## Before updating this, verify all assertions are still correct: git grep site.text.assertion_month
## Use ISO-8601 format, but feel free to round to the nearest month
assertion_month: 2015-09-01
## Items in devsearches will appear in the search box in the order they
## are listed below. For the top-level ("Glossary", "RPCs", etc...) this

View File

@ -0,0 +1,27 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
- **Legal:** Bitcoin use is [prohibited or restricted in some
areas.](https://en.wikipedia.org/wiki/Legality_of_bitcoin_by_country)
- **Bandwidth limits**: Some Internet plans will charge an additional
amount for any excess upload bandwidth used that isn't included in
the plan. Worse, some providers may terminate your connection without
warning because of overuse. We advise that you check whether your
Internet connection is subjected to such limitations and monitor your
bandwidth use so that you can stop Bitcoin Core before you reach your
upload limit.
- **Anti-virus:** Several people have placed parts of known computer
viruses in the Bitcoin block chain. This block chain data can't infect
your computer, but some anti-virus programs quarantine the data
anyway, making it more difficult to run Bitcoin Core. This problem mostly
affects computers running Windows.
- **Attack target:** Bitcoin Core powers the Bitcoin peer-to-peer
network, so people who want to disrupt the network may
attack Bitcoin Core users in ways that will affect other things
you do with your computer, such as an attack that limits your
available download bandwidth.

View File

@ -0,0 +1,12 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
<div class="listtable coredevtable">
<div><div>Wladimir J. van der Laan</div><div><a href="mailto:laanwj@gmail.com">laanwj@gmail.com</a></div><div><a href="/laanwj.asc">PGP</a></div></div>
<div><div>Gavin Andresen</div><div><a href="mailto:gavinandresen@gmail.com">gavinandresen@gmail.com</a></div><div><a href="/gavinandresen.asc">PGP</a></div></div>
<div><div>Jeff Garzik</div><div><a href="mailto:jgarzik@bitpay.com">jgarzik@bitpay.com</a></div><div><a href="/jgarzik-bitpay.asc">PGP</a></div></div>
<div><div>Gregory Maxwell</div><div><a href="mailto:greg@xiph.org">greg@xiph.org</a></div><div><a href="/gmaxwell.asc">PGP</a></div></div>
<div><div>Pieter Wuille</div><div><a href="mailto:pieter.wuille@gmail.com">pieter.wuille@gmail.com</a></div><div><a href="/pieterwuille.asc">PGP</a></div></div>
</div>

View File

@ -0,0 +1,12 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
<div class="callout">
<p><a href="/{{page.lang}}/{% translate download url %}">{% translate download-bitcoin-core bitcoin-core-overview %}</a>
<img src="/img/os/windows.png" alt="Windows">
<img src="/img/os/mac.png" alt="Mac">
<img src="/img/os/linux.png" alt="Linux">
</p>
</div>

View File

@ -0,0 +1,10 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
<div id="content" class="content">
<div {% if page.columns == 1 and page.lang == 'en' %}class="one-column"{% endif %}>
{{ content }}
</div>
</div>

View File

@ -0,0 +1,9 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
{% comment %}<!-- Try to minimize the amount of JS on the download page -->{% endcomment %}
{% if page.id != 'download' %}
<script src="/js/bitcoin-core.js"></script>
{% endif %}

View File

@ -0,0 +1,6 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
<a class="logo" href="/{{page.lang}}/{% translate bitcoin-core-overview url %}"><img src="/img/bitcoin-core/bitcoin-core.svg" alt="Bitcoin"></a>

View File

@ -0,0 +1,29 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
<ul id="menusimple" class="menusimple menucore" onclick="mobileMenuHover(event);" ontouchstart="mobileMenuHover(event);">
<li><a>{% translate menu-bcc-features layout %}</a>
<ul>
<li{% if page.id == 'bitcoin-core-feature-overview' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-features url %}">{% translate menu-bcc-features-overview layout %}</a></li>
<li{% if page.id == 'bitcoin-core-validation' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-validation url %}">{% translate menu-bcc-validation layout %}</a></li>
<li{% if page.id == 'bitcoin-core-privacy' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-privacy url %}">{% translate menu-bcc-privacy layout %}</a></li>
<li{% if page.id == 'bitcoin-core-requirements' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-requirements url %}">{% translate menu-bcc-requirements layout %}</a></li>
<li{% if page.id == 'bitcoin-core-user-interface' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-user-interface url %}">{% translate menu-bcc-user-interface layout %}</a></li>
<li{% if page.id == 'bitcoin-core-donate-bandwidth' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-network-support url %}">{% translate menu-bcc-network-support layout %}</a></li>
</ul>
</li>
<li{% if page.id == 'bitcoin-core-help' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-help url %}">{% translate menu-bcc-help layout %}</a></li>
<li{% if page.id == 'bitcoin-core-contribute' %} class="active"{% endif %}><a>{% translate menu-bcc-contribute layout %}</a>
<ul>
<li{% if page.id == 'bitcoin-core-contribute-issues' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-contribute-issues url %}">{% translate menu-bcc-contribute-issues layout %}</a></li>
<li{% if page.id == 'development' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate development url %}">{% translate menu-bcc-contribute-code layout %}</a></li>
<li{% if page.id == 'bitcoin-core-contribute-documentation' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-contribute-documentation url %}">{% translate menu-bcc-contribute-documentation layout %}</a></li>
<li{% if page.id == 'bitcoin-core-contribute-translations' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-contribute-translations url %}">{% translate menu-bcc-contribute-translations layout %}</a></li>
<li{% if page.id == 'bitcoin-core-contribute-tech-support' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate bitcoin-core-contribute-tech-support url %}">{% translate menu-bcc-contribute-tech-support layout %}</a></li>
</ul>
</li>
<li{% if page.id == 'version-history' %} class="active"{% endif %}><a href="/en/version-history">{% translate menu-bcc-news layout %}</a></li>
<li{% if page.id == 'download' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate download url %}">{% translate menu-bcc-download layout %}</a></li>
</ul>

View File

@ -0,0 +1,10 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
{% comment %}<!-- try to minimize the amount of JS on the Download page -->{% endcomment %}
{% if page.id != 'download' %}
<script src="/js/jquery/jquery-1.11.2.min.js"></script>
<script src="/js/jquery/jquery-ui.min.js"></script>
{% endif %}

View File

@ -0,0 +1,9 @@
{% comment %}
This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
<!-- this must come before the main style sheet so that our
definitions override the defaults -->
{% endcomment %}
<link rel="stylesheet" href="/css/jquery-ui.min.css">

View File

@ -12,11 +12,20 @@ http://opensource.org/licenses/MIT.
{% for synonym in page.required.synonyms_shown_in_glossary_capitalize_first_letter %}
{% if forloop.first %}{{synonym}}{% endif %}
{% endfor %}
{% when "RELEASE" %}
{% comment %}<!-- for Bitcoin Core releases, show the version number -->{% endcomment %}
{{page.required_version}}
{% else %}{{crumb}}
{% endcase %}
{% else %}
{% case crumb %}
{% comment %}/// Alphabetical order by crumb \\\{% endcomment %}
{% when "bcc" %}<a href="/en/bitcoin-core/">Core</a>
{% when "bcc contribute" %}<a href="/en/bitcoin-core/contribute/">Contribute</a>
{% when "bcc documentation" %}<a href="/en/bitcoin-core/help#documentation">Documentation</a>
{% when "bcc features" %}<a href="/en/bitcoin-core/features/">Features</a>
{% when "bcc help" %}<a href="/en/bitcoin-core/help">Help</a>
{% when "bcc news" %}<a href="/en/version-history">News</a>
{% when "bitcoin" %}<a href="/{{page.lang}}/">{% translate bitcoin vocabulary %}</a>
{% when "dev docs" %}<a href="/en/developer-documentation">Dev Docs</a>
{% when "glossary" %}<a href="/en/developer-glossary">Glossary</a>

View File

@ -3,7 +3,7 @@ This file is licensed under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
{% endcomment %}
<ul id="menusimple" class="menusimple" onclick="mobileMenuHover(event);" ontouchstart="mobileMenuHover(event);">
<ul id="menusimple" class="menusimple menumain" onclick="mobileMenuHover(event);" ontouchstart="mobileMenuHover(event);">
<li><a>{% translate menu-intro layout %}</a>
<ul>
<li{% if page.id == 'bitcoin-for-individuals' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate bitcoin-for-individuals url %}">{% translate menu-bitcoin-for-individuals layout %}</a></li>
@ -21,6 +21,12 @@ http://opensource.org/licenses/MIT.
{% if page.lang == 'en' %}<li{% if page.id == 'developer-documentation' %} class="active"{% endif %}><a href="/en/developer-documentation">Documentation</a></li>{% endif %}
<li{% if page.id == 'vocabulary' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate vocabulary url %}">{% translate menu-vocabulary layout %}</a></li>
<li{% if page.id == 'events' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate events url %}">{% translate menu-events layout %}</a></li>
{% case page.lang %}
{% when 'id' or 'da' or 'de' or 'es' or 'fr' or 'it' or 'hu' or 'nl' or 'pl' or 'pt_BR' or 'ro' or 'sl' or 'sv' or 'tr' or 'el' or 'bg' or 'ru' or 'uk' or 'ar' or 'fa' or 'hi' or 'ko' or 'ja' or 'zh_CN' or 'zh_TW' %}
<li{% if page.id == 'download' %} class="active"{% endif %}><a href="/{{page.lang}}/{% translate download url %}">{% translate bitcoin-core layout %}</a></li>
{% else %}
<li><a href="/{{page.lang}}/{% translate bitcoin-core-overview url %}">{% translate bitcoin-core layout %}</a></li>
{% endcase %}
</ul>
</li>
<li{% if page.id == 'innovation' %} class="active"{% endif %}><a href="/{{ page.lang }}/{% translate innovation url %}">{% translate menu-innovation layout %}</a></li>

View File

@ -178,7 +178,35 @@ http://opensource.org/licenses/MIT.
[tx message]: /en/developer-reference#tx "A P2P protocol message which sends a single serialized transaction"
[verack message]: /en/developer-reference#verack "A P2P network message sent in reply to a version message to confirm a connection has been established"
[version message]: /en/developer-reference#version "A P2P network message sent at the begining of a connection to allow protocol version negotiation"
{% comment %}<!-- Other internal site links; alphabetical order -->{% endcomment %}
[bandwidth sharing guide]: /en/full-node
[bcc contribute]: /{{page.lang}}/{% translate bitcoin-core-contribute url %}
[bcc contribute code]: /{{page.lang}}/{% translate development url %}
[bcc contribute documentation]: /{{page.lang}}/{% translate bitcoin-core-contribute-documentation url %}
[bcc contribute issues]: /{{page.lang}}/{% translate bitcoin-core-contribute-issues url %}
[bcc contribute support]: /{{page.lang}}/{% translate bitcoin-core-contribute-tech-support url %}
[bcc contribute translations]: /{{page.lang}}/{% translate bitcoin-core-contribute-translations url %}
[bcc decentralized peer discovery]: /{{page.lang}}/{% translate bitcoin-core-privacy url %}#decentralized-peer-discovery
[bcc documentation]: /{{page.lang}}/{% translate bitcoin-core-help url %}#documentation
[bcc download]: /{{page.lang}}/{% translate download url %}
[bcc features]: /{{page.lang}}/{% translate bitcoin-core-features url %}
[bcc forums]: /{{page.lang}}/{% translate bitcoin-core-help url %}#forums
[bcc help]: /{{page.lang}}/{% translate bitcoin-core-help url %}
[bcc live help]: /{{page.lang}}/{% translate bitcoin-core-help url %}#live
[bcc main]: /{{page.lang}}/{% translate bitcoin-core-overview url %}
[bcc network support]: /{{page.lang}}/{% translate bitcoin-core-network-support url %}
[bcc privacy]: /{{page.lang}}/{% translate bitcoin-core-privacy url %}
[bcc privacy data leaking]: /{{page.lang}}/{% translate bitcoin-core-privacy url %}#perfect-privacy-for-received-transactions
[bcc requirements]: /{{page.lang}}/{% translate bitcoin-core-requirements url %}
[bcc user interface]: /{{page.lang}}/{% translate bitcoin-core-user-interface url %}
[bcc user interface lightweight]: /{{page.lang}}/{% translate bitcoin-core-user-interface url %}#lightweight
[bcc validation]: /{{page.lang}}/{% translate bitcoin-core-validation url %}
[bcc validation decentralization]: /{{page.lang}}/{% translate bitcoin-core-validation url %}#help-protect-decentralization
[bcc validation do you validate]: /{{page.lang}}/{% translate bitcoin-core-validation url %}#do-you-validate
[bcc validation protection]: /{{page.lang}}/{% translate bitcoin-core-validation url %}#how-validation-protects-your-bitcoins
[bcc version history]: /en/version-history
[Bitcoin Core 0.6.0]: /en/release/v0.6.0
[Bitcoin Core 0.6.1]: /en/release/v0.6.1
[Bitcoin Core 0.7.0]: /en/release/v0.7.0
@ -192,8 +220,11 @@ http://opensource.org/licenses/MIT.
[bitcoin URI subsection]: /en/developer-guide#bitcoin-uri
[bitcoind initial setup]: /en/developer-examples
[bitcoinpdf]: https://bitcoin.org/en/bitcoin-paper
[choose your wallet]: /en/choose-your-wallet
[communities]: /en/community
[core executable]: /en/download
[dev communities]: /en/development#devcommunities
[developer documentation]: /en/developer-documentation
[devex complex raw transaction]: /en/developer-examples#complex-raw-transaction
[devex payment protocol]: /en/developer-examples#payment-protocol
[devexamples]: /en/developer-examples
@ -202,12 +233,14 @@ http://opensource.org/licenses/MIT.
[devguide hardened keys]: /en/developer-guide#hardened-keys
[devguide payment processing]: /en/developer-guide#payment-processing
[devguide wallets]: /en/developer-guide#wallets
[devref]: /en/developer-reference
[devref wallets]: /en/developer-reference#wallets
[locktime parsing rules]: /en/developer-guide#locktime_parsing_rules
[Merge Avoidance subsection]: /en/developer-guide#merge-avoidance
[micropayment channel]: /en/developer-guide#term-micropayment-channel
[not a specification]: /en/developer-reference#not-a-specification
[raw transaction format]: /en/developer-reference#raw-transaction-format
[REST]: /en/developer-reference#http-rest
[RPC]: /en/developer-reference#remote-procedure-calls-rpcs
[RPCs]: /en/developer-reference#remote-procedure-calls-rpcs
[section block chain]: /en/developer-guide#block-chain
@ -227,6 +260,7 @@ http://opensource.org/licenses/MIT.
[section serialized blocks]: /en/developer-reference#serialized-blocks
[section simple raw transaction]: /en/developer-examples#simple-raw-transaction
[section verifying payment]: /en/developer-guide#verifying-payment
[secure your wallet]: /en/secure-your-wallet
[signature script modification warning]: /en/developer-reference#signature_script_modification_warning
[v0.8 chain fork]: /en/alert/2013-03-11-chain-fork
[Verification subsection]: /en/developer-guide#verifying-payment
@ -258,20 +292,42 @@ http://opensource.org/licenses/MIT.
[secp256k1]: http://www.secg.org/sec2-v2.pdf
{% comment %}<!-- Other external site links; alphabetical order -->{% endcomment %}
[#bitcoin]: https://webchat.freenode.net/?channels=bitcoin&uio=d4
[#bitcoin-dev]: https://webchat.freenode.net/?channels=bitcoin-dev&uio=d4
[#bitcoin-mining]: https://webchat.freenode.net/?channels=bitcoin-mining&uio=d4
[#bitcoin-wiki]: https://webchat.freenode.net/?channels=bitcoin-wiki&uio=d4
[0bin]: http://0bin.net/
[bcc automated testing]: https://github.com/bitcoin/bitcoin/blob/master/README.md#automated-testing
[bcc configuration]: https://en.bitcoin.it/wiki/Running_bitcoin
[bcc data directory]: https://en.bitcoin.it/wiki/Data_directory
[bcc issues]: https://github.com/bitcoin/bitcoin/issues
[bcc new issue]: https://github.com/bitcoin/bitcoin/issues/new
[bcc pulls]: https://github.com/bitcoin/bitcoin/pulls
[bcc tor]: https://en.bitcoin.it/wiki/Tor
[bcc tor hs]: https://en.bitcoin.it/wiki/Tor#Hidden_services
[BFGMiner]: https://github.com/luke-jr/bfgminer
[Bitcoin beginners]: http://www.reddit.com/r/bitcoinbeginners
[Bitcoin Core]: https://bitcoin.org/en/download
[Bitcoin Core 0.1.6]: https://github.com/bitcoin/bitcoin/commit/cc0b4c3b62367a2aebe5fc1f4d0ed4b97e9c2ac9
[Bitcoin Core 0.2.9]: https://github.com/bitcoin/bitcoin/commit/42605ce8bcc9bd01b86491c74fee14de77960868
[Bitcoin Core 0.3.11]: https://github.com/bitcoin/bitcoin/commit/343328c6b8db85e58a1feea85f0d10e62967fa19
[Bitcoin Core 0.3.15]: https://github.com/bitcoin/bitcoin/commit/c891967b6fcab2e8dc4ce0c787312b36c07efa4d
[Bitcoin Core 0.3.18]: https://github.com/bitcoin/bitcoin/commit/82201801336f64ee77851b9eaab9383ee4e442f0
[Bitcoin Core build unix]: https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
[Bitcoin Core docs directory]: https://github.com/bitcoin/bitcoin/tree/master/doc
[bitcoin core fee drop commit]: https://github.com/bitcoin/bitcoin/commit/6a4c196dd64da2fd33dc7ae77a8cdd3e4cf0eff1
[Bitcoin Core issue #2381]: https://github.com/bitcoin/bitcoin/issues/2381
[Bitcoin Core master]: https://github.com/bitcoin/bitcoin
[Bitcoin Core pull #4468]: https://github.com/bitcoin/bitcoin/pull/4468
[Bitcoin core transifex]: https://www.transifex.com/projects/p/bitcoin/
[Bitcoin reddit]: http://www.reddit.com/r/Bitcoin
[Bitcoin reddit new]: http://www.reddit.com/r/Bitcoin/new
[Bitcoin Seeder]: https://github.com/sipa/bitcoin-seeder
[Bitcoin stackexchange]: http://bitcoin.stackexchange.com
[Bitcoin stackexchange tag bitcoin-qt]: http://bitcoin.stackexchange.com/questions/tagged/bitcoin-qt
[bitcoin-documentation mailing list]: https://groups.google.com/forum/#!forum/bitcoin-documentation
[BitcoinJ]: http://bitcoinj.github.io
[BitcoinJ documentation about pending transaction safety]: https://bitcoinj.github.io/security-model#pending-transactions
[bitcoinj micropayment tutorial]: https://bitcoinj.github.io/working-with-micropayments
[block170]: https://www.biteasy.com/block/00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee
[casascius address utility]: https://github.com/casascius/Bitcoin-Address-Utility
@ -288,41 +344,63 @@ http://opensource.org/licenses/MIT.
[DNS Seed Policy]: https://github.com/bitcoin/bitcoin/blob/master/doc/dnsseed-policy.md
[docs issue]: https://github.com/bitcoin-dot-org/bitcoin.org/issues
[ECDSA]: https://en.wikipedia.org/wiki/Elliptic_Curve_DSA
[edit bandwidth sharing guide]: https://github.com/bitcoin-dot-org/bitcoin.org/edit/master/en/full-node.md
[Electrum server]: https://github.com/spesmilo/electrum-server
[Eloipool]: https://github.com/luke-jr/eloipool
[errors in docs]: https://github.com/bitcoin-dot-org/bitcoin.org/issues?q=is%3Aissue+label%3A%22Dev+Docs%22
[fake satoshi transaction]: https://www.reddit.com/r/Bitcoin/comments/3fv42j/blockchaininfo_spoofed_transactions_problem_aug_4/
[forum tech support]: https://bitcointalk.org/index.php?board=4.0
[ghash betcoin double spend]: https://bitcointalk.org/index.php?topic=321630.msg3445371
[gitian sigs]: https://github.com/bitcoin/gitian.sigs
[high-speed block relay network]: https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg03189.html
[HMAC-SHA512]: https://en.wikipedia.org/wiki/HMAC
[HTTP basic authentication]: https://en.wikipedia.org/wiki/Basic_access_authentication
[HTTP longpoll]: https://en.wikipedia.org/wiki/Push_technology#Long_polling
[information theoretic security]: https://en.wikipedia.org/wiki/Information_theoretic_security
[inherit bitcoins]: http://bitcoin.stackexchange.com/q/38692/21052
[IP-to-IP payment protocol]: https://en.bitcoin.it/wiki/IP_Transactions
[IPv4-mapped IPv6 addresses]: http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses
[irc channels]: https://en.bitcoin.it/wiki/IRC_channels
[JSON-RPC version 1.0]: http://json-rpc.org/wiki/specification
[JSON-RPC request batching]: http://www.jsonrpc.org/specification#batch
[july 2015 chain forks]: https://en.bitcoin.it/wiki/July_2015_chain_forks
[libblkmaker]: https://github.com/bitcoin/libblkmaker
[localhost]: https://en.wikipedia.org/wiki/Localhost
[lying consistently is hard]: https://groups.google.com/forum/#!msg/bitcoinj/Ys13qkTwcNg/9qxnhwnkeoIJ
[makeseeds script]: https://github.com/bitcoin/bitcoin/tree/master/contrib/seeds
[mozilla's bug reporting documentation]: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Bug_writing_guidelines#Writing_precise_steps_to_reproduce
[murmur3]: https://en.wikipedia.org/wiki/MurmurHash
[man-in-the-middle]: https://en.wikipedia.org/wiki/Man-in-the-middle_attack
[MIME]: https://en.wikipedia.org/wiki/Internet_media_type
[MIT license]: http://opensource.org/licenses/MIT
[mozrootstore]: https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/
[native irc client]: https://en.wikipedia.org/wiki/List_of_IRC_clients
[netcat]: https://en.wikipedia.org/wiki/Netcat
[nop op codes]: https://en.bitcoin.it/wiki/Script#Reserved_words
[offline transactions]: http://bitcoin.stackexchange.com/a/34122/21052
[open a pull request]: https://github.com/bitcoin-dot-org/bitcoin.org#working-with-github
[open an issue]: https://github.com/bitcoin-dot-org/bitcoin.org/issues/new
[Payment Request Generator]: http://bitcoincore.org/~gavin/createpaymentrequest.php
[Piotr Piasecki's testnet faucet]: https://tpfaucet.appspot.com/
[prime symbol]: https://en.wikipedia.org/wiki/Prime_%28symbol%29
[protobuf]: https://developers.google.com/protocol-buffers/
[python-bitcoinlib]: https://github.com/petertodd/python-bitcoinlib
[python-blkmaker]: https://gitorious.org/bitcoin/python-blkmaker
[setup tor]: https://www.torproject.org/
[SHA256]: https://en.wikipedia.org/wiki/SHA-2
[Stratum mining protocol]: http://mining.bitcoin.cz/stratum-mining
[study of SPV privacy over tor]: http://arxiv.org/abs/1410.6079
[Tor]: https://en.wikipedia.org/wiki/Tor_%28anonymity_network%29
[transifex]: https://www.transifex.com/projects/p/bitcoinorg/
[unix epoch time]: https://en.wikipedia.org/wiki/Unix_time
[URI encoded]: https://tools.ietf.org/html/rfc3986
[wiki bitcoin core compatible devices arm]: https://en.bitcoin.it/wiki/Bitcoin_Core_compatible_devices#ARM-based_Chipsets
[wiki bitcoin core documentation]: https://en.bitcoin.it/wiki/Category:Bitcoin_Core_documentation
[wiki create account]: https://en.bitcoin.it/w/index.php?title=Special:UserLogin&type=signup
[wiki enable editing]: https://en.bitcoin.it/wiki/Bitcoin_Wiki:Editing_privileges
[wiki getblocktemplate]: https://en.bitcoin.it/wiki/Getblocktemplate
[wiki proper money handling]: https://en.bitcoin.it/wiki/Proper_Money_Handling_%28JSON-RPC%29
[wiki template bitcoin core documentation]: https://en.bitcoin.it/wiki/Template:Bitcoin_Core_documentation
[wiki script]: https://en.bitcoin.it/wiki/Script
[x509]: https://en.wikipedia.org/wiki/X.509

53
_layouts/base-core.html Normal file
View File

@ -0,0 +1,53 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
---
<!DOCTYPE HTML>
<html lang="{{ page.lang }}">
{% comment %}
<!-- on non-translated pages (e.g. Download page), use conditionals to
use the base template -->
{% endcomment %}
<head>
{% include layout/base-core/html-head-jquery-css.html %}
{% include layout/base/html-head.html %}
{% include layout/base-core/html-head-extra.html %}
</head>
<body>
{% include layout/base/pagetop-detect-mobile.html %}
{% include layout/base/pagetop-alert.html %}
<div class="head"><div>
{% include layout/base/head-language-dropdown.html %}
{% include layout/base/head-mobile-menu.html %}
{% if page.lang == 'en' %}
{% include layout/base-core/head-logo.html %}
{% include layout/base/head-language-select.html %}
{% include layout/base-core/head-menu.html %}
{% else %}
{% include layout/base/head-logo.html %}
{% include layout/base/head-language-select.html %}
{% include layout/base/head-menu.html %}
{% endif %}
</div></div>
<div class="body">
{% if page.lang == 'en' %}
{% include layout/base/breadcrumbs.html %}
{% endif %}
{% include layout/base-core/content.html %}
<div class="footer">
{% include layout/base/footer-menu.html %}
{% include layout/base/footer-sponsor.html %}
{% include layout/base/footer-license.html %}
</div>
</div>
{% include layout/base-core/footer-js-extra.html %}
{% include layout/base/footer-js.html %}
</body>
</html>

View File

@ -2,8 +2,14 @@
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base
layout: base-core
lang: en
breadcrumbs:
- bitcoin
- bcc
- bcc news
- RELEASE
---
<link rel="alternate" type="application/rss+xml" href="/en/rss/releases.rss" title="Bitcoin Core releases">
<div class="versiontext">

View File

@ -57,6 +57,7 @@ blockquote{
margin-left:0;
border-left:5px solid #eee;
padding-left:15px;
font-size: 120%;
}
pre{
background-color:#f5f5f5;
@ -308,16 +309,6 @@ table td,table th{
-moz-border-radius:5px;
border-radius:5px;
}
.menusimple>li:first-child,
.menusimple>li:first-child+li,
.menusimple>li:first-child+li+li+li{
-webkit-border-bottom-left-radius:0;
-webkit-border-bottom-right-radius:0;
-moz-border-radius-bottomleft:0;
-moz-border-radius-bottomright:0;
border-bottom-left-radius:0;
border-bottom-right-radius:0;
}
.menusimple>li a,
.menusimple>li a:active,
.menusimple>li a:visited,
@ -369,6 +360,22 @@ table td,table th{
display:block;
}
.menusimple.menumain>li:first-child,
.menusimple.menumain>li:first-child+li,
.menusimple.menumain>li:first-child+li+li+li,
.menusimple.menucore>li:first-child,
.menusimple.menucore>li:first-child+li+li{
-webkit-border-bottom-left-radius:0;
-webkit-border-bottom-right-radius:0;
-moz-border-radius-bottomleft:0;
-moz-border-radius-bottomright:0;
border-bottom-left-radius:0;
border-bottom-right-radius:0;
}
.menusimple.menucore>li:first-child+li+li+li+li a{
font-weight: 700;
}
.breadcrumbs {
font-size: 75%;
padding-left: 10px;
@ -391,6 +398,10 @@ table td,table th{
line-height:1.5em;
}
h1 span.fa, h2 span.fa, h3 span.fa, h4 span.fa, h5 span.fa, h6 span.fa {
margin-right: 10px;
}
.footer{
text-align:center;
width:940px;
@ -862,7 +873,7 @@ table td,table th{
.toccontent a.term:visited code{
color:#646464;
}
.toccontent .multicode{
.multicode{
background-color:#f5f5f5;
overflow-y:auto;
padding:17px;
@ -871,7 +882,7 @@ table td,table th{
-moz-border-radius:3px;
border-radius:3px;
}
.toccontent .multicode pre{
.multicode pre{
border:0px none;
padding:0;
margin:0;
@ -903,6 +914,9 @@ table td,table th{
.anchorAf:hover a:first-child{
display:block;
}
.ui-dialog .anchorAf:hover a:first-child{
display:none;
}
.develdocdisclaimer{
padding:30px 0;
@ -981,6 +995,28 @@ br.clear {
height: 12px;
}
div.one-column {
max-width: 600px;
margin-right: auto;
margin-left: auto;
}
.one-column h2 {
margin-top: 60px;
}
.one-column h2.no_gap {
margin-top: 75px;
}
.one-column img {
max-width: 100%;
}
.one-column th {
text-align: center;
}
div.post {
max-width: 40em;
margin-right: auto;
@ -997,6 +1033,185 @@ div.post {
padding-top: 20px;
}
table.privacy-comparison td,table.privacy-comparison th{
padding:3px;
}
table.privacy-comparison td {
max-width: 34%;
}
table.privacy-comparison tr.empty {
height: 1em;
}
table.privacy-comparison td:nth-child(1n+2) {
width: 120px;
}
table.validation { width: 100%; }
table.validation tr.details td {
background-color: #F5F5F5;
padding: 10px;
}
table.validation .ui-icon {
display: inline-block;
}
table.validation tr:nth-child(even)>td {
cursor:pointer;
}
table.validation tr:nth-child(even)>td:hover {
color:#000;
}
.received_transactions td {
width: 50%;
}
#system-requirements-accordion div {
padding: 0;
}
button.js.showcolumn {
border:0;
margin: 15px;
}
.not-displayed {
display: none;
}
br.big {
margin-bottom: 50px;
}
.font2x {
font-size: 200%;
}
/********** SLIDER **********/
.sliderbox {
max-width: 940px;
margin: 0px auto 30px auto;
}
.slide-viewer {
position: relative; /* needed for IE7 */
overflow: hidden;
height: 200px;
padding-bottom: 12px;
}
.slide-group {
width: 100%;
height: 100%;
position: relative;
}
.slide {
width: 100%;
height: 100%;
display: none;
position: absolute;
}
.slide:first-child {
display: block;
}
.slide-buttons {
text-align: center;
}
.slide-buttons button {
background: transparent;
border: 0;
font-size: 150%;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.slide-buttons button.active {
background-color: #2c6fad;
color: #fff;
}
.two-column-list ul {
margin-left: 4em;
}
.two-column-list li {
list-style: none;
float: left;
width: 14em;
text-align: left;
margin-bottom: 20px;
}
.two-column-list .fa-li {
top: 0.75em;
}
.two-column-list li:nth-child(2n+1) {
margin-right: 75px;
clear: both;
}
button.js {
background: transparent;
border: 0;
padding: 0;
border-bottom: 1px dotted #2c6fad;
color: #2c6fad;
font-weight: inherit;
}
button.js:hover {
color: #63a4e1;
}
button.active {
text-decoration: underline;
}
.prevnext {
line-height: 1.5em;
}
.prevnext span:first-child {
float: left;
}
.prevnext span:last-child {
float: right;
}
.callout {
text-align: center;
border-top: thin solid #C0C0C0;
border-bottom: thin solid #C0C0C0;
}
.wallet_accordion img {
float: left;
padding-right: 30px;
padding-bottom: 10px;
}
.wallet_accordion {
text-align: left;
}
.right-hanger {
max-width: 300px;
text-align: right;
margin-left: auto;
font-weight: 700;
}
.left-float {
float: left;
}
.highlight { background: transparent; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
@ -1058,6 +1273,30 @@ div.post {
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.bggreen {
background-color: #006400;
}
.bgred {
background-color: #8B0000;
}
.bgyellow {
background-color: #B8860B;
}
.fggreen {
color: #006400;
}
.fgred {
color: #8B0000;
}
.fgyellow {
color: #B8860B;
}
.box{
border:2px dashed #4892b2;
padding:0 20px 0 20px;

View File

@ -48,6 +48,10 @@ module Jekyll
dst = locs[lang]['url'][id]
next if dst.nil? or dst == ''
src = file
## For files ending in a slash, such as path/to/dir/, give them
## the index.html file name
dst.gsub!(/\/$/, '/index')
dst = dst+'.html'
site.pages << TranslatePage.new(site, site.source, lang, '_templates', src, lang, dst)
end

View File

@ -0,0 +1,115 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base-core
id: bitcoin-core-overview
columns: 1
breadcrumbs:
- bitcoin
- Bitcoin Core
---
<link rel="alternate" type="application/rss+xml" href="/en/rss/releases.rss" title="Bitcoin Core releases">
<h1 id="bitcoin-core" class="not-displayed">{% translate bitcoin-core %}</h1>
{% capture slogan %}{% translate bitcoin-core-slogan %}{% endcapture %}
<p><img src="/img/bitcoin-core/{{page.lang}}-big-logo.svg" alt="{{slogan | strip_html }}"></p>
<br class="clear">
{% include bitcoin-core/download-bitcoin-core.html %}
<br class="clear">
<div class="show_less_more">
<div class="show_less">
<p>{% translate about1 %}</p>
</div>
<div class="show_more">
<p>{% translate about2 %}</p>
<p>{% translate about3 %}</p>
<p>{% translate about4 %}</p>
{% comment %}
<!-- If English, use text with links; else use plain text
until linked pages have been translated -->
{% endcomment %}
{% if page.lang == "en" %}
<p>In addition to improving Bitcoin's decentralization, Bitcoin Core users get
<a href="/{{page.lang}}/{% translate bitcoin-core-validation url %}">better security</a>
for their bitcoins,
<a href="/{{page.lang}}/{% translate bitcoin-core-privacy url %}">privacy features</a>
not available in other wallets, a choice of
<a href="/{{page.lang}}/{% translate bitcoin-core-user-interface url %}">user interfaces</a>,
and several other powerful features.</p>
{% else %}
<p>{% translate about5 %}</p>
{% endif %}
</div>
<p class="center"><button class="toggle_show_more_less js not-displayed"><span class="fa fa-caret-down"></span> {% translate read-more %}</button></p>
</div>
<br>
{% comment %}
<!-- If English, use list of links; else link only to the download page -->
{% endcomment %}
{% if page.lang == "en" %}
<div class="two-column-list">
<ul class="fa-ul">
<li><span class="fa-li fa fa-download fa-2x"></span>
<b><a href="/{{page.lang}}/{% translate download url %}">Download</a></b><br
>Download Bitcoin Core&nbsp;{{ site.DOWNLOAD_VERSION }}
<li><span class="fa-li fa fa-rocket fa-2x"></span>
<b><a href="/{{page.lang}}/{% translate bitcoin-core-features url %}">Features</a></b><br
>Discover what Bitcoin Core offers
<li><span class="fa-li fa fa-question fa-2x"></span>
<b><a href="/{{page.lang}}/{% translate bitcoin-core-help url %}">Get help</a></b><br
>Documentation, forums, chat rooms
<li><span class="fa-li fa fa-code-fork fa-2x"></span>
<b><a href="/{{page.lang}}/{% translate bitcoin-core-contribute url %}">Contribute</a></b><br
>Code, translations, and more
</ul>
</div>
{% else %}
<p class="center font2x"><span class="fa fa-download fa-2x"></span>
<b><a href="/{{page.lang}}/{% translate download url %}">{% translate download-bitcoin-core %}</a></b></p>
{% endif %}
<br class="clear">
<h3 id="news">{% translate news %}</h3>
{% comment %}<!-- Capture all the releases into a string and convert it to an array -->{% endcomment %}
{% capture text_releases %}
{% filter_for p in site.pages reversed sort_by:versionint category:release %}
{% if p.optional_date %}{{ p.optional_date | date:"%Y-%m-%d" }} - {% endif %}<a href="{{ p.url | replace:'.html','' }}">{{ p.title }}</a>::
{% endfilter_for %}
{% endcapture %}
{% assign array_releases = text_releases | strip_newlines | split: '::' %}
{% comment %}<!-- show the latest three releases -->{% endcomment %}
<ul>
{% for release in array_releases %}
{% if forloop.index <= 3 %}
<li>{{ release }}</li>
{% endif %}
{% endfor %}
</ul>
<p>{% translate more-news-and-rss %}</p>
<br class="clear">
<script>
if ( $( window ).width() > 400 && $( window ).height() > 600 ) {
$(".show_more").removeClass("show_more");
$(".toggle_show_more_less").removeClass("toggle_show_more_less");
}
</script>

View File

@ -2,62 +2,83 @@
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base
layout: base-core
id: development
columns: 1
breadcrumbs:
- bitcoin
- bcc
- bcc contribute
- Code
---
<!-- Note: this file is built non-deterministically -->
<h1>{% translate pagetitle %}</h1>
<p class="summary">{% translate summary %}</p>
{% if page.lang != 'en' %}<p class="summary">{% translate summary %}</p>{% endif %}
<p>{% translate involvetxt1 development %}</p>
<p>{% translate involvetxt2 development %}</p>
<div id="chatbox" class="chatbox"></div>
{% capture markdown %}
<span class="fa fa-exclamation-triangle"></span> *To report an issue,
please see the [bug reporting][bcc contribute issues] page.*
## Code Review
Bitcoin Core is security software that helps protect assets worth
billions of dollars, so every code change needs to be reviewed by
experienced developers.
It can take a long time for other developers to review your pull
requests. Remember that all reviewers are taking time away from their
own projects to review your pull requests, so be patient and respectful
of their time.
Please also consider helping to review other people's pull requests. You
don't need to be an expert in Bitcoin, the Bitcoin Core codebase, or C++
(although all these things help). There are almost always [open pull
requests][bcc pulls] that any programmer can review.
## Starter Projects
Do you want to begin coding for Bitcoin Core but don't have a specific
improvement in mind? Here are a few ideas:
- **Fix existing issues:** the [issue tracker][bcc issues] is the
best place to find a useful way to contribute to Bitcoin Core.
Before starting to write any patches for issues you find, you may
want to comment on the issue to make sure nobody else is already
working on it.
- **Write tests:** Bitcoin Core is covered by many tests, but patches
that improve test coverage are always welcome and are a great way to
build familiarity with the codebase. See the documentation about
[automated testing][bcc automated testing].
{% include references.md %}
{% endcapture %}
{% if page.lang == 'en' %}
{{ markdown | markdownify }}
{% endif %}
<h2 id="spec">{% translate spec %}</h2>
<p>{% translate spectxt %}</p>
<h2 id="coredev">{% translate coredev %}</h2>
{% if page.lang == 'en' %}
<input id="glossary_term" class="glossary_term" placeholder="Search the glossary, RPCs, and more">
{% else %}
<h2 id="coredev">{% translate coredev %}</h2>
<p>{% translate inventor %}</p>
<p>{% translate inventor %}</p>
<div class="listtable coredevtable">
<div><div>Wladimir J. van der Laan</div><div><a href="mailto:laanwj@gmail.com">laanwj@gmail.com</a></div><div><a href="/laanwj.asc">PGP</a></div></div>
<div><div>Gavin Andresen</div><div><a href="mailto:gavinandresen@gmail.com">gavinandresen@gmail.com</a></div><div><a href="/gavinandresen.asc">PGP</a></div></div>
<div><div>Jeff Garzik</div><div><a href="mailto:jgarzik@bitpay.com">jgarzik@bitpay.com</a></div><div><a href="/jgarzik-bitpay.asc">PGP</a></div></div>
<div><div>Gregory Maxwell</div><div><a href="mailto:greg@xiph.org">greg@xiph.org</a></div><div><a href="/gmaxwell.asc">PGP</a></div></div>
<div><div>Pieter Wuille</div><div><a href="mailto:pieter.wuille@gmail.com">pieter.wuille@gmail.com</a></div><div><a href="/pieterwuille.asc">PGP</a></div></div>
</div>
{% include bitcoin-core/core-committers.html %}
<h2 id="disclosure">{% translate disclosure %}</h2>
<p><a href="mailto:bitcoin-security@lists.sourceforge.net">bitcoin-security@lists.sourceforge.net</a></p>
<p>{% translate disclosuretxt %}</p>
<h2 id="involve">{% translate involve %}</h2>
<p>{% translate involvetxt1 %}</p>
<p>{% translate involvetxt2 %}</p>
<div id="chatbox" class="chatbox"></div>
<h2 id="more">{% translate more %}</h2>
<p>{% translate morechoose %}</p>
<ul class="devprojectlist">
<li><a href="https://github.com/etotheipi/BitcoinArmory">Armory</a> - A wallet with enhanced security features.</li>
<li><a href="http://bfgminer.com">BFGMiner</a> - A modular miner.</li>
<li><a href="https://en.bitcoin.it/wiki/Bitcoin_Explorer">Bitcoin Explorer</a> - A command line tool, built on libbitcoin.</li>
<li><a href="https://en.bitcoin.it/wiki/Bitcoin_Server">Bitcoin Server</a> - A full node and query server, built on libbitcoin.</li>
<li><a href="https://github.com/schildbach/bitcoin-wallet">Bitcoin Wallet</a> - A SPV wallet for Android and Blackberry.</li>
<li><a href="https://bitcoinj.github.io">bitcoinj</a> - A library for SPV wallets, written in Java.</li>
<li><a href="https://github.com/btcsuite/btcd">btcd</a> - A full node, written in Go.</li>
<li><a href="https://github.com/btcsuite/btcwallet">btcwallet</a> - A hierarchical deterministic wallet daemon, written in Go.</li>
<li><a href="https://electrum.org">Electrum</a> - A fast server-trusting wallet.</li>
<li><a href="https://github.com/luke-jr/eloipool">Eloipool</a> - A fast mining pool server application, written in Python.</li>
<li><a href="https://github.com/hivewallet">Hive</a> - A fast user-friendly SPV wallet.</li>
<li><a href="https://en.bitcoin.it/wiki/Libbitcoin">Libbitcoin</a> - A cross-platform development toolkit, written in C++.</li>
<li><a href="https://gitlab.com/bitcoin/libblkmaker">Libblkmaker</a> - A client library for the getblocktemplate mining protocol, written in C.</li>
<li><a href="https://multibit.org">MultiBit HD</a> - An international SPV wallet for desktops.</li>
<li><a href="https://github.com/NicolasDorier/NBitcoin">NBitcoin</a> - A cross-platform library, written in C#.</li>
<li><a href="https://github.com/jgarzik/picocoin">picocoin</a> - A tiny library with lightweight client and utilities, written in C.</li>
<li><a href="https://github.com/petertodd/python-bitcoinlib">python-bitcoinlib</a> - A library for structures and protocols, written in Python.</li>
<li><a href="https://gitlab.com/bitcoin/python-blkmaker">Python Blkmaker</a> - A client library for the getblocktemplate mining protocol, written in Python.</li>
<li class="more"><a onclick="librariesShow(event)" ontouchstart="librariesShow(event);" class="link-js">{% translate moremore %}</a></li>
</ul>
<h2 id="disclosure">{% translate disclosure %}</h2>
<p><a href="mailto:bitcoin-security@lists.sourceforge.net">bitcoin-security@lists.sourceforge.net</a></p>
<p>{% translate disclosuretxt %}</p>
{% endif %}
<section id="devcommunities">
<h2 id="dev-communities">{% translate devcommunities %}</h2>
@ -83,3 +104,39 @@ id: development
{% endfor %}
</div>
</section>
<h2 id="more">{% translate more %}</h2>
<p>
{% case page.lang %}
{% when 'id' or 'da' or 'de' or 'es' or 'fr' or 'it' or 'hu' or 'nl' or 'pl' or 'pt_BR' or 'ro' or 'sl' or 'sv' or 'tr' or 'el' or 'bg' or 'ru' or 'uk' or 'ar' or 'fa' or 'hi' or 'ko' or 'ja' or 'zh_CN' or 'zh_TW' %}
{% else %}
Want to contribute to a different project?
{% endcase %}
{% translate morechoose %}</p>
<ul class="devprojectlist">
<li><a href="https://github.com/etotheipi/BitcoinArmory">Armory</a> - A wallet with enhanced security features.</li>
<li><a href="http://bfgminer.com">BFGMiner</a> - A modular miner.</li>
<li><a href="https://en.bitcoin.it/wiki/Bitcoin_Explorer">Bitcoin Explorer</a> - A command line tool, built on libbitcoin.</li>
<li><a href="https://en.bitcoin.it/wiki/Bitcoin_Server">Bitcoin Server</a> - A full node and query server, built on libbitcoin.</li>
<li><a href="https://github.com/schildbach/bitcoin-wallet">Bitcoin Wallet</a> - A SPV wallet for Android and Blackberry.</li>
<li><a href="https://bitcoinj.github.io">bitcoinj</a> - A library for SPV wallets, written in Java.</li>
<li><a href="https://github.com/btcsuite/btcd">btcd</a> - A full node, written in Go.</li>
<li><a href="https://github.com/btcsuite/btcwallet">btcwallet</a> - A hierarchical deterministic wallet daemon, written in Go.</li>
<li><a href="https://electrum.org">Electrum</a> - A fast server-trusting wallet.</li>
<li><a href="https://github.com/luke-jr/eloipool">Eloipool</a> - A fast mining pool server application, written in Python.</li>
<li><a href="https://github.com/hivewallet">Hive</a> - A fast user-friendly SPV wallet.</li>
<li><a href="https://en.bitcoin.it/wiki/Libbitcoin">Libbitcoin</a> - A cross-platform development toolkit, written in C++.</li>
<li><a href="https://gitlab.com/bitcoin/libblkmaker">Libblkmaker</a> - A client library for the getblocktemplate mining protocol, written in C.</li>
<li><a href="https://multibit.org">MultiBit HD</a> - An international SPV wallet for desktops.</li>
<li><a href="https://github.com/NicolasDorier/NBitcoin">NBitcoin</a> - A cross-platform library, written in C#.</li>
<li><a href="https://github.com/jgarzik/picocoin">picocoin</a> - A tiny library with lightweight client and utilities, written in C.</li>
<li><a href="https://github.com/petertodd/python-bitcoinlib">python-bitcoinlib</a> - A library for structures and protocols, written in Python.</li>
<li><a href="https://gitlab.com/bitcoin/python-blkmaker">Python Blkmaker</a> - A client library for the getblocktemplate mining protocol, written in Python.</li>
<li class="more"><a onclick="librariesShow(event)" ontouchstart="librariesShow(event);" class="link-js"><span class="fa fa-caret-down"></span> {% translate moremore %}</a></li>
</ul>
{% if page.lang == 'en' %}
<script src="/js/devsearch.js"></script>
{% endif %}

View File

@ -2,9 +2,14 @@
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base
layout: base-core
id: download
breadcrumbs:
- bitcoin
- bcc
- Download
win32zip: "win32.zip"
win64zip: "win64.zip"
win32exe: "win32-setup.exe"

View File

@ -28,6 +28,50 @@ en:
owners: "Domain Owners"
partial_list: "Partial List"
github: "Contributors on GitHub"
bitcoin-core-overview:
title: "Bitcoin Core"
bitcoin-core: "Bitcoin Core"
bitcoin-core-slogan: "Helping <b>you</b> keep Bitcoin decentralized"
download-bitcoin-core: "Download Bitcoin Core"
about1: >
Bitcoin Core is programmed to decide which block chain contains
valid transactions. The users of Bitcoin Core only accept
transactions for that block chain, making it the Bitcoin block
chain that everyone else wants to use.
about2: >
It is these users who <b>keep Bitcoin decentralized.</b> They
individually run their own Bitcoin Core full nodes, and each of
those full nodes separately follows the exact same rules to decide
which block chain is valid.
about3: >
There's no voting or other corruptible process involved: there's
just individual software following identical rules—"math"—to
evaluate identical blocks and coming to identical conclusions
about which block chain is valid.
about4: >
This shared agreement (called consensus) allows people like you to
only accept valid bitcoins, <b>enforcing Bitcoin's rules</b> against
even the most powerful miners.
about5: >
In addition to improving Bitcoin's decentralization, Bitcoin Core
users get better security for their bitcoins, privacy features not
available in other wallets, a choice of user interfaces, and
several other powerful features.
read-more: "Read more"
news: "News"
more-news-and-rss: >
For more news, see the complete list of <a
href="/en/version-history">Bitcoin Core releases</a>. For
notifications of new releases, <a type="application/rss+xml"
href="/en/rss/releases.rss">subscribe to the RSS feed</a>.
bitcoin-for-businesses:
title: "Bitcoin for Businesses - Bitcoin"
pagetitle: "Bitcoin for Businesses"
@ -285,6 +329,7 @@ en:
involvetxt1: "Bitcoin is free software and any developer can contribute to the project. Everything you need is in the <a href=\"https://github.com/bitcoin/bitcoin\">GitHub repository</a>. Please make sure to read and follow the development process described in the README, as well as to provide good quality code and respect all guidelines."
involvetxt2: "Development discussion takes place on GitHub and the <a href=\"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev\">bitcoin-dev</a> mailing list. Less formal development discussion happens on irc.freenode.net #bitcoin-dev (<a href=\"#\" onclick=\"freenodeShow(event);\">web interface</a>, <a href=\"http://bitcoinstats.com\">logs</a>)."
more: "More free software projects"
morewant: "Want to contribute to a different project?"
morechoose: "You can choose a project to contribute to by answering a few <a href=\"http://whatcanidoforbitcoin.xyz/\">questions about your skills</a>."
moremore: "Show more..."
contributors: "Bitcoin Core contributors"
@ -831,8 +876,37 @@ en:
sponsor: "A community website sponsored by"
getstarted: "Get started with Bitcoin"
bitcoin-core: "Bitcoin Core"
menu-bcc-features: "Features"
menu-bcc-features-overview: "Overview"
menu-bcc-help: "Get Help"
menu-bcc-contribute: "Contribute"
menu-bcc-news: "News"
menu-bcc-download: "Download"
menu-bcc-validation: "Validation"
menu-bcc-privacy: "Privacy"
menu-bcc-requirements: "Requirements"
menu-bcc-user-interface: "User Interface"
menu-bcc-network-support: "Network Support"
menu-bcc-contribute-issues: "Bug reports"
menu-bcc-contribute-code: "Code"
menu-bcc-contribute-documentation: "Documentation"
menu-bcc-contribute-translations: "Translations"
menu-bcc-contribute-tech-support: "Tech Support"
url:
about-us: about-us
bitcoin-core-contribute: bitcoin-core/contribute/
bitcoin-core-contribute-documentation: bitcoin-core/contribute/documentation
bitcoin-core-contribute-issues: bitcoin-core/contribute/issues
bitcoin-core-contribute-translations: bitcoin-core/contribute/translations
bitcoin-core-contribute-tech-support: bitcoin-core/contribute/support
bitcoin-core-features: bitcoin-core/features/
bitcoin-core-help: bitcoin-core/help
bitcoin-core-network-support: bitcoin-core/features/network-support
bitcoin-core-overview: bitcoin-core/
bitcoin-core-privacy: bitcoin-core/features/privacy
bitcoin-core-requirements: bitcoin-core/features/requirements
bitcoin-core-user-interface: bitcoin-core/features/user-interface
bitcoin-core-validation: bitcoin-core/features/validation
bitcoin-for-developers: bitcoin-for-developers
bitcoin-for-individuals: bitcoin-for-individuals
bitcoin-for-businesses: bitcoin-for-businesses

View File

@ -0,0 +1,119 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
id: bitcoin-core-contribute-documentation
lang: en
layout: base-core
columns: 1
title: Documentation - Contribute to Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- bcc contribute
- Documentation
---
# Writing Bitcoin Core Documentation
Bitcoin Core documentation is spread across three projects: Bitcoin
Core, the Bitcoin Wiki, and Bitcoin.org---and is further subdivided into
different parts. The sections below briefly describe what documentation
is available and how you can contribute.
## Bitcoin Core Docs Directory
The [docs directory][bitcoin core docs directory]
contains various files describing aspects of Bitcoin Core. Almost all of
the files are meant for developers and testers rather than users, although
some (such as the build instructions) may be used by power users.
The files are all written in Markdown, which can be easily edited in
GitHub's web interface:
1. Create a GitHub account, or if you already have one, log in.
2. Find the file you want to edit. For example, [build-unix.md][bitcoin
core build unix]
3. Click the Edit icon (a pencil).
4. Make your change and click the Preview button to preview it. Revise
and edit until you're happy with it.
5. At the bottom of the page, fill out the Propose File Change form and
submit it.
*Need help getting started? Stop by the [#bitcoin-dev][] IRC chatroom
and tell us what documentation you want to write.*
## Bitcoin.org Bandwidth Sharing Guide
The [Bitcoin.org bandwidth sharing guide][bandwidth sharing guide]
currently provides instructions for how to install Bitcoin Core on
multiple operating systems, configure it to automatically start at boot,
and manually open port 8333 so it accepts incoming connections.
To contribute, you can [edit the guide][edit bandwidth sharing
guide] using the same GitHub web interface as described in the
previous section.
*Need help getting started? You can [open an issue][] or email Bitcoin.org
documentation maintainer {{site.text.bitcoin_org_docs_maintainer_email_link}}.*
## Bitcoin Wiki
The Bitcoin Wiki uses the popular MediaWiki software, so you may already
know how to edit it and create new pages. To reduce spam, you need to
[create an account][wiki create account] and then follow the
[instructions to enable editing][wiki enable editing].
Current documentation can be found in the [Bitcoin Core documentation
category][wiki bitcoin core documentation]. If you create a new page,
be sure to add it to the [Bitcoin Core documentation template][wiki
template bitcoin core documentation] and then add the following code to
the very bottom of the page:
{% raw %}{{Bitcoin Core documentation}}{% endraw %}
Adding the line above to a page will also add that page to the Bitcoin
Core documentation category.
*Need help getting started? Stop by the [#bitcoin-wiki][] IRC chatroom and
tell us what documentation you want to write.*
## Bitcoin.org RPC/REST API Reference
The [Bitcoin.org developer reference][devref] contains over 100 printed
pages worth of documentation for the Bitcoin Core RPC and REST
interfaces, which are mainly used by Bitcoin Core command line users and
developers of apps depending on Bitcoin Core.
To contribute RPC edits, the easiest way is to:
1. Go to the [Bitcoin.org developer documentation main page][developer documentation].
2. Search for the RPC you want to edit.
3. Under the subheading for the RPC, click the Edit link.
To create new RPC/REST documentation or edit the REST documentation:
1. Follow [these instructions][open a pull request] to clone the Bitcoin.org repository.
2. RPC files are in the `_includes/ref/bitcoin-core/rpcs` directory.
REST files are in the `_includes/ref/bitcoin-core/rest` directory.
New files need to be added to the list in `en/developer-reference.md`
*Need help getting started? You can [open an issue][] or email
Bitcoin.org documentation maintainer {{site.text.bitcoin_org_docs_maintainer_email_link}}.*
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous**<br>[Code][bcc contribute code]</span>
<span markdown="1">**Next**<br>[Translations][bcc contribute translations]</span>
</div>
<br class="clear">
{% include references.md %}

View File

@ -0,0 +1,40 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base-core
lang: en
id: bitcoin-core-contribute
columns: 1
title: Contribute to Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- Contribute
---
# Contributing To Bitcoin Core
Thank you for considering contributing to Bitcoin Core! We have
instructions below to help you get started contributing in several different
ways.
If want to contribute in another way, please visit the [#bitcoin-dev][]
IRC chatroom and discuss your plan with a developer.
<div markdown="block" class="two-column-list">
{:.fa-ul}
- <span class="fa fa-li fa-bug fa-2x"></span> **[Bug reports][bcc contribute issues]**<br>Report bugs, including security issues
- <span class="fa fa-li fa-code fa-2x"></span> **[Code][bcc contribute code]**<br>Write & review code
- <span class="fa fa-li fa-book fa-2x"></span> **[Documentation][bcc contribute documentation]**<br>Write documentation for users and developers
- <span class="fa fa-li fa-language fa-2x"></span> **[Translations][bcc contribute translations]**<br>Translate the user interface
- <span class="fa fa-li fa-question fa-2x"></span> **[Tech support][bcc contribute support]**<br>Support other users
</div>
<br class="clear"><br class="big">
{% include references.md %}

View File

@ -0,0 +1,69 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base-core
id: bitcoin-core-contribute-issues
columns: 1
lang: en
title: Issues - Contribute to Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- bcc contribute
- Issues
---
# Contribute Bug Reports
If you discover a bug or other problem with Bitcoin Core, please report
it. The are two different processes, [responsible disclosure](#disclosure) for
security bugs and [public issue tracking](#public-issue-tracking) for all other bugs.
<span class="fa fa-exclamation-triangle"></span> **Please don't open an
issue to ask for support.** See the [Get Help][bcc help] page instead.
<h2 id="disclosure">{% translate disclosure development %}</h2>
<p><a href="mailto:bitcoin-security@lists.sourceforge.net">bitcoin-security@lists.sourceforge.net</a></p>
<p>{% translate disclosuretxt development %}</p>
{% include bitcoin-core/core-committers.html %}
## Public Issue Tracking
For non-security problems with Bitcoin Core, please [search for similar
issues][bcc issues] and, if you don't find any, [open a new issue][bcc
new issue] providing the information listed below.
1. A clear description of the problem. If possible, please describe how
to reproduce the problem. (For general guidelines on writing steps
to reproduce, see [Mozilla's bug reporting documentation][].)
2. What version of Bitcoin Core you use (if you downloaded from
Bitcoin.org) or what commit you built using (`git log -1`) plus any
extra patches you applied.
3. Any relevant entries from your `debug.log` file. Note, this file can
contain private information, so review it before posting or ask in
the issue to email it directly to a developer rather than posting
publicly. You can publicly post logs on a [0bin service][0bin]. By
default, the `debug.log` can be found at the following locations:
- Windows: `%APPDATA%\Bitcoin\debug.log`
- OS X: `$HOME/Library/Application Support/Bitcoin/debug.log`
- Linux: `$HOME/.bitcoin/debug.log`
The best strategy to get your issue fixed quickly is to make it as easy
as possible for the development team to track down the problem and
write a fix. Providing more information and organizing it well helps
significantly.
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous**<br>[Contribute overview][bcc contribute]</span>
<span markdown="1">**Next**<br>[Code][bcc contribute code]</span>
</div>
<br class="clear">
{% include references.md %}

View File

@ -0,0 +1,76 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
id: bitcoin-core-contribute-tech-support
lang: en
layout: base-core
columns: 1
title: Support - Contribute to Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- bcc contribute
- Support
---
# Supporting Bitcoin Core Users
This site tells Bitcoin Core users where they can [go to find help][bcc
help]---but that help is provided by volunteers like you. Many questions
are asked by complete newbies, so nearly everyone with any experience
using Bitcoin Core can provide help.
Before you start providing support, you may want to familiarize yourself
with the available [documentation][bcc documentation].
## Forums
The following forums are where we believe most users ask their Bitcoin
Core questions.
- [Bitcoin StackExchange][] is a community dedicated entirely to
answering questions about Bitcoin and related technology. Many
questions about Bitcoin Core can be found under the [Bitcoin-Qt
tag][bitcoin stackexchange tag bitcoin-qt]
- [BitcoinTalk Technical Support][forum tech support] is a
sub-forum dedicated to providing help for Bitcoin Core and other
Bitcoin programs.
- [/r/Bitcoin][bitcoin reddit] is a Reddit community that occasionally
features questions about Bitcoin Core. Currently, very few questions
receive enough upvotes to be featured on the front page, but you can
always check the [new queue][bitcoin reddit new] or answer questions
on the popular Mentor Monday thread (usually posted around noon UTC
on Monday).
- [/r/BitcoinBeginners][bitcoin beginners] is a Reddit community that
prominently features questions from inexperienced Bitcoin users.
## Live
Internet Relay Chat (IRC) is the most popular way to get live online
help with Bitcoin Core. When providing links to documentation, most
chatrooms require you post full links (not links shortened using
services like TinyURL or Bit.ly).
The links below will get you started using an IRC web interface. Many
serious IRC users use a [native IRC client][].
- [#bitcoin][] is where most users should ask general questions about
Bitcoin Core.
- [#bitcoin-mining][] hosts discussion about Bitcoin mining, including
decentralized mining using Bitcoin Core as part of the system.
- For more channels, please see the [comprehensive
listing][irc channels] on the Bitcoin Wiki.
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous**<br>[Translations][bcc contribute translations]</span>
<span markdown="1">**Next**<br>[Contribute overview][bcc contribute]</span>
</div>
<br class="clear">
{% include references.md %}

View File

@ -0,0 +1,59 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
id: bitcoin-core-contribute-translations
layout: base-core
lang: en
columns: 1
title: Translations - Contribute to Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- bcc contribute
- Translations
---
# Translating Bitcoin Core
Bitcoin Core has been fully translated into over two dozen languages,
with dozens more languages partially translated---but more help is
always needed.
To contribute a translation, create a [Transifex][transifex] account and
then go to the [Bitcoin Core translation page][bitcoin core transifex].
From there you can click the Join Team button near the top of the page.
![Help translate Bitcoin](/img/bitcoin-core/transifex-1.png)
After you've joined the team, find the language you want to help
translate. Click on it and choose what Bitcoin Core release you want to
contribute to.
![Choose a language](/img/bitcoin-core/transifex-2.png)
From the page listing a specific release, you can click the Translate
button.
![Translate](/img/bitcoin-core/transifex-3.png)
On the Translation screen, click the Untranslated tab. On the left pane
will appear the English versions of text that needs translating. On the
right pane, you can enter your proposed translation.
![Choose untranslated](/img/bitcoin-core/transifex-4.png)
After saving your translation, it will be reviewed and (if accepted)
included in the next release of that version of Bitcoin Core.
*If you have any questions, please contact the translation maintainers
listed on Transifex or ask (in English) in the [#bitcoin-dev][] IRC
chatroom.*
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous**<br>[Documentation][bcc contribute documentation]</span>
<span markdown="1">**Next**<br>[Tech support][bcc contribute support]</span>
</div>
<br class="clear">
{% include references.md %}

View File

@ -0,0 +1,113 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base-core
lang: en
id: bitcoin-core-feature-overview
columns: 1
title: Features - Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- Features
end_of_page: |
<script>
start_slideshow($('#slidebox'));
</script>
---
# Bitcoin Core
{:.not-displayed}
<div id="slidebox">
<div class="slide-viewer">
<div class="slide-group">
<div class="slide slide-1">
<a href="#validation"><img src="/img/bitcoin-core/slider-validation.svg" alt="Full Validation: the best possible decentralized security" /></a>
</div>
<div class="slide slide-2">
<a href="#privacy"><img src="/img/bitcoin-core/slider-privacy.svg" alt="Strong privacy" /></a>
</div>
<div class="slide slide-3">
<a href="#requirements"><img src="/img/bitcoin-core/slider-warning.svg" alt="Requirements and warnings" /></a>
</div>
<div class="slide slide-4">
<a href="#user-interface"><img src="/img/bitcoin-core/slider-ui.svg" alt="User interface" /></a>
</div>
<div class="slide slide-5">
<a href="#network-support"><img src="/img/bitcoin-core/slider-network.svg" alt="Support the network" /></a>
</div>
</div>
</div>
<div class="slide-buttons"
><button type="image" class="slide-btn button-1" markdown="1"
><span class="fa fa-check-square-o"></span></button>
<button type="button" class="slide-btn button-2" markdown="1"
><span class="fa fa-shield"></span></button>
<button type="button" class="slide-btn button-3" markdown="1"
><span class="fa fa-bar-chart"></span></button>
<button type="button" class="slide-btn button-4" markdown="1"
><span class="fa fa-sign-in"></span></button>
<button type="button" class="slide-btn button-5" markdown="1"
><span class="fa fa-globe"></span></button
></div>
</div>
<br class="clear">
{% include bitcoin-core/download-bitcoin-core.html %}
## <span class="fa fa-check-square-o fa-lg"></span> Full Validation {#validation}
{:.no_gap}
Bitcoin Core ensures every block and transaction it accepts is valid,
increasing not only your security but also **helping prevent miners and
banks from taking control of Bitcoin.**
{:.right-hanger}
[Learn about full validation][bcc validation]
## <span class="fa fa-shield fa-lg"></span> Better Privacy {#privacy}
Bitcoin Core provides **exclusive privacy features** that can make it
hard for anyone to link you to your transactions.
{:.right-hanger}
[Discover the privacy advantages][bcc privacy]
## <span class="fa fa-bar-chart fa-lg"></span> Warning: Better Security Has Costs {#requirements}
Bitcoin Core uses more resources than other wallets, but it's still
convenient to run on most computers and Internet connections.
{:.right-hanger}
[System requirements & warnings][bcc requirements]
## <span class="fa fa-sign-in fa-lg"></span> A Better User Interface {#user-interface}
Bitcoin Core wallet has **features most other wallets don't have.** But
if you don't need them, you can use several other wallets on top of
Bitcoin Core without losing Bitcoin Core's [security][bcc validation] and
[privacy][bcc privacy] benefits.
{:.right-hanger}
[Tour the user interface][bcc user interface]
## <span class="fa fa-globe fa-lg"></span> Support The Network {#network-support}
Bitcoin Core helps support other peers. This isn't as useful as [helping
to keep Bitcoin decentralized](#validation), but it's **an easy way for
broadband users to contribute** to less well-connected users.
{:.right-hanger}
[Begin donating bandwidth][bcc network support]
<br>
{% include references.md %}

View File

@ -0,0 +1,59 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
id: bitcoin-core-donate-bandwidth
layout: base-core
lang: en
columns: 1
title: Support The Network - Bitcoin Core Features
breadcrumbs:
- bitcoin
- bcc
- bcc features
- Network Support
---
# Donate Bandwidth Using Bitcoin Core
{:.not-displayed}
![Support the network](/img/bitcoin-core/slider-network.svg)
{% include bitcoin-core/download-bitcoin-core.html %}
The Bitcoin peer-to-peer network serves both Bitcoin Core and many other
Bitcoin programs (mostly lightweight wallets). By contributing some of
your bandwidth---typically about 100 GB upload a month---you can help
support Bitcoin.
The [bandwidth sharing guide][] provides all of the details you need
to begin donating bandwidth.
## Don't Forget About Decentralization
The Bitcoin network needs more than bandwidth---it also needs people who
[actively secure][bcc validation do you validate] their bitcoins using Bitcoin Core. By
securing your bitcoins with a full node like Bitcoin Core, you [help
protect Bitcoin's decentralization][bcc validation decentralization] for
yourself and other Bitcoin users.
You can help protect decentralization instead of donating bandwidth by
simply using Bitcoin Core as your main wallet. Or, even better, you can
both donate bandwidth and protect decentralization at the same time by
using Bitcoin Core as your main wallet while also following the
instructions in the [bandwidth sharing guide][].
## Thank You
Whether you choose to donate bandwidth, protect decentralization, or
both, please know that your fellow Bitcoin users thank you. Without
volunteers like you, Bitcoin would never have come as far as it has.
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous Feature**<br>[User interface][bcc user interface]</span>
<span markdown="1">**Next feature**<br>[Feature overview][bcc features]</span>
</div>
<br class="clear">
{% include references.md %}

View File

@ -0,0 +1,465 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
id: bitcoin-core-privacy
layout: base-core
lang: en
columns: 1
title: Privacy - Bitcoin Core Features
breadcrumbs:
- bitcoin
- bcc
- bcc features
- Privacy
third_party_privacy:
## Alphabetical order
- name: "Bitcoin Core"
css_class: bitcoin_core
group: default-show
tracks_real_names: "no"
knows_your_bitcoin_balance: "no"
susceptible_to_taint_analysis: "yes"
tracks_payments: "no"
tracks_amounts: "no"
tracks_ip_addresses: "no"
- name: "BitGo"
css_class: bitcoin_go
group: not-displayed
tracks_real_names: "no"
knows_your_bitcoin_balance: "yes"
susceptible_to_taint_analysis: "yes"
tracks_payments: "yes"
tracks_amounts: "yes"
tracks_ip_addresses: "yes"
- name: BitPay
css_class: bitpay
group: not-displayed
tracks_real_names: "yes"
knows_your_bitcoin_balance: "yes"
susceptible_to_taint_analysis: "no"
tracks_payments: "yes"
tracks_amounts: "yes"
tracks_ip_addresses: "yes"
- name: Blockchain.info
css_class: blockchain_info
group: not-displayed
tracks_real_names: "no"
knows_your_bitcoin_balance: "yes"
susceptible_to_taint_analysis: "yes"
tracks_payments: "yes"
tracks_amounts: "yes"
tracks_ip_addresses: "yes"
- name: Coinbase
css_class: coinbase
group: default-show
tracks_real_names: "yes"
knows_your_bitcoin_balance: "yes"
susceptible_to_taint_analysis: "no"
tracks_payments: "yes"
tracks_amounts: "yes"
tracks_ip_addresses: "yes"
- name: GreenAddress
css_class: greenaddress
group: not-displayed
tracks_real_names: "no"
knows_your_bitcoin_balance: "yes"
susceptible_to_taint_analysis: "yes"
tracks_payments: "yes"
tracks_amounts: "yes"
tracks_ip_addresses: "yes"
- name: Ninki
css_class: ninki
group: not-displayed
tracks_real_names: "no"
knows_your_bitcoin_balance: "yes"
susceptible_to_taint_analysis: "yes"
tracks_payments: "yes"
tracks_amounts: "yes"
tracks_ip_addresses: "yes"
---
# Bitcoin Core's Excellent Privacy
{:.not-displayed}
![Excellent privacy](/img/bitcoin-core/slider-privacy.svg)
{% include bitcoin-core/download-bitcoin-core.html %}
> What if every time you spent or received cash, all the transaction
> details were published to your Twitter or Facebook feed for all your
> friends to see? You probably wouldn't want to use cash any more.
Every confirmed Bitcoin transaction is published to the block chain
where anyone can see it. So **why do people still use Bitcoin?** And why
do many of them believe that Bitcoin is a private way of sending money?
One reason is that Bitcoin Core and some other Bitcoin software tries to
avoid associating your real-world identity with the transactions you
make. The difference looks like this:
![Privacy difference: pseudonymous transactions](/img/bitcoin-core/privacy-difference.svg)
The second type of transaction (a pseudonymous transaction) only provides
practical privacy if nobody can figure out that "5a35b" is really Alice.
It's up to your wallet to prevent anyone from making that connection.
See below for how Bitcoin Core's privacy compares to other wallets.
## No Sign-Up Required
Third-party Bitcoin services can both increase and decrease your
privacy. They can increase it by mixing your transactions with those of
other users; they can decrease it by tracking your activity and directly
associating it with your real name or other identifying information.
<p class="center">
Click an entry below to show it:<br>
{% for service in page.third_party_privacy %}
{% if service.name != 'Bitcoin Core' %}
<button
{% if service.group == "default-show" %}
class="js showcolumn active"
{% else %}
class="js showcolumn"
{% endif %}
id="{{service.css_class}}"
>{{service.name}}</button>
{% endif %}
{% endfor %}
</p>
<table class="privacy-comparison">
{% comment %}
<!-- Don't overdo it! Limit table to a total of seven content rows, with a
maximum of five content rows in each category. -->
{% endcomment %}
<tr>
<th markdown="span" colspan="99">Who knows your information? **Just you**{:.fggreen} or also a **service provider?**{:.fgred}</th>
</tr>
<tr>
<th></th>
{% for service in page.third_party_privacy %}
{% if service.name %}
<th class="{{service.css_class}} {{service.group}}">{{service.name}}</th>
{% else %}
{% die "Some service doesn't have a name" %}
{% endif %}
{% endfor %}
</tr>
<tr>
<td>Your real name</td>
{% for service in page.third_party_privacy %}
{% case service.tracks_real_names %}
{% when "yes" %}
<td class="bgred {{service.css_class}} {{service.group}}"></td>
{% when "no" %}
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
{% when "maybe" %}
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
{% else %}
{% die "missing service information" %}
{% endcase %}
{% endfor %}
</tr>
<tr>
<td>Your bitcoin balance</td>
{% for service in page.third_party_privacy %}
{% case service.knows_your_bitcoin_balance %}
{% when "yes" %}
<td class="bgred {{service.css_class}} {{service.group}}"></td>
{% when "no" %}
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
{% when "maybe" %}
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
{% else %}
{% die "missing service information" %}
{% endcase %}
{% endfor %}
</tr>
<tr>
<td>Who you pay, and/or who pays you (in some cases)</td>
{% for service in page.third_party_privacy %}
{% case service.tracks_payments %}
{% when "yes" %}
<td class="bgred {{service.css_class}} {{service.group}}"></td>
{% when "no" %}
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
{% when "maybe" %}
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
{% else %}
{% die "missing service information" %}
{% endcase %}
{% endfor %}
</tr>
<tr>
<td>How much you spend and/or receive</td>
{% for service in page.third_party_privacy %}
{% case service.tracks_amounts %}
{% when "yes" %}
<td class="bgred {{service.css_class}} {{service.group}}"></td>
{% when "no" %}
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
{% when "maybe" %}
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
{% else %}
{% die "missing service information" %}
{% endcase %}
{% endfor %}
</tr>
<tr>
<td>The IP address your connection came from</td>
{% for service in page.third_party_privacy %}
{% case service.tracks_ip_addresses %}
{% when "yes" %}
<td class="bgred {{service.css_class}} {{service.group}}"></td>
{% when "no" %}
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
{% when "maybe" %}
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
{% else %}
{% die "missing service information" %}
{% endcase %}
{% endfor %}
</tr>
<tr class="empty"></tr>
<tr>
<th markdown="span" colspan="99">Who can guess your information? **Just you**{:.fggreen} or also **people
you trade with?**{:.fgred}</th>
</tr>
<tr>
<th></th>
{% for service in page.third_party_privacy %}
{% if service.name %}
<th class="{{service.css_class}} {{service.group}}">{{service.name}}</th>
{% else %}
{% die "Some service doesn't have a name" %}
{% endif %}
{% endfor %}
</tr>
<tr>
<td>Other transactions you made or received</td>
{% for service in page.third_party_privacy %}
{% case service.susceptible_to_taint_analysis %}
{% when "yes" %}
<td class="bgred {{service.css_class}} {{service.group}}"></td>
{% when "no" %}
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
{% when "maybe" %}
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
{% else %}
{% die "missing service information" %}
{% endcase %}
{% endfor %}
</tr>
</table>
## Perfect Privacy for Received Transactions
There are {{site.text.total_tx_count_in_millions}} million transactions on the Bitcoin block
chain. How do you find which ones pay you? Here are some common
options:
<table class="received_transactions">
<tr>
<td class="center" markdown="span">**Ask bankers**{:.fgred}<br
>They'll monitor your every transaction<br><br
><button class="popup js" data-container="bitcoin_bank_receiving">Bitcoin banks</button></td>
<td class="center" markdown="span">**Ask random nodes**{:.fgred}<br
>Some of which sell your data<br><br
><button class="popup js" data-container="bloom_filter_receiving">P2P lightweight wallets</button></td>
</tr>
<tr>
<td class="center" markdown="span">**Ask a free service**{:.fgred}<br
>(Actually, some do care about privacy)<br><br
><button class="popup js" data-container="electrum_style_receiving">Client lightweight wallets</button></td>
<td class="center" markdown="span">**Get all {{site.text.total_tx_count_in_millions}} million transactions**{:.fggreen}<br
>For **perfect** receiving privacy<br><br
>**Bitcoin Core**</td>
</tr>
</table>
Bitcoin Core downloads all {{site.text.total_tx_count_in_millions}} million transactions on the Bitcoin block
chain and processes them to find which transactions pay you.
This currently takes about {{site.text.typical_ibd_time_in_hours}} hours the first time
you start Bitcoin Core and about {{site.text.typical_144_block_catchup_time_in_minutes}}
minutes a day to keep updated, but it gives you what scientists call
**<button class="popup js" data-container="information_theoretic_privacy">information-theoretic (perfect) privacy</button>**
against eavesdroppers for received transactions.
## Strong Privacy for Sent Transactions
To put a transaction on the block chain, you must send it publicly---but
how you send it can make a big difference.
![Sending privacy](/img/bitcoin-core/sending-privacy.svg)
**Can you guess who made which transactions?** Nearly all peer-to-peer
lightweight clients today make no attempt to obscure their sent
transactions. They simply send them to some or all of their peers.
Bitcoin Core does much better. By default, it relays transactions for
all of its peers---thousands of separate transactions a day under common
conditions---which allows it both [support the peer-to-peer network][bcc
network support] and confuse anti-privacy organizations that try to
track your transactions.
## Tor Compatible
The Tor anonymity network helps disassociate your online activity from
your IP address (which is often closely associated with your real name).
This significantly increases your ability to confound anti-privacy
organizations.
Once you [setup Tor][], using it with Bitcoin Core is [easy][bcc
tor]. If you also [setup a Tor hidden service][bcc tor hs], you will
be able to [connect mobile clients][bcc user interface lightweight]
to your Bitcoin Core full node for increased security and privacy
wherever you go.
{:.right-hanger}
[Start using Tor today <span class="fa fa-external-link-square"></span>][setup tor]
## Decentralized Peer Discovery
The first time any Bitcoin program connects to the peer-to-peer network,
it has to ask a centralized authority for a list of recommended peers.
Once the program gets on the network, it can ask its peers for more
recommendations in a fully decentralized way---but
<button class="popup js" data-container="spv_decentralized_peer">most</button>
lightweight wallets don't bother.
<table class="center_header">
<tr>
<th class="fgred">P2P Lightweight Wallets</th>
<th class="fggreen">Bitcoin Core</th>
</tr>
<tr>
<td>Asks the same centralized services every time program is
restarted. This can be faster.</td>
<td>Uses the peer-to-peer network to independently discover new
peers. Uses found peers on restart.</td>
</tr>
</table>
This allows the centralized authority to connect lightweight wallets to
dishonest peers that can **completely destroy lightweight transaction
privacy.** Those dishonest peers can work with dishonest miners to
**weaken lightweight security too.**
Bitcoin Core prefers decentralized peer discovery, so after the first
time it starts, it no longer has to trust the centralized authority.
Isn't that worth occasionally starting up a few seconds slower?
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous Feature**<br>[Validation][bcc validation]</span>
<span markdown="1">**Next feature**<br>[Requirements][bcc requirements]</span>
</div>
<br class="clear">
<div class="not-displayed">
<div id="bitcoin_bank_receiving" title="Bitcoin Bank Receiving Privacy" markdown="block">
![Bitcoin Core receiving privacy features](/img/bitcoin-core/bank-receiving-privacy.svg)
When you receive bitcoins to a Bitcoin bank, the money is sent to one of
the bank's addresses---not your own---which can give you excellent
privacy against random strangers.
However, the bank knows you received the transaction and they can likely
also see any information you associate with the transaction, such as the
sender's name or another note you attach to the transaction.
The bank may also be required by law to disclose information about your
account. They can also sell your information or have a hacker steal your
information.
</div>
<div id="bloom_filter_receiving" title="Bloom Filter Privacy" markdown="block">
![Receiving privacy](/img/bitcoin-core/receiving-privacy.svg)
By only asking for payments related to your wallet, plus maybe a few
others as bloom filter camouflage, lightweight wallets may reveal who you
paid, who paid you, and what your current bitcoin balance is.
> A [2014 study of lightweight clients][study of SPV privacy over tor]
> said, "Our results show that bloom filters incur serious privacy
> leakage in existing SPV client implementations [...] such an
> information leakage might severely harm the privacy of users" **Nearly
> all lightweight clients are still vulnerable today.**
**Learn more:** ["Lying consistently is hard"][lying consistently is hard]
</div>
<div id="electrum_style_receiving" title="Client Lightweight Wallet Receiving Privacy" markdown="block">
![Electrum-style receiving privacy](/img/bitcoin-core/electrum-receiving-privacy.svg)
Some lightweight wallets don't connect to the Bitcoin peer-to-peer (P2P)
network. Instead, they make a (usually secure) connection to a single
server that provides block chain data.
The wallet tells the server all of its addresses, and the server replies
with all of the transactions that belong to the wallet. This explicitly
reveals all of your addresses, which is bad for your privacy---but it
only gives that information to one server, as long as you don't change
servers later.
The server can, of course, give away your information and further
reduce your privacy. However, as of
{{site.text.assertion_month | date: "%B %Y"}}, most of these types of
servers are run by volunteers who likely want to help protect your
privacy, so this model can be more private than bank wallets or P2P
lightweight wallets.
</div>
<div id="spv_decentralized_peer" title="P2P Decentralized Peer Discovery" markdown="block">
The following P2P lightweight wallets use decentralized peer discovery
by default.
- BreadWallet
If you know of another compliant lightweight wallet, please [tell us
about it][docs issue].
</div>
<div id="information_theoretic_privacy" title="Information-Theoretic Privacy" markdown="block">
Information-theoretic privacy means that the privacy can't be broken even
if an attacker has unlimited computing resources.
**Learn more:** [Information theoretic security][] (Wikipedia)
</div>
</div>
{% include references.md %}

View File

@ -0,0 +1,229 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base-core
lang: en
columns: 1
id: bitcoin-core-requirements
title: Requirements And Warnings - Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- bcc features
- Requirements
---
# Bitcoin Core Requirements And Warnings
{:.not-displayed}
![Bitcoin Core requirements and warnings](/img/bitcoin-core/slider-warning.svg)
{% include bitcoin-core/download-bitcoin-core.html %}
Bitcoin Core gives you increased [security][bcc validation] and
[privacy][bcc privacy] at a cost. You need to [take
responsibility](#wallet-responsibility-checklist) for the security of
your bitcoins, meet higher [minimum system
requirements](#system-requirements), and beware of some [possible
problems](#possible-problems).
![Warning icon](/img/icons/icon_warning.svg)
**No matter what Bitcoin software you use,** you should never
buy more bitcoins than you can afford to lose. Bitcoin is still an
experimental system and bitcoins remain a risky investment.
## Wallet Responsibility Checklist
Bitcoin Core puts you in charge of your wallet, which means your
bitcoins are at risk unless you complete certain tasks:
{% comment %}
<!-- Note: the short pop-ups below are a temporary measure. I (@harding) plan
to write a Bitcoin Core user guide for the site that will provide more
detailed instructions for at least some of these things. -->
{% endcomment %}
- <button class="popup js" data-container="backup_your_keys">Backup your keys</button>
- Make sure your <button class="popup js" data-container="secure_your_wallet">wallet is secure</button>
- Setup an <button class="popup js" data-container="offline_wallet">offline wallet</button>
(cold storage) for significant amounts of bitcoins
- Watch for [security notifications](/en/alerts)
- Allow your heirs to <button class="popup js" data-container="bitcoin_inheritance">receive your bitcoins</button>
if you die or become incapacitated
If you need help with any step, please ask for assistance in any of
Bitcoin's [friendly forums][bcc forums] or [live chatrooms][bcc live
help].
## System Requirements
{% assign DISK='<span class="fa fa-li fa-hdd-o fa-2x"></span> **Disk space**<br>' %}
{% assign DOWNLOAD='<span class="fa fa-li fa-download fa-2x"></span> **Download**<br>' %}
{% assign UPLOAD='<span class="fa fa-li fa-upload fa-2x"></span> **Upload**<br>' %}
{% assign MEMORY='<span class="fa fa-li fa-database fa-2x"></span> **Memory (RAM)**<br>' %}
{% assign SYSTEM='<span class="fa fa-li fa-desktop fa-2x"></span> **System**<br>' %}
{% assign OS='<span class="fa fa-li fa-windows fa-2x"></span> **Operating system**<br>' %}
{% assign FOOTNOTE='<b>*</b>' %}
{% capture INITIAL_DOWNLOAD %}<b>*</b> Plus a one-time {{site.text.chain_gb}} GB download the first time you start Bitcoin Core.{% endcapture %}
<div markdown="block" class="two-column-list" id="system-requirements-accordion">
### Bare Minimum (With Default Settings)
<div markdown="block">
{:.fa-ul}
- {{DISK}} {{site.text.bitcoin_datadir_gb}} GB
- {{DOWNLOAD}} 250 MB/day (8 GB/month){{FOOTNOTE}}
- {{UPLOAD}} 5 GB/day (150 GB/month)
- {{MEMORY}} 512 MB
- {{SYSTEM}} Desktop<br
>Laptop<br
>[Some ARM chipsets][wiki bitcoin core compatible devices arm] >1 GHz
- {{OS}} Windows 7/8.x<br
>Mac OS X<br
>Linux<br
>Some BSDs
<br class="clear">
{{INITIAL_DOWNLOAD}}
</div>
### Bare Minimum (With Custom Settings)
<div markdown="block">
{:.fa-ul}
- {{DISK}} {{site.text.bitcoin_datadir_gb_pruned}} GB
- {{DOWNLOAD}} 150 MB/day (5 GB/month){{FOOTNOTE}}
- {{UPLOAD}} 10 MB/day (300 MB/month)
- {{MEMORY}} 256 MB
- {{SYSTEM}} Desktop<br
>Laptop<br
>[Most ARM chipsets][wiki bitcoin core compatible devices arm]
- {{OS}} Windows 7/8.x<br
>Mac OS X<br
>Linux<br
>Some BSDs
<br class="clear">
{{INITIAL_DOWNLOAD}}
**Learn more:** [Bitcoin Core configuration options][bcc configuration]
</div>
### Minimum Recommended
<div markdown="block">
{:.fa-ul}
- {{DISK}} {{site.text.bitcoin_datadir_gb}} GB
- {{DOWNLOAD}} 500 MB/day (15 GB/month){{FOOTNOTE}}
- {{UPLOAD}} 5 GB/day (150 GB/month)
- {{MEMORY}} 1 GB
- {{SYSTEM}} Desktop<br
>Laptop<br
>[Some ARM chipsets][wiki bitcoin core compatible devices arm] >1 GHz
- {{OS}} Windows 7/8.x<br
>Mac OS X<br
>Linux
<br class="clear">
{{INITIAL_DOWNLOAD}}
</div>
</div>
## Possible Problems
{% include bitcoin-core/bitcoin-core-possible-problems.md %}
<div class="not-displayed">
<div id="backup_your_keys" title="Backup Your Keys" markdown="block">
By default, you need to backup Bitcoin Core after every 100
transactions. This includes both transactions you send as well as
payments you request (whether or not you actually received the payment).
For example, you need to backup after sending 33 payments and requesting
67 payments (even though you only received 60 payments).
Bitcoin Core can be configured to allow you to go more transactions
between backups. See the [`-keypool` setting][bcc configuration].
</div>
<div id="secure_your_wallet" title="Secure Your Wallet" markdown="block">
Anyone who gets access to your wallet can steal your bitcoins. The
first line of defense against this is encrypting your wallet, an option
from the File menu in the graphical interface.
However, encrypting may not be enough if your computer becomes infected
by malware. Learn about <button class="popup js" data-container="offline_wallet">offline wallets</button>
for security against this type of attack.
In addition to securing your wallet, you also need to keep your backups
secure. Anyone who gets access to them can also steal your bitcoins.
**Learn more:** [secure your wallet][]
</div>
<div id="offline_wallet" title="Offline Wallet" markdown="block">
Computers that connect to the Internet are frequently hacked or infected
with bitcoin-stealing malware. Computers that never connect to the
Internet are a much more secure location for your bitcoins.
Bitcoin Core can be run on an always-offline computer, creating an
offline wallet (also called a cold wallet). The offline wallet will
securely store the private keys, while a separate online Bitcoin Core
wallet will send and receive transactions.
**Learn more:** [Creating and signing offline transactions][offline transactions]
</div>
<div id="bitcoin_inheritance" title="Bitcoin Inheritance" markdown="block">
Your Bitcoin wallet isn't like a bank account---it won't automatically
go to your heirs if you die or become disabled.
You have to plan ahead and make sure there is a way for your heirs
to access your wallet backups when you're no longer available.
**Learn more:** [Estate planning: how can I ensure my bitcoins are inheritable?][inherit bitcoins]
</div>
</div>
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous Feature**<br>[Privacy][bcc privacy]</span>
<span markdown="1">**Next feature**<br>[User interface][bcc user interface]</span>
</div>
<br class="clear">
{% include references.md %}

View File

@ -0,0 +1,367 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
id: bitcoin-core-user-interface
layout: base-core
lang: en
columns: 1
title: User Interface - Bitcoin Core Features
breadcrumbs:
- bitcoin
- bcc
- bcc features
- Interface
---
# Bitcoin Core's User Interface
{:.not-displayed}
![Bitcoin Core User Interface](/img/bitcoin-core/slider-ui.svg)
{% include bitcoin-core/download-bitcoin-core.html %}
Bitcoin Core has a built in wallet with [graphical](#graphical) and
[command line/API](#cli) modes. It can also simultaneously support multiple
lightweight wallets with similar [security][bcc validation] and
[privacy][bcc privacy] to its built-in wallet.
![Multiple wallet support](/img/bitcoin-core/multi-wallet-support.svg)
**Warning:** you only get the security and privacy benefits in supported
lightweight wallets if they make a secure and private connection to your
Bitcoin Core *every* time you use them. This usually requires special
configuration.
## Bitcoin Core Wallet GUI (Graphical) {#graphical}
{% comment %}<!-- Limit to a maximum of 10 features to avoid overwhelming the reader -->{% endcomment %}
<div markdown="block" class="two-column-list">
{:.fa-ul}
- <span class="fa fa-li fa-desktop fa-2x"></span> **<button class="popup js" data-container="gui_overview">Clear overview</button>**<br
>See your current balance and recent transactions
- <span class="fa fa-li fa-toggle-on fa-2x"></span> **<button class="popup js" data-container="gui_fee_slider">Fee slider</button>**<br
>Easily choose between low fees and fast confirmation
- <span class="fa fa-li fa-btc fa-2x"></span> **<button class="popup js" data-container="gui_coin_control">Coin control</button>**<br
>Enhance privacy or save money by choosing your inputs
- <span class="fa fa-li fa-qrcode fa-2x"></span> **<button class="popup js" data-container="gui_qr_codes">QR codes</button>**<br
>Generate QR codes to receive payment
- <span class="fa fa-li fa-file-text-o fa-2x"></span> **<button class="popup js" data-container="gui_unique_invoices">Unique invoices</button>**<br
>Easily track who paid you
- <span class="fa fa-li fa-shield fa-2x"></span> **<button class="popup js" data-container="gui_proxy_configuration">Proxy configuration</button>**<br
>Use Tor or a proxy for privacy
- <span class="fa fa-li fa-bar-chart fa-2x"></span> **<button class="popup js" data-container="gui_network_monitoring">Network monitoring</button>**<br
>Track how much bandwidth you use
- <span class="fa fa-li fa-power-off fa-2x"></span> **<button class="popup js" data-container="gui_watch_only">Watch-only support</button>**<br
>Track bitcoins stored safely offline
</div>
<br class="clear">
## Bitcoin Core Wallet RPC/REST (CLI) {#cli}
{% comment %}<!-- Limit to a maximum of 10 features to avoid overwhelming the reader -->{% endcomment %}
<div markdown="block" class="two-column-list">
{:.fa-ul}
- <span class="fa fa-li fa-plus-square-o fa-2x"></span> **<button class="popup js" data-container="rpc_getnewaddress">GetNewAddress</button>**<br
>Get a new address for receiving payment
- <span class="fa fa-li fa-area-chart fa-2x"></span> **<button class="popup js" data-container="rpc_getbalance">GetBalance</button>**<br
>Instantly see your available Bitcoin balance
- <span class="fa fa-li fa-arrows fa-2x"></span> **<button class="popup js" data-container="rpc_sendmany">SendMany</button>**<br
>Send a single payment to multiple addresses
- <span class="fa fa-li fa-list fa-2x"></span> **<button class="popup js" data-container="rpc_listunspent">ListUnspent</button>**<br
>See what received transactions you can spend
- <span class="fa fa-li fa-share-square-o fa-2x"></span> **<button class="popup js" data-container="rpc_rawtx">Create/Sign/Send</button>**<br
>Create and send raw transactions
- <span class="fa fa-li fa-bell-o fa-2x"></span> **<button class="popup js" data-container="notification">Notification</button>**<br
>Be notified of new blocks and transactions
</div>
<br class="clear">
**Learn more:** documentation for the [RPC][rpc] and [REST][rest] interfaces
## Lightweight Wallets Using Bitcoin Core {#lightweight}
Lightweight wallets usually connect to several random full nodes (like
Bitcoin Core) to send and receive all of their data. In the process they
[leak private data][bcc privacy data leaking] and make themselves more
[vulnerable to attacks][bcc validation protection].
![Non-private connection](/img/bitcoin-core/connection-types-p2p-spv.svg)
But it's also possible to connect certain lightweight wallets solely to
your own Bitcoin Core full node, called a trusted peer. If you do this
with a secure and private connection every time you use that
lightweight wallet, you'll get most of the security and privacy
benefits of a full node as well as [help protect decentralization][bcc
validation decentralization].
![Secure and private connection](/img/bitcoin-core/connection-types-trusted-peer.svg)
<br>
### Trusted Peer Support {#trusted-peer}
The following wallets can securely connect to a trusted peer.
<div markdown="block" class="wallet_accordion">
{% comment %}<!-- Put wallets in alphabetical order -->{% endcomment %}
### Armory
<div markdown="block">
![Armory screenshot](/img/screenshots/armory.png)
{% translate walletarmory choose-your-wallet %}
**No configuration necessary:** Armory uses a local Bitcoin Core full
node by default.
{% comment %}
<!-- TODO/Someday: move wallet yaml into _data directory so we can pull
URLs and other info from it -->
{% endcomment %}
{:.right-hanger}
[Get Armory <span class="fa fa-external-link-square"></span>](https://bitcoinarmory.com/)
</div>
### GreenBits
<div markdown="block">
![GreenBits screenshot](/img/screenshots/greenbits.png)
GreenBits is a fast and easy to use wallet. Enjoy improved security with
a minimal/zero trust approach, optional hardware wallets support,
multisignature based 2FA and spending limits functionality.
**Requires you setup a [Tor .onion address][bcc tor hs].**
1. Open the GreenBits app
2. Go to the configuration screen
3. Choose to *Enable SPV* (default) and tap *Only connect to a
trusted peer*.
4. Enter your .onion address in the *trusted peer* field.
5. Restart the app.
Note that GreenAddress will still be able to see your payments; however,
you'll have enhanced security as well as privacy from random peers on
the Bitcoin network.
{:.right-hanger}
[Get GreenBits <span class="fa fa-external-link-square"></span>](https://play.google.com/store/apps/details?id=com.greenaddress.greenbits_android_wallet)
</div>
### mSigna
<div markdown="block">
![mSigma screenshot](/img/screenshots/msigna.png)
{% translate walletmsigna choose-your-wallet %}
**No configuration necessary:** just install Bitcoin Core on the same
computer you plan to use mSigna, wait for Bitcoin Core to sync the block
chain, and then start mSigna---it will automatically connect to your
Bitcoin Core full node.
{:.right-hanger}
[Get mSigna <span class="fa fa-external-link-square"></span>](https://ciphrex.com/redirect/?referer=bitcoin.org)
</div>
</div>
<div class="not-displayed">
<div id="gui_overview" title="Wallet Overview" markdown="block">
![Clear overview](/img/bitcoin-core/clear-overview.png)
</div>
<div id="gui_fee_slider" title="Fee Slider" markdown="block">
![Fee slider](/img/bitcoin-core/fee-slider.png)
</div>
<div id="gui_coin_control" title="Coin Control" markdown="block">
![Coin control](/img/bitcoin-core/coin-control.png)
</div>
<div id="gui_qr_codes" title="QR Codes" markdown="block">
![QR codes](/img/bitcoin-core/qr-codes.png)
</div>
<div id="gui_unique_invoices" title="Unique Invoices" markdown="block">
![Unique invoice](/img/bitcoin-core/unique-invoice.png)
</div>
<div id="gui_proxy_configuration" title="Proxy Configuration" markdown="block">
![Proxy configuration](/img/bitcoin-core/proxy-configuration.png)
</div>
<div id="gui_network_monitoring" title="Network monitoring" markdown="block">
![Network monitoring](/img/bitcoin-core/network-monitoring.png)
</div>
<div id="gui_watch_only" title="Watching-only Wallets" markdown="block">
![Fee slider](/img/bitcoin-core/watching-only.png)
</div>
<div id="rpc_getnewaddress" title="GetNewAddress" markdown="block">
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoin-cli -testnet getnewaddress "doc test"
{% endhighlight %}
{% highlight text %}
mft61jjkmiEJwJ7Zw3r1h344D6aL1xwhma
{% endhighlight %}
</div>
</div>
<div id="rpc_getbalance" title="GetBalance" markdown="block">
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoin-cli -testnet getbalance
{% endhighlight %}
{% highlight json %}
1.99900000
{% endhighlight %}
</div>
</div>
<div id="rpc_sendmany" title="SendMany" markdown="block">
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoin-cli -testnet sendmany \
"test1" \
'''
{
"mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN": 0.1,
"mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe": 0.2
} ''' \
6 \
"Example Transaction"
{% endhighlight %}
{% highlight text %}
ec259ab74ddff199e61caa67a26e29b13b5688dc60f509ce0df4d044e8f4d63d
{% endhighlight %}
</div>
</div>
<div id="rpc_listunspent" title="ListUnspent" markdown="block">
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoin-cli -testnet listunspent 6 99999999 '''
[
"mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe"
]
'''
{% endhighlight %}
{% highlight json %}
[
{
"txid" : "d54994ece1d11b19785c7248868696250ab195605b469632b7bd68130e880c9a",
"vout" : 1,
"address" : "mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe",
"account" : "test label",
"scriptPubKey" : "76a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac",
"amount" : 0.00010000,
"confirmations" : 6210,
"spendable" : true
}
]
{% endhighlight %}
</div>
</div>
<div id="rpc_rawtx" title="Create/Sign/Spent Raw Transactions" markdown="block">
Create a raw transaction:
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoin-cli -testnet createrawtransaction '''
[
{
"txid": "1eb590cd06127f78bf38ab4140c4cdce56ad9eb8886999eb898ddf4d3b28a91d",
"vout" : 0
}
]''' '{ "mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe": 0.13 }'
{% endhighlight %}
{% highlight text %}
01000000011da9283b4ddf8d89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e0000000000ffffffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000
{% endhighlight %}
</div>
Sign the above raw transaction:
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoin-cli -testnet signrawtransaction 01000000011da9283b4ddf8d\
89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e0000000000ffff\
ffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a51\
59f58488ac00000000
{% endhighlight %}
{% highlight json %}
{
"hex" : "01000000011da9283b4ddf8d89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e000000006a47304402200ebea9f630f3ee35fa467ffc234592c79538ecd6eb1c9199eb23c4a16a0485a20220172ecaf6975902584987d295b8dddf8f46ec32ca19122510e22405ba52d1f13201210256d16d76a49e6c8e2edc1c265d600ec1a64a45153d45c29a2fd0228c24c3a524ffffffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000",
"complete" : true
}
{% endhighlight %}
</div>
Send the above signed raw transaction:
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoin-cli -testnet sendrawtransaction 01000000011da9283b4ddf8d\
89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e000000006a4730\
4402200ebea9f630f3ee35fa467ffc234592c79538ecd6eb1c9199eb23c4a16a\
0485a20220172ecaf6975902584987d295b8dddf8f46ec32ca19122510e22405\
ba52d1f13201210256d16d76a49e6c8e2edc1c265d600ec1a64a45153d45c29a\
2fd0228c24c3a524ffffffff01405dc600000000001976a9140dfc8bafc84198\
53b34d5e072ad37d1a5159f58488ac00000000
{% endhighlight %}
{% highlight text %}
f5a5ce5988cc72b9b90e8d1d6c910cda53c88d2175177357cc2f2cf0899fbaad
{% endhighlight %}
</div>
The returned value is the transaction's identifier (TXID).
</div>
<div id="notification" title="Programmable Notification" markdown="block">
<div class="multicode" markdown="block">
{% highlight bash %}
bitcoind -daemon -walletnotify=your_notification_command
{% endhighlight %}
</div>
</div>
</div>
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous Feature**<br>[Requirements][bcc requirements]</span>
<span markdown="1">**Next feature**<br>[Network Support][bcc network support]</span>
</div>
<br class="clear">
{% include references.md %}

View File

@ -0,0 +1,477 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base-core
lang: en
columns: 1
id: bitcoin-core-validation
title: Validation - Bitcoin Core Features
breadcrumbs:
- bitcoin
- bcc
- bcc features
- Validation
---
# Bitcoin Core Validation
{:.not-displayed}
![Full validation](/img/bitcoin-core/slider-validation.svg)
{% include bitcoin-core/download-bitcoin-core.html %}
> Imagine a scientist reading about an experimental result and then
> repeating the experiment for herself. Doing so allows her to **trust
> the result without having to trust the original scientists.**
Bitcoin Core checks each block of transactions it receives to ensure
that everything in that block is fully valid---allowing it to trust the
block without trusting the miner who created it.
This prevents miners from tricking Bitcoin Core users into accepting
blocks that violate the 21 million bitcoin limit or which break other
important rules.
Users of other wallets don't get this level of security, so miners can
trick them into accepting fabricated transactions or hijacked block chains.
Why take that risk if you don't have to? Bitcoin Core provides
the **best possible security against dishonest miners** along
with additional security against other easier attacks (see below
for details).
## How Validation Protects Your Bitcoins
<button class="popup js" data-container="bitcoin_banks">Bitcoin banks</button>
and
<button class="popup js" data-container="spv_wallets">lightweight (SPV) wallets</button>
put your bitcoins at
increased risk of being stolen. That risk may be acceptable for small
values of bitcoin on mobile wallets, but is it what you want for your
real wallet?
*Click any row below for more details about that attack*
{:.center}
<table class="validation">
<tr>
<th>Attack</th>
<th markdown="span">Bank Wallet</th>
<th markdown="span">SPV Wallet</th>
<th>Bitcoin Core</th>
</tr>
<tr class="brief">
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Direct theft</td>
<td class="bgred"></td>
<td class="bggreen"></td>
<td class="bggreen"></td>
</tr>
<tr class="details">
<td colspan="4" markdown="block">
> Alice deposits 100 bitcoins to Bank.Example.com. The next day, the
> owners of the site disappear with Alice's money.
- **Bitcoin bank**{:.fgred} users are vulnerable to direct theft because
they don't control their own private keys.
- **Lightweight (SPV) wallet**{:.fggreen} users and **Bitcoin
Core**{:.fggreen} users are not vulnerable because they control their
own private keys.
<div class="callout" markdown="block">
Direct theft is likely the leading cause of stolen bitcoins so far.
</div>
### Real Example
Bitcoin exchange Mt Gox reportedly had 650,000 bitcoins (worth $347
million USD) stolen from their customer deposits and their own operating
funds. They declared bankruptcy on 28 February 2014.
Even when the bankruptcy proceeding is complete, customers are unlikely to
recover more than a small fraction of the bitcoins they had on deposit.
**Learn More:** [Collapse of Mt
Gox](https://en.bitcoin.it/wiki/Collapse_of_Mt._Gox)
</td>
</tr>
<tr class="brief">
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Bait and switch</td>
<td class="bgred"></td>
<td class="bgyellow"></td>
<td class="bggreen"></td>
</tr>
<tr class="details">
<td colspan="4" markdown="block">
> Alice installs Example Wallet, whose open source code has been
> audited. The next day, the authors of Example Wallet push new code to
> Alice's device and steal all her bitcoins.
- **Bitcoin bank**{:.fgred} users are vulnerable because they can only
spend their bitcoins when they use the bank's approved software.
- **Lightweight (SPV) wallet**{:.fgyellow} users are vulnerable with
most software because auditors can't easily verify the software you
run (the executable) is the same as the program source code, called a
deterministic build. However, some lightweight wallets are moving to
deterministic builds.
- **Bitcoin Core**{:.fggreen} is built deterministically. Cryptographic
signatures from build auditors---many of whom are well known to the
community---are [released publicly][gitian sigs].
<div class="callout" markdown="block">
Bitcoin.org's [Choose Your Wallet][] page tells you whether or not
wallet builds are audited in the *Transparency* score for each wallet.
</div>
### Real Example
In April 2013, the OzCoin mining pool was hacked. The thief stole 923
bitcoins (worth $135,000 USD), but online wallet StrongCoin modified
their wallet code to 'steal back' 569 of those bitcoins ($83,000)
from one their users who was suspected of the theft.
Although this attack was done with good intentions, it illustrated
that the operators of StrongCoin could steal bitcoins from their users
at any time even though the users supposedly controlled their own
private keys.
**Learn More:** [OzCoin Hacked, Stolen Funds Seized and Returned by StrongCoin](https://bitcoinmagazine.com/4273/ozcoin-hacked-stolen-funds-seized-and-returned-by-strongcoin/)
</td>
</tr>
<tr class="brief">
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Fabricated transactions</td>
<td class="bgred"></td>
<td class="bgred"></td>
<td class="bggreen"></td>
</tr>
<tr class="details">
<td colspan="4" markdown="block">
> Mallory creates a transaction giving Alice 1,000 bitcoins, so Alice
> gives Mallory some cash. Later Alice discovers the transaction Mallory
> created was fake.
- **Bitcoin bank**{:.fgred} users depend on the information reported by the
bank, so they can easily be fooled into accepting fabricated
transactions.
- **Lightweight (SPV) wallet**{:.fgred} users depend on full nodes and
miners to validate transactions for them. It costs nothing for
dishonest full nodes to send unconfirmed fabricated transactions to an
SPV wallet. Getting one or more confirmations of those fabricated
transactions is also possible with help from a dishonest miner.
- **Bitcoin Core**{:.fggreen} users don't have to worry about fabricated
transactions because Bitcoin Core validates every transaction before
displaying it.
<div class="callout" markdown="block">
Currently the best defense against fabricated transactions, besides
using Bitcoin Core, is to wait for as many confirmations as possible.
</div>
### Real Example
On 4 August 2015, web wallet BlockChain.info began indicating that a
transaction had spent the earliest mined 250 bitcoins, coins that some
people believed were owned by Bitcoin creator Satoshi Nakamoto.
It was soon discovered that the transaction was invalid. BlockChain.info
was not validating transactions with Bitcoin Core and that transaction
had been [created by a security researcher][fake satoshi transaction].
**Learn more:** [BitcoinJ documentation about pending transaction
safety][]
</td>
</tr>
<tr class="brief">
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Chain hijacking</td>
<td class="bgred"></td>
<td class="bgred"></td>
<td class="bggreen"></td>
</tr>
<tr class="details">
<td colspan="4" markdown="block">
> Alice believes that there should never be more than 21 million
> bitcoins---but one day she's tricked into buying "bitcoins" that
> are only valid on a block chain with permanent 10% inflation.
- **Bitcoin bank**{:.fgred} users have to use whatever block chain the
bank uses. Banks can even profit from switching their users to a new
chain and selling their users' bitcoins from the old chain.
- **Lightweight (SPV) wallet**{:.fgred} users accept the block chain
they know about with the most proof of work. This lets the hash rate
majority of miners force SPV wallet users off of Bitcoin.
- **Bitcoin Core**{:.fggreen} users don't have to worry about chain
hijacking because Bitcoin Core validates every block using *all* of
Bitcoin's consensus rules.
<div class="callout" markdown="block">
Preventing chain hijacking is one of Bitcoin Core's most important jobs.
The alternative is to allow miners to do whatever they want.
</div>
### Real Example
In July 2015, several large Bitcoin miners accidentally produced an
invalid block chain several blocks longer than the correct block chain.
Some bank wallets and many SPV wallets accepted this longer chain,
putting their users' bitcoins at risk.
Recent versions of Bitcoin Core never accepted any of the blocks from
the invalid chain and never put any bitcoins at risk.
It is believed that the miners at fault controlled more than 50% of the
network hash rate, so they could have continued to fool SPV wallets
indefinitely. It was only their desire to remain compatible with
Bitcoin Core users that forced them to abandon over $37,500 USD worth of
mining income.
**Learn more:** [July 2015 chain forks][]
</td>
</tr>
<tr class="brief">
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Transaction withholding</td>
<td class="bgred"></td>
<td class="bgred"></td>
<td class="bggreen"></td>
</tr>
<tr class="details">
<td colspan="4" markdown="block">
> Mallory shows Alice $1,000 USD that he will pay her if she sends him some
> bitcoins. Alice sends the bitcoins but the transaction never seems to
> confirm. After waiting a long time, Alice returns Mallory's cash. It
> turns out the transaction did confirm, so Alice gave away her bitcoins
> for nothing.
- **Bitcoin bank**{:.fgred} users only see the transactions the bank
choose to show them.
- **Lightweight (SPV) wallets**{:.fgred} users only see the
transactions their full node peers choose to send them, even if those
transactions were included in a block the SPV wallet knows about.
- **Bitcoin Core**{:.fggreen} users see all transactions included in
received blocks. If Bitcoin Core hasn't received a block for too long,
it displays a catching-up progress bar in the graphical [user
interface][bcc user interface] or a warning message in the CLI/API user
interface.
<div class="callout" markdown="block">
Unless you use Bitcoin Core, you can never be sure that your bitcoin balance
is correct according to the block chain.
</div>
### Real Example
In March 2015, spy nodes run by the company Chainalysis accidentally
prevented some users of the lightweight BreadWallet from connecting to
honest nodes. Since the spy nodes didn't relay transactions, BreadWallet
users stopped receiving notification of new transactions.
**Learn more:** [Chainalysis CEO Denies 'Sybil Attack' on Bitcoin's Network](http://www.coindesk.com/chainalysis-ceo-denies-launching-sybil-attack-on-bitcoin-network/)
</td>
</tr>
<tr class="brief">
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Chain rewrites</td>
<td class="bgred"></td>
<td class="bgred"></td>
<td class="bgred"></td>
</tr>
<tr class="details">
<td colspan="4" markdown="block">
> Mallory gives Alice 1,000 bitcoins. When Alice's wallet says the
> transaction is confirmed, Alice gives Mallory some cash. Later Alice
> discovers that Mallory has managed to steal back the bitcoins.
This attack applies to **all Bitcoin wallets.**{:.fgred}
The attack works because powerful miners have the ability to rewrite the
block chain and replace their own transactions, allowing them to take
back previous payments.
The cost of this attack depends on the percentage of total network hash
rate the attacking miner controls. The more centralized mining becomes,
the less expensive the attack for a powerful miner.
![The cost of a chain rewrite](/img/bitcoin-core/en-confirmed-double-spend-cost.svg)
### Real Example
In September 2013, someone used centralized mining pool GHash.io to
steal an estimated 1,000 bitcoins (worth $124,000 USD) from the gambling
site BetCoin.
The attacker would spend bitcoins to make a bet. If he won, he would
confirm the transaction. If he lost, he would create a transaction
returning the bitcoins to himself and confirm that, invalidating the
transaction that lost the bet.
By doing so, he gained bitcoins from his winning bets without losing
bitcoins on his losing bets.
Although this attack was performed on unconfirmed transactions, the
attacker had enough hash rate (about 30%) to have profited from
attacking transactions with one, two, or even more confirmations.
**Learn more:** [GHash.IO and double-spending against BetCoin
Dice][ghash betcoin double spend]
</td>
</tr>
</table>
Note that although all programs---including Bitcoin Core---are
vulnerable to chain rewrites, Bitcoin provides a defense mechanism: the
more confirmations your transactions have, the safer you are. *There is
no known decentralized defense better than that.*
## Help Protect Decentralization
{% comment %}<!-- 1231006505 is the time in block 0; 31558149 is the average number of seconds in a year -->{% endcomment %}
{% capture bitcoin_age %}{{ site.time | date: "%s" | minus: "1231006505" | divided_by: "31558149" }}{% endcapture %}
The bitcoin currency only works when people accept bitcoins in exchange
for other valuable things. That means it's the people accepting
bitcoins who give it value and who get to decide how Bitcoin should work.
When you accept bitcoins, you have the power to enforce Bitcoin's rules,
such as preventing confiscation of any person's bitcoins without access
to that person's private keys.
Unfortunately, **many users outsource their enforcement power**. This
leaves Bitcoin's decentralization in a weakened state where a handful of
miners can collude with a handful of banks and free services to change
Bitcoin's rules for all those non-verifying users who outsourced their power.
<table class="received_transactions center">
<tr>
<td class="center" markdown="span">*Users of Bitcoin banks*<br
>**Trust bankers**{:.fgred}</td>
<td class="center" markdown="span">*Users of P2P lightweight wallets*<br
>**Trust miners**{:.fgred}</td>
</tr>
<tr>
<td class="center" markdown="span">*Users of client lightweight wallets*<br
> **Trust "free" services**{:.fgred}</td>
<td class="center" markdown="span">*Users of Bitcoin Core*<br
>**Enforce the rules**{:.fggreen}</td>
</tr>
</table>
Unlike other wallets, **Bitcoin Core *does* enforce the rules**---so
if the miners and banks change the rules for their non-verifying
users, those users will be unable to pay full validation Bitcoin Core
users like you.
As long as there are many non-verifying users who want to be able to
pay Bitcoin Core users, miners and others know they can't effectively
change Bitcoin's rules.
But what if not enough non-verifying users care about paying Bitcoin
Core users? Then it becomes easy for miners and banks to take control of
Bitcoin, likely bringing to an end this {{bitcoin_age}} year experiment
in decentralized currency.
![History of Bitcoin](/img/bitcoin-core/history-of-bitcoin.svg)
If you think **Bitcoin should remain decentralized,** the best thing you
can do is [validate every payment you receive](#do-you-validate) using your own personal
full node such as Bitcoin Core.
We don't know how many full validation users and business are needed,
but it's possible that for each person or business who validates their
own transactions, Bitcoin can remain decentralized even if there are ten
or a hundred other non-verifying users. If this is the case, **your
small contribution can have a large impact** towards keeping Bitcoin
decentralized.
## Do You Validate Your Transactions? {#do-you-validate}
Some people confuse [supporting the network][bcc network support] with
helping to [protect Bitcoin's decentralization][bcc validation
decentralization].
To [improve your security][bcc validation protection] and help
protect decentralization, you must use a wallet that fully validates
received transactions. There are three ways to do that with Bitcoin
Core right now:
1. **Use the built-in wallet's graphical mode.** If you request payment
using the following screen in Bitcoin Core, your received
transactions will be fully validated.
![Bitcoin Core request payment](/img/bitcoin-core/unique-invoice.png)
2. **Use Bitcoin Core as a trusted peer for certain lightweight
wallets.** Learn more on the [user interface][bcc user interface
lightweight] page. If you use a secure connection to your personal
trusted peer *every time* you use the wallet, your received
transactions will be fully validated.
3. **Use the built-in wallet's CLI/API interface.** This is meant for
power users, businesses, and programmers. The [user interface][bcc
user interface] page provides an overview, the [installation
instructions][bandwidth sharing guide] can help you get started, and
the [RPC][]/[REST][] documentation can help you find specific
commands. If you're using [`getnewaddress`][rpc getnewaddress] to
create receiving addresses, your received transactions will be fully
validated.
If you have any questions, please ask on the [forums][bcc forums] or
[chatrooms][bcc live help].
<br class="clear big">
<div class="prevnext">
<span markdown="1">**Previous Feature**<br>[Feature Overview][bcc main]</span>
<span markdown="1">**Next feature**<br>[Privacy][bcc privacy]</span>
</div>
<br class="clear">
<div class="not-displayed">
<div id="bitcoin_banks" title="Bitcoin Banks" markdown="block">
**Bitcoin banks and exchanges** are organizations that control your
bitcoins on your behalf similar to the way traditional banks control
your fiat deposits on your behalf.
</div>
<div id="spv_wallets" title="SPV Wallets" markdown="block">
**Simplified Payment Verification (SPV)** wallets are lightweight
wallets that can verify whether or not a transaction is part of a block
without downloading the {{site.text.chain_gb}} GB block chain. However,
they cannot verify whether or not the transaction is actually valid.
(Only full validation nodes like Bitcoin Core can do that.)
Honest miners who only create blocks with valid transactions currently
receive a {{site.text.subsidy_in_decimal_bitcoins}} bitcoin subsidy.
Dishonest miners who create blocks with invalid transactions don't
receive that subsidy, but they might still attempt to trick SPV
wallets if they can steal more bitcoins than they would make honestly (or
steal any amount of bitcoins from people they don't like).
</div>
</div>
{% include references.md %}

85
en/bitcoin-core/help.md Normal file
View File

@ -0,0 +1,85 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base-core
lang: en
id: bitcoin-core-help
columns: 1
title: Get Help - Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- Help
end_of_page: |
<script src="/js/devsearch.js"></script>
---
# Getting Help For Bitcoin Core
There are many ways to get help for Bitcoin Core, including
[documentation](#documentation), [forums](#forums), and [live chatrooms](#live).
<span class="fa fa-exclamation-triangle"></span> *To report an issue,
please see the [bug reporting][bcc contribute issues] page.*
## Documentation
Bitcoin Core currently doesn't have any cohesive or complete
documentation---but we hope to improve that situation soon. For now, you
can use the following resources:
- Bitcoin Wiki pages: [running Bitcoin][bcc configuration], [data
directory][bcc data directory], and other articles in the [Bitcoin
Core documentation category][wiki bitcoin core documentation].
<form id="searchform" action="https://en.bitcoin.it/w/index.php">
<input id="searchInput" class="glossary_term" type="search" placeholder="Search the Bitcoin Wiki" name="search"></input>
</form>
- The [developer reference][RPCs] provides complete documentation of the
RPCs that can be used with `bitcoin-cli` or in third-party programs.
The [REST][rest] interface is also fully documented. Both can be searched
using the box below:
<input id="glossary_term" class="glossary_term" placeholder="Search the RPCs and more">
- The [bandwidth sharing guide][] describes installing Bitcoin Core in
detail as well as opening port 8333 to allow other Bitcoin programs to
download blocks and transactions from you.
## Forums
Bitcoin was a wide range of [communities][communities], but the following places
are the best place to ask for help using Bitcoin Core:
- [Bitcoin StackExchange][] is a community dedicated entirely to
answering questions about Bitcoin and related technology. Many
questions about Bitcoin Core can be found under the [Bitcoin-Qt
tag](http://bitcoin.stackexchange.com/questions/tagged/bitcoin-qt)
- [BitcoinTalk Technical Support][forum tech support] is a
sub-forum dedicated to providing help for Bitcoin Core and other
Bitcoin programs.
- [/r/BitcoinBeginners][bitcoin beginners] is a Reddit community for
users who have questions about anything Bitcoin-related, including
Bitcoin Core.
## Live
Internet Relay Chat (IRC) is the most popular way to get live online
help with Bitcoin Core. When you join an IRC chatroom, you must read
the topic (which is usually automatically displayed) to learn the rules
for that chatroom.
- [#bitcoin][] is the best place to ask general questions about
Bitcoin Core.
- [#bitcoin-mining][] hosts discussion about Bitcoin mining, including
decentralized mining using Bitcoin Core as part of the system.
- For more channels, please see the [comprehensive listing][irc channels]
on the Bitcoin Wiki.
{% include references.md %}

View File

@ -2,10 +2,15 @@
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base
layout: base-core
lang: en
id: full-node
title: "Running A Full Node - Bitcoin"
breadcrumbs:
- bitcoin
- bcc
- bcc documentation
- Bandwidth sharing
---
<!-- Variable assignment
@ -186,29 +191,7 @@ have an easy-to-use node.
### Possible Problems
* **Legal:** Bitcoin use is [prohibited or restricted in some
areas.](https://en.wikipedia.org/wiki/Legality_of_bitcoin_by_country)
* **Bandwidth limits**: Some Internet plans will charge an additional
amount for any excess upload bandwidth used that isn't included in
the plan. Worse, some providers may terminate your connection without
warning because of overuse. We advise that you check whether your
Internet connection is subjected to such limitations and monitor your
bandwidth use so that you can stop Bitcoin Core before you reach your
upload limit.
* **Anti-virus:** Several people have placed parts of known computer
viruses in the Bitcoin block chain. This block chain data can't infect
your computer, but some anti-virus programs quarantine the data
anyway, making it more difficult to run a full node. This problem mostly
affects computers running Windows.
* **Attack target:** People who want to disrupt the Bitcoin network may
attack full nodes in ways that will affect other things you do with
your computer, such as an attack that limits your available download
bandwidth or an attack that prevents you from using your full node's
wallet for sending transactions.
{% include bitcoin-core/bitcoin-core-possible-problems.md %}
## Linux Instructions

View File

@ -2,10 +2,14 @@
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
layout: base
layout: base-core
lang: en
id: version-history
title: Bitcoin Core version history
title: Version History - Bitcoin Core
breadcrumbs:
- bitcoin
- bcc
- News
---
<link rel="alternate" type="application/rss+xml" href="/en/rss/releases.rss" title="Bitcoin Core releases">
<div class="versiontext">

11
img/bitcoin-core/COPYING Normal file
View File

@ -0,0 +1,11 @@
With the following exceptions, the files in this folder are licensed
under the MIT License (MIT) available on
http://opensource.org/licenses/MIT.
- slider-ui.* contains two images from Font Awesome, licensed under SIL
OFL 1.1. The remainder of the image is MIT licensed.
- slider-privacy.* uses the Tor logo in compliance with the Tor
project's trademark terms at
https://www.torproject.org/docs/trademark-faq.html.en#onionlogo
(retrieved 2015-08-26)

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

252
js/bitcoin-core.js Normal file
View File

@ -0,0 +1,252 @@
---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.
# This file depends on JQuery and JQuery UI, so it should be separate
# from the base and main JS files which don't depend on those libraries
---
"use strict";
{% comment %}
// Display modal pop-up on button clicks
// When using this, make sure each .popup element has a parameter
{% endcomment %}
$(".popup").each(function() {
var this_id = "#" + $(this).attr('data-container');
$(this).on('click', function(clicked) {
$( this_id ).dialog({
modal: true,
show: true,
hide: true,
draggable: false,
resizeable: false,
width: Math.min($(window).width() * 0.9, 620),
open: function() {
$('.ui-widget-overlay').bind('click',function() {
$(this_id).dialog('close');
});
},
buttons: {
"Close": function() {
$( this ).dialog( "close" );
}
}
});
});
});
{% comment %}
// Used on en/bitcoin-core/privacy to show/hide columns based on button
// clicks
{% endcomment %}
$('.showcolumn').each(function() {
$(this).on('click', function() {
var class_name = $(this).attr('id');
if (class_name === 'bitcoin_core') return;
$('.showcolumn').toggleClass('active', false);
$('.showcolumn#bitcoin_core, .showcolumn#' + class_name).toggleClass('active', true);
$('.privacy-comparison th, .privacy-comparison td').toggle(false);
$('.privacy-comparison td:first-child, .privacy-comparison th:first-child, .privacy-comparison .bitcoin_core').toggle(true);
$('.privacy-comparison .' + class_name).toggle('highlight', 750);
});
});
{% comment %}
// Used on en/bitcoin-core/features/validation to create an accordion-style
// effect within a table
{% endcomment %}
$(function() {
$(".validation tr.details").hide();
$(".validation tr.brief").click(function(){
$(this).find("span").toggleClass("ui-icon-triangle-1-e").toggleClass("ui-icon-triangle-1-s");
$(this).next("tr").fadeToggle();
});
});
{% comment %}
// Used on the en/bitcoin-core/features/user-interface page to show wallets
// that support dedicated connections to Bitcoin Core.
{% endcomment %}
$(function() {
$( ".wallet_accordion" ).accordion({
active: -1,
heightStyle: "content"
});
});
{% comment %}
// Function to expand part of a section when clicked
{% endcomment %}
$(function() {
$(".show_more").hide();
$(".toggle_show_more_less").show();
$(".toggle_show_more_less").click(function() {
$(".show_more").fadeToggle();
$(".toggle_show_more_less").hide();
});
});
{% comment %}// Used on bitcoin-core/feature/requirements{% endcomment %}
$(function() {
$( "#system-requirements-accordion" ).accordion({
active: -1,
heightStyle: "content"
});
});
{% comment %}
// Begin: slideshow JS, used on en/bitcoin-core/features/
// Some JS adapted from JQuery reference, MIT license
{% endcomment %}
{% comment %}
// start_slideshow:
// - container: jquery object containing the slideshow data
{% endcomment %}
function start_slideshow(container) {
var group = container.find('.slide-group');
var slides = container.find('.slide');
var buttons = container.find('.slide-btn');
var button_array = [];
var current_index = 0;
var timeout;
{% comment %}
// short_period: time between slide changes
// long_period: time to change to the next slide after a slide has
// been manually selected
{% endcomment %}
var short_period = 3000;
var long_period = short_period * 3;
{% comment %}
// move:
// - new_index: slide to move to
// - period: time to wait before moving to the next slide
{% endcomment %}
function move(new_index, period) {
var animate_left;
var slide_left;
advance(period);
{% comment %}
// If we're already on the desired slide, don't do anything
{% endcomment %}
if (group.is(':animated') || current_index === new_index) {
return;
}
button_array[current_index].removeClass('active');
button_array[new_index].addClass('active');
{% comment %}
// Slide left or right
{% endcomment %}
if (new_index > current_index) {
slide_left = '100%';
animate_left = '-100%';
} else {
slide_left = '-100%';
animate_left = '100%';
}
slides.eq(new_index).css({
left: slide_left,
display: 'block'
});
{% comment %}
// Perform the animation
{% endcomment %}
group.animate({left: animate_left}, function() {
slides.eq(current_index).css({
display: 'none'
});
slides.eq(new_index).css({
left: 0
});
group.css({
left: 0
});
current_index = new_index;
});
}
{% comment %}
// Set timer to automatically advance to next slide
{% endcomment %}
function advance(period) {
clearTimeout(timeout);
timeout = setTimeout(function() {
if (current_index < (slides.length - 1)) {
move(current_index + 1, short_period);
} else {
move(0, short_period);
}
}, period);
}
{% comment %}
// For each slide, find its corresponding button and set an event
// handler
{% endcomment %}
$.each(slides, function(index) {
var button = $(buttons[index]);
if (index === current_index) {
button.addClass('active');
}
button.on('click', function() {
move(index, long_period);
});
button_array.push(button);
});
advance(short_period);
}
{% comment %}
// Change height of slider box to match scaled image size
{% endcomment %}
function change_slider_height() {
{% comment %}
// 125 is minimal height
{% endcomment %}
var revised_size = 125;
{% comment %}
// Look through each image since all but one will be hidden (0px)
{% endcomment %}
$(".slide img").each(function() {
var img_height = $(this).height();
if (img_height > revised_size) {
revised_size = img_height;
}
});
$(".slide-viewer").css('height', revised_size + "px");
}
{% comment %}
// This only runs after all images have been loaded, which is required so
// that the browser can autoscale them. However, that means the slidebox
// will have its default height (as set by CSS) until everything is
// loaded---which may make the slidebox a bad choice for pages with
// slow-loading resources.
{% endcomment %}
$(document).load(function() {
change_slider_height();
});
$(window).resize(function() {
change_slider_height();
});
{% comment %}
// End: slideshow JS
{% endcomment %}