Litecoin: Update documentation
This commit is contained in:
parent
7e6620b49c
commit
953490f76c
@ -1,7 +1,7 @@
|
||||
Contributing to Bitcoin Core
|
||||
Contributing to Litecoin Core
|
||||
============================
|
||||
|
||||
The Bitcoin Core project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing.
|
||||
The Litecoin Core project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing.
|
||||
|
||||
Firstly in terms of structure, there is no particular concept of “Core developers” in the sense of privileged people. Open source often naturally revolves around meritocracy where longer term contributors gain more trust from the developer community. However, some hierarchy is necessary for practical purposes. As such there are repository “maintainers” who are responsible for merging pull requests as well as a “lead maintainer” who is responsible for the release cycle, overall merging, moderation and appointment of maintainers.
|
||||
|
||||
@ -81,9 +81,9 @@ Project maintainers aim for a quick turnaround on refactoring pull requests, so
|
||||
"Decision Making" Process
|
||||
-------------------------
|
||||
|
||||
The following applies to code changes to the Bitcoin Core project (and related projects such as libsecp256k1), and is not to be confused with overall Bitcoin Network Protocol consensus changes.
|
||||
The following applies to code changes to the Litecoin Core project (and related projects such as libsecp256k1), and is not to be confused with overall Litecoin Network Protocol consensus changes.
|
||||
|
||||
Whether a pull request is merged into Bitcoin Core rests with the project merge maintainers and ultimately the project lead.
|
||||
Whether a pull request is merged into Litecoin Core rests with the project merge maintainers and ultimately the project lead.
|
||||
|
||||
Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will judge the general consensus of contributors.
|
||||
|
||||
@ -96,7 +96,7 @@ In general, all pull requests must:
|
||||
- not break the existing test suite;
|
||||
- where bugs are fixed, where possible, there should be unit tests demonstrating the bug and also proving the fix. This helps prevent regression.
|
||||
|
||||
Patches that change Bitcoin consensus rules are considerably more involved than normal because they affect the entire ecosystem and so must be preceded by extensive mailing list discussions and have a numbered BIP. While each case will be different, one should be prepared to expend more time and effort than for other kinds of patches because of increased peer review and consensus building requirements.
|
||||
Patches that change Litecoin consensus rules are considerably more involved than normal because they affect the entire ecosystem and so must be preceded by extensive mailing list discussions and have a numbered BIP. While each case will be different, one should be prepared to expend more time and effort than for other kinds of patches because of increased peer review and consensus building requirements.
|
||||
|
||||
|
||||
###Peer Review
|
||||
@ -115,10 +115,10 @@ Project maintainers reserve the right to weigh the opinions of peer reviewers us
|
||||
|
||||
Where a patch set affects consensus critical code, the bar will be set much higher in terms of discussion and peer review requirements, keeping in mind that mistakes could be very costly to the wider community. This includes refactoring of consensus critical code.
|
||||
|
||||
Where a patch set proposes to change the Bitcoin consensus, it must have been discussed extensively on the mailing list and IRC, be accompanied by a widely discussed BIP and have a generally widely perceived technical consensus of being a worthwhile change based on the judgement of the maintainers.
|
||||
Where a patch set proposes to change the Litecoin consensus, it must have been discussed extensively on the mailing list and IRC, be accompanied by a widely discussed BIP and have a generally widely perceived technical consensus of being a worthwhile change based on the judgement of the maintainers.
|
||||
|
||||
|
||||
Release Policy
|
||||
--------------
|
||||
|
||||
The project leader is the release manager for each Bitcoin Core release.
|
||||
The project leader is the release manager for each Litecoin Core release.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
Building Bitcoin
|
||||
Building Litecoin
|
||||
================
|
||||
|
||||
See doc/build-*.md for instructions on building the various
|
||||
elements of the Bitcoin Core reference implementation of Bitcoin.
|
||||
elements of the Litecoin Core reference implementation of Litecoin.
|
||||
|
||||
@ -21,7 +21,7 @@ Construct a linear, no-fork, best version of the blockchain.
|
||||
|
||||
### [Qos](/contrib/qos) ###
|
||||
|
||||
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it.
|
||||
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Litecoin network. This means one can have an always-on litecoind instance running, and another local litecoind/litecoin-qt instance which connects to this node and receives blocks from it.
|
||||
|
||||
### [Seeds](/contrib/seeds) ###
|
||||
Utility to generate the pnSeed[] array that is compiled into the client.
|
||||
@ -30,26 +30,26 @@ Build Tools and Keys
|
||||
---------------------
|
||||
|
||||
### [Debian](/contrib/debian) ###
|
||||
Contains files used to package bitcoind/bitcoin-qt
|
||||
for Debian-based Linux systems. If you compile bitcoind/bitcoin-qt yourself, there are some useful files here.
|
||||
Contains files used to package litecoind/litecoin-qt
|
||||
for Debian-based Linux systems. If you compile litecoind/litecoin-qt yourself, there are some useful files here.
|
||||
|
||||
### [Gitian-descriptors](/contrib/gitian-descriptors) ###
|
||||
Notes on getting Gitian builds up and running using KVM.
|
||||
|
||||
### [Gitian-keys](/contrib/gitian-keys)
|
||||
PGP keys used for signing Bitcoin Core [Gitian release](/doc/release-process.md) results.
|
||||
PGP keys used for signing Litecoin Core [Gitian release](/doc/release-process.md) results.
|
||||
|
||||
### [MacDeploy](/contrib/macdeploy) ###
|
||||
Scripts and notes for Mac builds.
|
||||
|
||||
### [RPM](/contrib/rpm) ###
|
||||
RPM spec file for building bitcoin-core on RPM based distributions
|
||||
RPM spec file for building litecoin-core on RPM based distributions
|
||||
|
||||
Test and Verify Tools
|
||||
---------------------
|
||||
|
||||
### [TestGen](/contrib/testgen) ###
|
||||
Utilities to generate test vectors for the data-driven Bitcoin tests.
|
||||
Utilities to generate test vectors for the data-driven Litecoin tests.
|
||||
|
||||
### [Verify Binaries](/contrib/verifybinaries) ###
|
||||
This script attempts to download and verify the signature file SHA256SUMS.asc from bitcoin.org.
|
||||
This script attempts to download and verify the signature file SHA256SUMS.asc from litecoin.org.
|
||||
|
||||
@ -67,7 +67,7 @@ For example:
|
||||
./github-merge.py 3077
|
||||
|
||||
(in any git repository) will help you merge pull request #3077 for the
|
||||
bitcoin/bitcoin repository.
|
||||
litecoin-project/litecoin repository.
|
||||
|
||||
What it does:
|
||||
* Fetch master and the pull request.
|
||||
@ -85,16 +85,16 @@ couldn't mess with the sources.
|
||||
|
||||
Setup
|
||||
---------
|
||||
Configuring the github-merge tool for the bitcoin repository is done in the following way:
|
||||
Configuring the github-merge tool for the litecoin repository is done in the following way:
|
||||
|
||||
git config githubmerge.repository bitcoin/bitcoin
|
||||
git config githubmerge.repository litecoin-project/litecoin
|
||||
git config githubmerge.testcmd "make -j4 check" (adapt to whatever you want to use for testing)
|
||||
git config --global user.signingkey mykeyid (if you want to GPG sign)
|
||||
|
||||
optimize-pngs.py
|
||||
================
|
||||
|
||||
A script to optimize png files in the bitcoin
|
||||
A script to optimize png files in the litecoin
|
||||
repository (requires pngcrush).
|
||||
|
||||
security-check.py and test-security-check.py
|
||||
@ -117,10 +117,10 @@ If only supported symbols are used the return value will be 0 and the output wil
|
||||
|
||||
If there are 'unsupported' symbols, the return value will be 1 a list like this will be printed:
|
||||
|
||||
.../64/test_bitcoin: symbol memcpy from unsupported version GLIBC_2.14
|
||||
.../64/test_bitcoin: symbol __fdelt_chk from unsupported version GLIBC_2.15
|
||||
.../64/test_bitcoin: symbol std::out_of_range::~out_of_range() from unsupported version GLIBCXX_3.4.15
|
||||
.../64/test_bitcoin: symbol _ZNSt8__detail15_List_nod from unsupported version GLIBCXX_3.4.15
|
||||
.../64/test_litecoin: symbol memcpy from unsupported version GLIBC_2.14
|
||||
.../64/test_litecoin: symbol __fdelt_chk from unsupported version GLIBC_2.15
|
||||
.../64/test_litecoin: symbol std::out_of_range::~out_of_range() from unsupported version GLIBCXX_3.4.15
|
||||
.../64/test_litecoin: symbol _ZNSt8__detail15_List_nod from unsupported version GLIBCXX_3.4.15
|
||||
|
||||
update-translations.py
|
||||
======================
|
||||
|
||||
@ -17,7 +17,7 @@ Optional config file setting for linearize-hashes:
|
||||
$ ./linearize-data.py linearize.cfg
|
||||
|
||||
Required configuration file settings:
|
||||
* "input": bitcoind blocks/ directory containing blkNNNNN.dat
|
||||
* "input": litecoind blocks/ directory containing blkNNNNN.dat
|
||||
* "hashlist": text file containing list of block hashes, linearized-hashes.py
|
||||
output.
|
||||
* "output_file": bootstrap.dat
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
|
||||
# bitcoind RPC settings (linearize-hashes)
|
||||
# litecoind RPC settings (linearize-hashes)
|
||||
rpcuser=someuser
|
||||
rpcpassword=somepassword
|
||||
host=127.0.0.1
|
||||
@ -12,14 +12,14 @@ max_height=313000
|
||||
# bootstrap.dat input/output settings (linearize-data)
|
||||
|
||||
# mainnet
|
||||
netmagic=f9beb4d9
|
||||
genesis=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
|
||||
input=/home/example/.bitcoin/blocks
|
||||
netmagic=fbc0b6db
|
||||
genesis=12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2
|
||||
input=/home/example/.litecoin/blocks
|
||||
|
||||
# testnet
|
||||
#netmagic=0b110907
|
||||
#genesis=000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943
|
||||
#input=/home/example/.bitcoin/testnet3/blocks
|
||||
#netmagic=fcc1b7dc
|
||||
#genesis=f5ae71e26c74beacc88382716aced69cddf3dffff24f384e1808905e0188f68f
|
||||
#input=/home/example/.litecoin/testnet3/blocks
|
||||
|
||||
output_file=/home/example/Downloads/bootstrap.dat
|
||||
hashlist=hashlist.txt
|
||||
|
||||
@ -11,5 +11,5 @@ This script should not be run manually, instead, after building as usual:
|
||||
During the process, the disk image window will pop up briefly where the fancy
|
||||
settings are applied. This is normal, please do not interfere.
|
||||
|
||||
When finished, it will produce `Bitcoin-Core.dmg`.
|
||||
When finished, it will produce `Litecoin-Core.dmg`.
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
### Qos ###
|
||||
|
||||
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. It limits outbound TCP traffic with a source or destination port of 9333, but not if the destination IP is within a LAN (defined as 192.168.x.x).
|
||||
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Litecoin network. It limits outbound TCP traffic with a source or destination port of 9333, but not if the destination IP is within a LAN (defined as 192.168.x.x).
|
||||
|
||||
This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it.
|
||||
This means one can have an always-on litecoind instance running, and another local litecoind/litecoin-qt instance which connects to this node and receives blocks from it.
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
IF="eth0"
|
||||
#limit of the network interface in question
|
||||
LINKCEIL="1gbit"
|
||||
#limit outbound Bitcoin protocol traffic to this rate
|
||||
#limit outbound Litecoin protocol traffic to this rate
|
||||
LIMIT="160kbit"
|
||||
#defines the address space for which you wish to disable rate limiting
|
||||
LOCALNET="192.168.0.0/16"
|
||||
|
||||
@ -7,7 +7,7 @@ address (or addresses).
|
||||
Depends on [jsonrpc](http://json-rpc.org/).
|
||||
|
||||
spendfrom.py --from=FROMADDRESS1[,FROMADDRESS2] --to=TOADDRESS --amount=amount \
|
||||
--fee=fee --datadir=/path/to/.bitcoin --testnet --dry_run
|
||||
--fee=fee --datadir=/path/to/.litecoin --testnet --dry_run
|
||||
|
||||
With no arguments, outputs a list of amounts associated with addresses.
|
||||
|
||||
@ -16,7 +16,7 @@ With arguments, sends coins received by the `FROMADDRESS` addresses to the `TOAD
|
||||
### Notes ###
|
||||
|
||||
- You may explicitly specify how much fee to pay (a fee more than 1% of the amount
|
||||
will fail, though, to prevent bitcoin-losing accidents). Spendfrom may fail if
|
||||
will fail, though, to prevent litecoin-losing accidents). Spendfrom may fail if
|
||||
it thinks the transaction would never be confirmed (if the amount being sent is
|
||||
too small, or if the transaction is too many bytes for the fee).
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
### TestGen ###
|
||||
|
||||
Utilities to generate test vectors for the data-driven Bitcoin tests.
|
||||
Utilities to generate test vectors for the data-driven Litecoin tests.
|
||||
|
||||
Usage:
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ DOXYFILE_ENCODING = UTF-8
|
||||
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
|
||||
# by quotes) that should identify the project.
|
||||
|
||||
PROJECT_NAME = "Bitcoin Core"
|
||||
PROJECT_NAME = "Litecoin Core"
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
|
||||
# This could be handy for archiving the generated documentation or
|
||||
|
||||
@ -1,39 +1,39 @@
|
||||
Bitcoin Core 0.13.1
|
||||
Litecoin Core 0.13.1
|
||||
=====================
|
||||
|
||||
Setup
|
||||
---------------------
|
||||
[Bitcoin Core](http://bitcoin.org/en/download) is the original Bitcoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
|
||||
[Litecoin Core](http://litecoin.org/en/download) is the original Litecoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Litecoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
|
||||
|
||||
Running
|
||||
---------------------
|
||||
The following are some helpful notes on how to run Bitcoin on your native platform.
|
||||
The following are some helpful notes on how to run Litecoin on your native platform.
|
||||
|
||||
### Unix
|
||||
|
||||
Unpack the files into a directory and run:
|
||||
|
||||
- `bin/bitcoin-qt` (GUI) or
|
||||
- `bin/bitcoind` (headless)
|
||||
- `bin/litecoin-qt` (GUI) or
|
||||
- `bin/litecoind` (headless)
|
||||
|
||||
### Windows
|
||||
|
||||
Unpack the files into a directory, and then run bitcoin-qt.exe.
|
||||
Unpack the files into a directory, and then run litecoin-qt.exe.
|
||||
|
||||
### OS X
|
||||
|
||||
Drag Bitcoin-Core to your applications folder, and then run Bitcoin-Core.
|
||||
Drag Litecoin-Core to your applications folder, and then run Litecoin-Core.
|
||||
|
||||
### Need Help?
|
||||
|
||||
* See the documentation at the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page)
|
||||
* See the documentation at the [Litecoin Wiki](https://litecoin.info/)
|
||||
for help and more information.
|
||||
* Ask for help on [#bitcoin](http://webchat.freenode.net?channels=bitcoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=bitcoin).
|
||||
* Ask for help on the [BitcoinTalk](https://bitcointalk.org/) forums, in the [Technical Support board](https://bitcointalk.org/index.php?board=4.0).
|
||||
* Ask for help on [#litecoin](http://webchat.freenode.net?channels=litecoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=litecoin).
|
||||
* Ask for help on the [LitecoinTalk](https://litecointalk.io/) forums.
|
||||
|
||||
Building
|
||||
---------------------
|
||||
The following are developer notes on how to build Bitcoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
|
||||
The following are developer notes on how to build Litecoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
|
||||
|
||||
- [OS X Build Notes](build-osx.md)
|
||||
- [Unix Build Notes](build-unix.md)
|
||||
@ -43,7 +43,7 @@ The following are developer notes on how to build Bitcoin on your native platfor
|
||||
|
||||
Development
|
||||
---------------------
|
||||
The Bitcoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
|
||||
The Litecoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
|
||||
|
||||
- [Developer Notes](developer-notes.md)
|
||||
- [Multiwallet Qt Development](multiwallet-qt.md)
|
||||
@ -60,9 +60,8 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th
|
||||
- [Benchmarking](benchmarking.md)
|
||||
|
||||
### Resources
|
||||
* Discuss on the [BitcoinTalk](https://bitcointalk.org/) forums, in the [Development & Technical Discussion board](https://bitcointalk.org/index.php?board=6.0).
|
||||
* Discuss project-specific development on #bitcoin-core-dev on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=bitcoin-core-dev).
|
||||
* Discuss general Bitcoin development on #bitcoin-dev on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=bitcoin-dev).
|
||||
* Discuss on the [LitecoinTalk](https://litecointalk.io/) forums.
|
||||
* Discuss project-specific development on #litecoin on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=litecoin).
|
||||
|
||||
### Miscellaneous
|
||||
- [Assets Attribution](assets-attribution.md)
|
||||
|
||||
@ -77,6 +77,6 @@ build process to remain somewhat deterministic. Here's how it works:
|
||||
that have been previously (deterministically) built in order to create a
|
||||
final dmg.
|
||||
- The Apple keyholder uses this unsigned app to create a detached signature,
|
||||
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/bitcoin-core/bitcoin-detached-sigs).
|
||||
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/litecoin-project/litecoin-detached-sigs).
|
||||
- Builders feed the unsigned app + detached signature back into Gitian. It
|
||||
uses the pre-built tools to recombine the pieces into a deterministic dmg.
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
Bitcoin Core 0.13.1
|
||||
Litecoin Core 0.13.1
|
||||
=====================
|
||||
|
||||
Intro
|
||||
-----
|
||||
Bitcoin is a free open source peer-to-peer electronic cash system that is
|
||||
Litecoin is a free open source peer-to-peer electronic cash system that is
|
||||
completely decentralized, without the need for a central server or trusted
|
||||
parties. Users hold the crypto keys to their own money and transact directly
|
||||
with each other, with the help of a P2P network to check for double-spending.
|
||||
@ -11,13 +11,13 @@ with each other, with the help of a P2P network to check for double-spending.
|
||||
|
||||
Setup
|
||||
-----
|
||||
Unpack the files into a directory and run bitcoin-qt.exe.
|
||||
Unpack the files into a directory and run litecoin-qt.exe.
|
||||
|
||||
Bitcoin Core is the original Bitcoin client and it builds the backbone of the network.
|
||||
However, it downloads and stores the entire history of Bitcoin transactions;
|
||||
Litecoin Core is the original Litecoin client and it builds the backbone of the network.
|
||||
However, it downloads and stores the entire history of Litecoin transactions;
|
||||
depending on the speed of your computer and network connection, the synchronization
|
||||
process can take anywhere from a few hours to a day or more.
|
||||
|
||||
See the bitcoin wiki at:
|
||||
https://en.bitcoin.it/wiki/Main_Page
|
||||
See the litecoin wiki at:
|
||||
https://litecoin.info/
|
||||
for more help and information.
|
||||
|
||||
@ -93,4 +93,4 @@ Only supports JSON as output format.
|
||||
|
||||
Risks
|
||||
-------------
|
||||
Running a web browser on the same node with a REST enabled bitcoind can be a risk. Accessing prepared XSS websites could read out tx/block data of your node by placing links like `<script src="http://127.0.0.1:9332/rest/tx/1234567890.json">` which might break the nodes privacy.
|
||||
Running a web browser on the same node with a REST enabled litecoind can be a risk. Accessing prepared XSS websites could read out tx/block data of your node by placing links like `<script src="http://127.0.0.1:9332/rest/tx/1234567890.json">` which might break the nodes privacy.
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
Benchmarking
|
||||
============
|
||||
|
||||
Bitcoin Core has an internal benchmarking framework, with benchmarks
|
||||
Litecoin Core has an internal benchmarking framework, with benchmarks
|
||||
for cryptographic algorithms such as SHA1, SHA256, SHA512 and RIPEMD160. As well as the rolling bloom filter.
|
||||
|
||||
After compiling bitcoin-core, the benchmarks can be run with:
|
||||
`src/bench/bench_bitcoin`
|
||||
After compiling litecoin-core, the benchmarks can be run with:
|
||||
`src/bench/bench_litecoin`
|
||||
|
||||
The output will look similar to:
|
||||
```
|
||||
|
||||
@ -2,7 +2,7 @@ OpenBSD build guide
|
||||
======================
|
||||
(updated for OpenBSD 5.9)
|
||||
|
||||
This guide describes how to build bitcoind and command-line utilities on OpenBSD.
|
||||
This guide describes how to build litecoind and command-line utilities on OpenBSD.
|
||||
|
||||
As OpenBSD is most common as a server OS, we will not bother with the GUI.
|
||||
|
||||
@ -18,7 +18,7 @@ pkg_add automake # (select highest version, e.g. 1.15)
|
||||
pkg_add python # (select highest version, e.g. 3.5)
|
||||
```
|
||||
|
||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Litecoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||
|
||||
GCC
|
||||
-------
|
||||
@ -35,16 +35,16 @@ This compiler will not overwrite the system compiler, it will be installed as `e
|
||||
|
||||
Do not use `pkg_add boost`! The boost version installed thus is compiled using the `g++` compiler not `eg++`, which will result in a conflict between `/usr/local/lib/libestdc++.so.XX.0` and `/usr/lib/libstdc++.so.XX.0`, resulting in a test crash:
|
||||
|
||||
test_bitcoin:/usr/lib/libstdc++.so.57.0: /usr/local/lib/libestdc++.so.17.0 : WARNING: symbol(_ZN11__gnu_debug17_S_debug_me ssagesE) size mismatch, relink your program
|
||||
test_litecoin:/usr/lib/libstdc++.so.57.0: /usr/local/lib/libestdc++.so.17.0 : WARNING: symbol(_ZN11__gnu_debug17_S_debug_me ssagesE) size mismatch, relink your program
|
||||
...
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
This makes it necessary to build boost, or at least the parts used by Bitcoin Core, manually:
|
||||
This makes it necessary to build boost, or at least the parts used by Litecoin Core, manually:
|
||||
|
||||
```
|
||||
# Pick some path to install boost to, here we create a directory within the bitcoin directory
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
BOOST_PREFIX="${BITCOIN_ROOT}/boost"
|
||||
# Pick some path to install boost to, here we create a directory within the litecoin directory
|
||||
LITECOIN_ROOT=$(pwd)
|
||||
BOOST_PREFIX="${LITECOIN_ROOT}/boost"
|
||||
mkdir -p $BOOST_PREFIX
|
||||
|
||||
# Fetch the source and verify that it is not tampered with
|
||||
@ -58,7 +58,7 @@ cd boost_1_61_0
|
||||
# Also here: https://gist.githubusercontent.com/laanwj/bf359281dc319b8ff2e1/raw/92250de8404b97bb99d72ab898f4a8cb35ae1ea3/patch-boost_test_impl_execution_monitor_ipp.patch
|
||||
patch -p0 < /usr/ports/devel/boost/patches/patch-boost_test_impl_execution_monitor_ipp
|
||||
|
||||
# Build w/ minimum configuration necessary for bitcoin
|
||||
# Build w/ minimum configuration necessary for litecoin
|
||||
echo 'using gcc : : eg++ : <cxxflags>"-fvisibility=hidden -fPIC" <linkflags>"" <archiver>"ar" <striper>"strip" <ranlib>"ranlib" <rc>"" : ;' > user-config.jam
|
||||
config_opts="runtime-link=shared threadapi=pthread threading=multi link=static variant=release --layout=tagged --build-type=complete --user-config=user-config.jam -sNO_BZIP2=1"
|
||||
./bootstrap.sh --without-icu --with-libraries=chrono,filesystem,program_options,system,thread,test
|
||||
@ -74,9 +74,9 @@ See "Berkeley DB" in [build_unix.md](build_unix.md) for instructions on how to b
|
||||
You cannot use the BerkeleyDB library from ports, for the same reason as boost above (g++/libstd++ incompatibility).
|
||||
|
||||
```bash
|
||||
# Pick some path to install BDB to, here we create a directory within the bitcoin directory
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
||||
# Pick some path to install BDB to, here we create a directory within the litecoin directory
|
||||
LITECOIN_ROOT=$(pwd)
|
||||
BDB_PREFIX="${LITECOIN_ROOT}/db4"
|
||||
mkdir -p $BDB_PREFIX
|
||||
|
||||
# Fetch the source and verify that it is not tampered with
|
||||
@ -108,7 +108,7 @@ The change will only affect the current shell and processes spawned by it. To
|
||||
make the change system-wide, change `datasize-cur` and `datasize-max` in
|
||||
`/etc/login.conf`, and reboot.
|
||||
|
||||
### Building Bitcoin Core
|
||||
### Building Litecoin Core
|
||||
|
||||
**Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.
|
||||
|
||||
@ -161,9 +161,9 @@ gmake
|
||||
However, this does not appear to work. Compilation succeeds, but link fails
|
||||
with many 'local symbol discarded' errors:
|
||||
|
||||
local symbol 150: discarded in section `.text._ZN10tinyformat6detail14FormatIterator6finishEv' from libbitcoin_util.a(libbitcoin_util_a-random.o)
|
||||
local symbol 151: discarded in section `.text._ZN10tinyformat6detail14FormatIterator21streamStateFromFormatERSoRjPKcii' from libbitcoin_util.a(libbitcoin_util_a-random.o)
|
||||
local symbol 152: discarded in section `.text._ZN10tinyformat6detail12convertToIntIA13_cLb0EE6invokeERA13_Kc' from libbitcoin_util.a(libbitcoin_util_a-random.o)
|
||||
local symbol 150: discarded in section `.text._ZN10tinyformat6detail14FormatIterator6finishEv' from liblitecoin_util.a(liblitecoin_util_a-random.o)
|
||||
local symbol 151: discarded in section `.text._ZN10tinyformat6detail14FormatIterator21streamStateFromFormatERSoRjPKcii' from liblitecoin_util.a(liblitecoin_util_a-random.o)
|
||||
local symbol 152: discarded in section `.text._ZN10tinyformat6detail12convertToIntIA13_cLb0EE6invokeERA13_Kc' from liblitecoin_util.a(liblitecoin_util_a-random.o)
|
||||
|
||||
According to similar reported errors this is a binutils (ld) issue in 2.15, the
|
||||
version installed by OpenBSD 5.7:
|
||||
|
||||
@ -20,17 +20,17 @@ Dependencies
|
||||
|
||||
NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.
|
||||
|
||||
Build Bitcoin Core
|
||||
Build Litecoin Core
|
||||
------------------------
|
||||
|
||||
1. Clone the bitcoin source code and cd into `bitcoin`
|
||||
1. Clone the litecoin source code and cd into `litecoin`
|
||||
|
||||
git clone https://github.com/bitcoin/bitcoin
|
||||
cd bitcoin
|
||||
git clone https://github.com/litecoin-project/litecoin
|
||||
cd litecoin
|
||||
|
||||
2. Build bitcoin-core:
|
||||
2. Build litecoin-core:
|
||||
|
||||
Configure and build the headless bitcoin binaries as well as the GUI (if Qt is found).
|
||||
Configure and build the headless litecoin binaries as well as the GUI (if Qt is found).
|
||||
|
||||
You can disable the GUI build by passing `--without-gui` to configure.
|
||||
|
||||
@ -49,37 +49,37 @@ Build Bitcoin Core
|
||||
Running
|
||||
-------
|
||||
|
||||
Bitcoin Core is now available at `./src/bitcoind`
|
||||
Litecoin Core is now available at `./src/litecoind`
|
||||
|
||||
Before running, it's recommended you create an RPC configuration file.
|
||||
|
||||
echo -e "rpcuser=bitcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
||||
echo -e "rpcuser=litecoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Litecoin/litecoin.conf"
|
||||
|
||||
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
||||
chmod 600 "/Users/${USER}/Library/Application Support/Litecoin/litecoin.conf"
|
||||
|
||||
The first time you run bitcoind, it will start downloading the blockchain. This process could take several hours.
|
||||
The first time you run litecoind, it will start downloading the blockchain. This process could take several hours.
|
||||
|
||||
You can monitor the download process by looking at the debug.log file:
|
||||
|
||||
tail -f $HOME/Library/Application\ Support/Bitcoin/debug.log
|
||||
tail -f $HOME/Library/Application\ Support/Litecoin/debug.log
|
||||
|
||||
Other commands:
|
||||
-------
|
||||
|
||||
./src/bitcoind -daemon # Starts the bitcoin daemon.
|
||||
./src/bitcoin-cli --help # Outputs a list of command-line options.
|
||||
./src/bitcoin-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||
./src/litecoind -daemon # Starts the litecoin daemon.
|
||||
./src/litecoin-cli --help # Outputs a list of command-line options.
|
||||
./src/litecoin-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||
|
||||
Using Qt Creator as IDE
|
||||
------------------------
|
||||
You can use Qt Creator as an IDE, for bitcoin development.
|
||||
You can use Qt Creator as an IDE, for litecoin development.
|
||||
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
|
||||
Uncheck everything except Qt Creator during the installation process.
|
||||
|
||||
1. Make sure you installed everything through Homebrew mentioned above
|
||||
2. Do a proper ./configure --enable-debug
|
||||
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
|
||||
4. Enter "bitcoin-qt" as project name, enter src/qt as location
|
||||
4. Enter "litecoin-qt" as project name, enter src/qt as location
|
||||
5. Leave the file selection as it is
|
||||
6. Confirm the "summary page"
|
||||
7. In the "Projects" tab select "Manage Kits..."
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
UNIX BUILD NOTES
|
||||
====================
|
||||
Some notes on how to build Bitcoin Core in Unix.
|
||||
Some notes on how to build Litecoin Core in Unix.
|
||||
|
||||
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
|
||||
|
||||
Note
|
||||
---------------------
|
||||
Always use absolute paths to configure and compile bitcoin and the dependencies,
|
||||
Always use absolute paths to configure and compile litecoin and the dependencies,
|
||||
for example, when specifying the path of the dependency:
|
||||
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||
@ -24,7 +24,7 @@ make
|
||||
make install # optional
|
||||
```
|
||||
|
||||
This will build bitcoin-qt as well if the dependencies are met.
|
||||
This will build litecoin-qt as well if the dependencies are met.
|
||||
|
||||
Dependencies
|
||||
---------------------
|
||||
@ -55,7 +55,7 @@ Memory Requirements
|
||||
--------------------
|
||||
|
||||
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
|
||||
memory available when compiling Bitcoin Core. On systems with less, gcc can be
|
||||
memory available when compiling Litecoin Core. On systems with less, gcc can be
|
||||
tuned to conserve memory with additional CXXFLAGS:
|
||||
|
||||
|
||||
@ -92,7 +92,7 @@ BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distri
|
||||
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
|
||||
pass `--with-incompatible-bdb` to configure.
|
||||
|
||||
See the section "Disable-wallet mode" to build Bitcoin Core without wallet.
|
||||
See the section "Disable-wallet mode" to build Litecoin Core without wallet.
|
||||
|
||||
Optional:
|
||||
|
||||
@ -105,7 +105,7 @@ ZMQ dependencies:
|
||||
Dependencies for the GUI: Ubuntu & Debian
|
||||
-----------------------------------------
|
||||
|
||||
If you want to build Bitcoin-Qt, make sure that the required packages for Qt development
|
||||
If you want to build Litecoin-Qt, make sure that the required packages for Qt development
|
||||
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
|
||||
If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass `--with-gui=qt4` to configure to choose Qt4.
|
||||
To build without GUI pass `--without-gui`.
|
||||
@ -122,7 +122,7 @@ libqrencode (optional) can be installed with:
|
||||
|
||||
sudo apt-get install libqrencode-dev
|
||||
|
||||
Once these are installed, they will be found by configure and a bitcoin-qt executable will be
|
||||
Once these are installed, they will be found by configure and a litecoin-qt executable will be
|
||||
built by default.
|
||||
|
||||
Dependency Build Instructions: Fedora
|
||||
@ -145,7 +145,7 @@ libqrencode (optional) can be installed with:
|
||||
|
||||
Notes
|
||||
-----
|
||||
The release is built with GCC and then "strip bitcoind" to strip the debug
|
||||
The release is built with GCC and then "strip litecoind" to strip the debug
|
||||
symbols, which reduces the executable size by about 90%.
|
||||
|
||||
|
||||
@ -166,10 +166,10 @@ Berkeley DB
|
||||
It is recommended to use Berkeley DB 4.8. If you have to build it yourself:
|
||||
|
||||
```bash
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
LITECOIN_ROOT=$(pwd)
|
||||
|
||||
# Pick some path to install BDB to, here we create a directory within the bitcoin directory
|
||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
||||
# Pick some path to install BDB to, here we create a directory within the litecoin directory
|
||||
BDB_PREFIX="${LITECOIN_ROOT}/db4"
|
||||
mkdir -p $BDB_PREFIX
|
||||
|
||||
# Fetch the source and verify that it is not tampered with
|
||||
@ -184,8 +184,8 @@ cd db-4.8.30.NC/build_unix/
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||
make install
|
||||
|
||||
# Configure Bitcoin Core to use our own-built instance of BDB
|
||||
cd $BITCOIN_ROOT
|
||||
# Configure Litecoin Core to use our own-built instance of BDB
|
||||
cd $LITECOIN_ROOT
|
||||
./autogen.sh
|
||||
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)
|
||||
```
|
||||
@ -203,7 +203,7 @@ If you need to build Boost yourself:
|
||||
|
||||
Security
|
||||
--------
|
||||
To help make your bitcoin installation more secure by making certain attacks impossible to
|
||||
To help make your litecoin installation more secure by making certain attacks impossible to
|
||||
exploit even if a vulnerability is found, binaries are hardened by default.
|
||||
This can be disabled with:
|
||||
|
||||
@ -227,7 +227,7 @@ Hardening enables the following features:
|
||||
|
||||
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
|
||||
|
||||
scanelf -e ./bitcoin
|
||||
scanelf -e ./litecoin
|
||||
|
||||
The output should contain:
|
||||
|
||||
@ -236,13 +236,13 @@ Hardening enables the following features:
|
||||
|
||||
* Non-executable Stack
|
||||
If the stack is executable then trivial stack based buffer overflow exploits are possible if
|
||||
vulnerable buffers are found. By default, bitcoin should be built with a non-executable stack
|
||||
vulnerable buffers are found. By default, litecoin should be built with a non-executable stack
|
||||
but if one of the libraries it uses asks for an executable stack or someone makes a mistake
|
||||
and uses a compiler extension which requires an executable stack, it will silently build an
|
||||
executable without the non-executable stack protection.
|
||||
|
||||
To verify that the stack is non-executable after compiling use:
|
||||
`scanelf -e ./bitcoin`
|
||||
`scanelf -e ./litecoin`
|
||||
|
||||
the output should contain:
|
||||
STK/REL/PTL
|
||||
@ -252,7 +252,7 @@ Hardening enables the following features:
|
||||
|
||||
Disable-wallet mode
|
||||
--------------------
|
||||
When the intention is to run only a P2P node without a wallet, bitcoin may be compiled in
|
||||
When the intention is to run only a P2P node without a wallet, litecoin may be compiled in
|
||||
disable-wallet mode with:
|
||||
|
||||
./configure --disable-wallet
|
||||
@ -274,8 +274,8 @@ Setup and Build Example: Arch Linux
|
||||
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
|
||||
|
||||
pacman -S git base-devel boost libevent python
|
||||
git clone https://github.com/bitcoin/bitcoin.git
|
||||
cd bitcoin/
|
||||
git clone https://github.com/litecoin-project/litecoin.git
|
||||
cd litecoin/
|
||||
./autogen.sh
|
||||
./configure --disable-wallet --without-gui --without-miniupnpc
|
||||
make check
|
||||
@ -284,7 +284,7 @@ Note:
|
||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
||||
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
|
||||
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Bitcoin Core distributions and independently built
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Litecoin Core distributions and independently built
|
||||
node software is desired, Berkeley DB 4.8 must be used.
|
||||
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
WINDOWS BUILD NOTES
|
||||
====================
|
||||
|
||||
Some notes on how to build Bitcoin Core for Windows.
|
||||
Some notes on how to build Litecoin Core for Windows.
|
||||
|
||||
Most developers use cross-compilation from Ubuntu to build executables for
|
||||
Windows. This is also used to build the release binaries.
|
||||
|
||||
@ -118,7 +118,7 @@ to see it.
|
||||
|
||||
**testnet and regtest modes**
|
||||
|
||||
Run with the -testnet option to run with "play bitcoins" on the test network, if you
|
||||
Run with the -testnet option to run with "play litecoins" on the test network, if you
|
||||
are testing multi-machine code that needs to operate across the internet.
|
||||
|
||||
If you are testing something that can run on one machine, run with the -regtest option.
|
||||
@ -127,7 +127,7 @@ that run in -regtest mode.
|
||||
|
||||
**DEBUG_LOCKORDER**
|
||||
|
||||
Bitcoin Core is a multithreaded application, and deadlocks or other multithreading bugs
|
||||
Litecoin Core is a multithreaded application, and deadlocks or other multithreading bugs
|
||||
can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure
|
||||
CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of which locks
|
||||
are held, and adds warnings to the debug.log file if inconsistencies are detected.
|
||||
@ -176,7 +176,7 @@ Threads
|
||||
|
||||
- ThreadRPCServer : Remote procedure call handler, listens on port 9332 for connections and services them.
|
||||
|
||||
- BitcoinMiner : Generates bitcoins (if wallet is enabled).
|
||||
- LitecoinMiner : Generates litecoins (if wallet is enabled).
|
||||
|
||||
- Shutdown : Does an orderly shutdown of everything.
|
||||
|
||||
@ -186,7 +186,7 @@ Ignoring IDE/editor files
|
||||
In closed-source environments in which everyone uses the same IDE it is common
|
||||
to add temporary files it produces to the project-wide `.gitignore` file.
|
||||
|
||||
However, in open source software such as Bitcoin Core, where everyone uses
|
||||
However, in open source software such as Litecoin Core, where everyone uses
|
||||
their own editors/IDE/tools, it is less common. Only you know what files your
|
||||
editor produces and this may change from version to version. The canonical way
|
||||
to do this is thus to create your local gitignore. Add this to `~/.gitconfig`:
|
||||
@ -216,9 +216,9 @@ Development guidelines
|
||||
============================
|
||||
|
||||
A few non-style-related recommendations for developers, as well as points to
|
||||
pay attention to for reviewers of Bitcoin Core code.
|
||||
pay attention to for reviewers of Litecoin Core code.
|
||||
|
||||
General Bitcoin Core
|
||||
General Litecoin Core
|
||||
----------------------
|
||||
|
||||
- New features should be exposed on RPC first, then can be made available in the GUI
|
||||
@ -328,7 +328,7 @@ Strings and formatting
|
||||
|
||||
- For `strprintf`, `LogPrint`, `LogPrintf` formatting characters don't need size specifiers
|
||||
|
||||
- *Rationale*: Bitcoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion
|
||||
- *Rationale*: Litecoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion
|
||||
|
||||
Threads and synchronization
|
||||
----------------------------
|
||||
@ -423,7 +423,7 @@ Git and github tips
|
||||
|
||||
[remote "upstream-pull"]
|
||||
fetch = +refs/pull/*:refs/remotes/upstream-pull/*
|
||||
url = git@github.com:bitcoin/bitcoin.git
|
||||
url = git@github.com:litecoin-project/litecoin.git
|
||||
|
||||
This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all`
|
||||
or `git fetch upstream-pull`. Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`,
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
Expectations for DNS Seed operators
|
||||
====================================
|
||||
|
||||
Bitcoin Core attempts to minimize the level of trust in DNS seeds,
|
||||
Litecoin Core attempts to minimize the level of trust in DNS seeds,
|
||||
but DNS seeds still pose a small amount of risk for the network.
|
||||
As such, DNS seeds must be run by entities which have some minimum
|
||||
level of trust within the Bitcoin community.
|
||||
level of trust within the Litecoin community.
|
||||
|
||||
Other implementations of Bitcoin software may also use the same
|
||||
Other implementations of Litecoin software may also use the same
|
||||
seeds and may be more exposed. In light of this exposure, this
|
||||
document establishes some basic expectations for operating dnsseeds.
|
||||
|
||||
@ -16,7 +16,7 @@ and not sell or transfer control of the DNS seed. Any hosting services
|
||||
contracted by the operator are equally expected to uphold these expectations.
|
||||
|
||||
1. The DNS seed results must consist exclusively of fairly selected and
|
||||
functioning Bitcoin nodes from the public network to the best of the
|
||||
functioning Litecoin nodes from the public network to the best of the
|
||||
operator's understanding and capability.
|
||||
|
||||
2. For the avoidance of doubt, the results may be randomized but must not
|
||||
@ -26,7 +26,7 @@ urgent technical necessity and disclosed.
|
||||
3. The results may not be served with a DNS TTL of less than one minute.
|
||||
|
||||
4. Any logging of DNS queries should be only that which is necessary
|
||||
for the operation of the service or urgent health of the Bitcoin
|
||||
for the operation of the service or urgent health of the Litecoin
|
||||
network and must not be retained longer than necessary nor disclosed
|
||||
to any third party.
|
||||
|
||||
@ -42,13 +42,13 @@ details of their operating practices.
|
||||
related to the DNS seed operation.
|
||||
|
||||
If these expectations cannot be satisfied the operator should
|
||||
discontinue providing services and contact the active Bitcoin
|
||||
discontinue providing services and contact the active Litecoin
|
||||
Core development team as well as posting on
|
||||
[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev).
|
||||
[litecoin-dev](https://groups.google.com/forum/#!forum/litecoin-dev).
|
||||
|
||||
Behavior outside of these expectations may be reasonable in some
|
||||
situations but should be discussed in public in advance.
|
||||
|
||||
See also
|
||||
----------
|
||||
- [bitcoin-seeder](https://github.com/sipa/bitcoin-seeder) is a reference implementation of a DNS seed.
|
||||
- [litecoin-seeder](https://github.com/pooler/litecoin-seeder) is a reference implementation of a DNS seed.
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
|
||||
* banlist.dat: stores the IPs/Subnets of banned nodes
|
||||
* bitcoin.conf: contains configuration settings for bitcoind or bitcoin-qt
|
||||
* bitcoind.pid: stores the process id of bitcoind while running
|
||||
* litecoin.conf: contains configuration settings for litecoind or litecoin-qt
|
||||
* litecoind.pid: stores the process id of litecoind while running
|
||||
* blocks/blk000??.dat: block data (custom, 128 MiB per file); since 0.8.0
|
||||
* blocks/rev000??.dat; block undo data (custom); since 0.8.0 (format changed since pre-0.8)
|
||||
* blocks/index/*; block index (LevelDB); since 0.8.0
|
||||
* chainstate/*; block chain state database (LevelDB); since 0.8.0
|
||||
* database/*: BDB database environment; only used for wallet since 0.8.0
|
||||
* db.log: wallet database log file
|
||||
* debug.log: contains debug information and general logging generated by bitcoind or bitcoin-qt
|
||||
* debug.log: contains debug information and general logging generated by litecoind or litecoin-qt
|
||||
* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation; since 0.10.0
|
||||
* peers.dat: peer IP address database (custom format); since 0.7.0
|
||||
* wallet.dat: personal wallet (BDB) with keys and transactions
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
Gitian building
|
||||
================
|
||||
|
||||
*Setup instructions for a Gitian build of Bitcoin Core using a Debian VM or physical system.*
|
||||
*Setup instructions for a Gitian build of Litecoin Core using a Debian VM or physical system.*
|
||||
|
||||
Gitian is the deterministic build process that is used to build the Bitcoin
|
||||
Gitian is the deterministic build process that is used to build the Litecoin
|
||||
Core executables. It provides a way to be reasonably sure that the
|
||||
executables are really built from the source on GitHub. It also makes sure that
|
||||
the same, tested dependencies are used and statically built into the executable.
|
||||
@ -11,7 +11,7 @@ the same, tested dependencies are used and statically built into the executable.
|
||||
Multiple developers build the source code by following a specific descriptor
|
||||
("recipe"), cryptographically sign the result, and upload the resulting signature.
|
||||
These results are compared and only if they match, the build is accepted and uploaded
|
||||
to bitcoin.org.
|
||||
to litecoin.org.
|
||||
|
||||
More independent Gitian builders are needed, which is why this guide exists.
|
||||
It is preferred you follow these steps yourself instead of using someone else's
|
||||
@ -26,7 +26,7 @@ Table of Contents
|
||||
- [Installing Gitian](#installing-gitian)
|
||||
- [Setting up the Gitian image](#setting-up-the-gitian-image)
|
||||
- [Getting and building the inputs](#getting-and-building-the-inputs)
|
||||
- [Building Bitcoin Core](#building-bitcoin-core)
|
||||
- [Building Litecoin Core](#building-litecoin-core)
|
||||
- [Building an alternative repository](#building-an-alternative-repository)
|
||||
- [Signing externally](#signing-externally)
|
||||
- [Uploading signatures](#uploading-signatures)
|
||||
@ -305,12 +305,12 @@ cd ..
|
||||
|
||||
**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*.
|
||||
|
||||
Clone the git repositories for bitcoin and Gitian.
|
||||
Clone the git repositories for litecoin and Gitian.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/devrandom/gitian-builder.git
|
||||
git clone https://github.com/bitcoin/bitcoin
|
||||
git clone https://github.com/bitcoin-core/gitian.sigs.git
|
||||
git clone https://github.com/litecoin-project/litecoin
|
||||
git clone https://github.com/litecoin-project/gitian.sigs.ltc.git
|
||||
```
|
||||
|
||||
Setting up the Gitian image
|
||||
@ -337,16 +337,16 @@ Getting and building the inputs
|
||||
--------------------------------
|
||||
|
||||
Follow the instructions in [doc/release-process.md](release-process.md#fetch-and-build-inputs-first-time-or-when-dependency-versions-change)
|
||||
in the bitcoin repository under 'Fetch and create inputs' to install sources which require
|
||||
in the litecoin repository under 'Fetch and create inputs' to install sources which require
|
||||
manual intervention. Also optionally follow the next step: 'Seed the Gitian sources cache
|
||||
and offline git repositories' which will fetch the remaining files required for building
|
||||
offline.
|
||||
|
||||
Building Bitcoin Core
|
||||
Building Litecoin Core
|
||||
----------------
|
||||
|
||||
To build Bitcoin Core (for Linux, OS X and Windows) just follow the steps under 'perform
|
||||
Gitian builds' in [doc/release-process.md](release-process.md#perform-gitian-builds) in the bitcoin repository.
|
||||
To build Litecoin Core (for Linux, OS X and Windows) just follow the steps under 'perform
|
||||
Gitian builds' in [doc/release-process.md](release-process.md#perform-gitian-builds) in the litecoin repository.
|
||||
|
||||
This may take some time as it will build all the dependencies needed for each descriptor.
|
||||
These dependencies will be cached after a successful build to avoid rebuilding them when possible.
|
||||
@ -360,12 +360,12 @@ tail -f var/build.log
|
||||
|
||||
Output from `gbuild` will look something like
|
||||
|
||||
Initialized empty Git repository in /home/debian/gitian-builder/inputs/bitcoin/.git/
|
||||
Initialized empty Git repository in /home/debian/gitian-builder/inputs/litecoin/.git/
|
||||
remote: Counting objects: 57959, done.
|
||||
remote: Total 57959 (delta 0), reused 0 (delta 0), pack-reused 57958
|
||||
Receiving objects: 100% (57959/57959), 53.76 MiB | 484.00 KiB/s, done.
|
||||
Resolving deltas: 100% (41590/41590), done.
|
||||
From https://github.com/bitcoin/bitcoin
|
||||
From https://github.com/litecoin-project/litecoin
|
||||
... (new tags, new branch etc)
|
||||
--- Building for trusty amd64 ---
|
||||
Stopping target if it is up
|
||||
@ -391,18 +391,18 @@ and inputs.
|
||||
|
||||
For example:
|
||||
```bash
|
||||
URL=https://github.com/laanwj/bitcoin.git
|
||||
URL=https://github.com/thrasher-/litecoin.git
|
||||
COMMIT=2014_03_windows_unicode_path
|
||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gbuild --commit litecoin=${COMMIT} --url litecoin=${URL} ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gbuild --commit litecoin=${COMMIT} --url litecoin=${URL} ../litecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gbuild --commit litecoin=${COMMIT} --url litecoin=${URL} ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
```
|
||||
|
||||
Building fully offline
|
||||
-----------------------
|
||||
|
||||
For building fully offline including attaching signatures to unsigned builds, the detached-sigs repository
|
||||
and the bitcoin git repository with the desired tag must both be available locally, and then gbuild must be
|
||||
and the litecoin git repository with the desired tag must both be available locally, and then gbuild must be
|
||||
told where to find them. It also requires an apt-cacher-ng which is fully-populated but set to offline mode, or
|
||||
manually disabling gitian-builder's use of apt-get to update the VM build environment.
|
||||
|
||||
@ -421,7 +421,7 @@ cd /path/to/gitian-builder
|
||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root apt-get update
|
||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root \
|
||||
-e DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -y install \
|
||||
$( sed -ne '/^packages:/,/[^-] .*/ {/^- .*/{s/"//g;s/- //;p}}' ../bitcoin/contrib/gitian-descriptors/*|sort|uniq )
|
||||
$( sed -ne '/^packages:/,/[^-] .*/ {/^- .*/{s/"//g;s/- //;p}}' ../litecoin/contrib/gitian-descriptors/*|sort|uniq )
|
||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root apt-get -q -y purge grub
|
||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root -e DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
|
||||
```
|
||||
@ -441,12 +441,12 @@ Then when building, override the remote URLs that gbuild would otherwise pull fr
|
||||
```bash
|
||||
|
||||
cd /some/root/path/
|
||||
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
|
||||
git clone https://github.com/litecoin-project/litecoin-detached-sigs.git
|
||||
|
||||
BTCPATH=/some/root/path/bitcoin
|
||||
SIGPATH=/some/root/path/bitcoin-detached-sigs
|
||||
BTCPATH=/some/root/path/litecoin
|
||||
SIGPATH=/some/root/path/litecoin-detached-sigs
|
||||
|
||||
./bin/gbuild --url bitcoin=${BTCPATH},signature=${SIGPATH} ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gbuild --url litecoin=${BTCPATH},signature=${SIGPATH} ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
```
|
||||
|
||||
Signing externally
|
||||
@ -458,12 +458,12 @@ and follow the steps in the build process as normal.
|
||||
gpg: skipped "laanwj": secret key not available
|
||||
|
||||
When you execute `gsign` you will get an error from GPG, which can be ignored. Copy the resulting `.assert` files
|
||||
in `gitian.sigs` to your signing machine and do
|
||||
in `gitian.sigs.ltc` to your signing machine and do
|
||||
|
||||
```bash
|
||||
gpg --detach-sign ${VERSION}-linux/${SIGNER}/bitcoin-linux-build.assert
|
||||
gpg --detach-sign ${VERSION}-win/${SIGNER}/bitcoin-win-build.assert
|
||||
gpg --detach-sign ${VERSION}-osx-unsigned/${SIGNER}/bitcoin-osx-build.assert
|
||||
gpg --detach-sign ${VERSION}-linux/${SIGNER}/litecoin-linux-build.assert
|
||||
gpg --detach-sign ${VERSION}-win/${SIGNER}/litecoin-win-build.assert
|
||||
gpg --detach-sign ${VERSION}-osx-unsigned/${SIGNER}/litecoin-osx-build.assert
|
||||
```
|
||||
|
||||
This will create the `.sig` files that can be committed together with the `.assert` files to assert your
|
||||
@ -473,5 +473,5 @@ Uploading signatures
|
||||
---------------------
|
||||
|
||||
After building and signing you can push your signatures (both the `.assert` and `.assert.sig` files) to the
|
||||
[bitcoin-core/gitian.sigs](https://github.com/bitcoin-core/gitian.sigs/) repository, or if that's not possible create a pull
|
||||
request. You can also mail the files to Wladimir (laanwj@gmail.com) and he will commit them.
|
||||
[gitian.sigs.ltc](https://github.com/litecoin-project/gitian.sigs.ltc/) repository, or if that's not possible create a pull
|
||||
request. You can also mail the files to thrasher (thrasher@addictionsoftware.com) and he will commit them.
|
||||
|
||||
@ -3,7 +3,7 @@ Reduce Traffic
|
||||
|
||||
Some node operators need to deal with bandwidth caps imposed by their ISPs.
|
||||
|
||||
By default, bitcoin-core allows up to 125 connections to different peers, 8 of
|
||||
By default, litecoin-core allows up to 125 connections to different peers, 8 of
|
||||
which are outbound. You can therefore, have at most 117 inbound connections.
|
||||
|
||||
The default settings can result in relatively significant traffic consumption.
|
||||
|
||||
@ -21,12 +21,12 @@ Before every major release:
|
||||
Check out the source code in the following directory hierarchy.
|
||||
|
||||
cd /path/to/your/toplevel/build
|
||||
git clone https://github.com/bitcoin-core/gitian.sigs.git
|
||||
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
|
||||
git clone https://github.com/litecoin-project/gitian.sigs.ltc.git
|
||||
git clone https://github.com/litecoin-project/litecoin-detached-sigs.git
|
||||
git clone https://github.com/devrandom/gitian-builder.git
|
||||
git clone https://github.com/bitcoin/bitcoin.git
|
||||
git clone https://github.com/litecoin-project/litecoin.git
|
||||
|
||||
### Bitcoin maintainers/release engineers, update version in sources
|
||||
### Litecoin maintainers/release engineers, update version in sources
|
||||
|
||||
Update the following:
|
||||
|
||||
@ -63,16 +63,16 @@ Tag version (or release candidate) in git
|
||||
|
||||
Setup Gitian descriptors:
|
||||
|
||||
pushd ./bitcoin
|
||||
pushd ./litecoin
|
||||
export SIGNER=(your Gitian key, ie bluematt, sipa, etc)
|
||||
export VERSION=(new version, e.g. 0.8.0)
|
||||
git fetch
|
||||
git checkout v${VERSION}
|
||||
popd
|
||||
|
||||
Ensure your gitian.sigs are up-to-date if you wish to gverify your builds against other Gitian signatures.
|
||||
Ensure your gitian.sigs.ltc are up-to-date if you wish to gverify your builds against other Gitian signatures.
|
||||
|
||||
pushd ./gitian.sigs
|
||||
pushd ./gitian.sigs.ltc
|
||||
git pull
|
||||
popd
|
||||
|
||||
@ -97,7 +97,7 @@ Create the OS X SDK tarball, see the [OS X readme](README_osx.md) for details, a
|
||||
By default, Gitian will fetch source files as needed. To cache them ahead of time:
|
||||
|
||||
pushd ./gitian-builder
|
||||
make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common
|
||||
make -C ../litecoin/depends download SOURCES_PATH=`pwd`/cache/common
|
||||
popd
|
||||
|
||||
Only missing files will be fetched, so this is safe to re-run for each build.
|
||||
@ -105,94 +105,94 @@ Only missing files will be fetched, so this is safe to re-run for each build.
|
||||
NOTE: Offline builds must use the --url flag to ensure Gitian fetches only from local URLs. For example:
|
||||
|
||||
pushd ./gitian-builder
|
||||
./bin/gbuild --url bitcoin=/path/to/bitcoin,signature=/path/to/sigs {rest of arguments}
|
||||
./bin/gbuild --url litecoin=/path/to/litecoin,signature=/path/to/sigs {rest of arguments}
|
||||
popd
|
||||
|
||||
The gbuild invocations below <b>DO NOT DO THIS</b> by default.
|
||||
|
||||
### Build and sign Bitcoin Core for Linux, Windows, and OS X:
|
||||
### Build and sign Litecoin Core for Linux, Windows, and OS X:
|
||||
|
||||
pushd ./gitian-builder
|
||||
./bin/gbuild --memory 3000 --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../
|
||||
./bin/gbuild --memory 3000 --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
mv build/out/litecoin-*.tar.gz build/out/src/litecoin-*.tar.gz ../
|
||||
|
||||
./bin/gbuild --memory 3000 --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
mv build/out/bitcoin-*-win-unsigned.tar.gz inputs/bitcoin-win-unsigned.tar.gz
|
||||
mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../
|
||||
./bin/gbuild --memory 3000 --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
mv build/out/litecoin-*-win-unsigned.tar.gz inputs/litecoin-win-unsigned.tar.gz
|
||||
mv build/out/litecoin-*.zip build/out/litecoin-*.exe ../
|
||||
|
||||
./bin/gbuild --memory 3000 --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
mv build/out/bitcoin-*-osx-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
|
||||
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../
|
||||
./bin/gbuild --memory 3000 --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
mv build/out/litecoin-*-osx-unsigned.tar.gz inputs/litecoin-osx-unsigned.tar.gz
|
||||
mv build/out/litecoin-*.tar.gz build/out/litecoin-*.dmg ../
|
||||
popd
|
||||
|
||||
Build output expected:
|
||||
|
||||
1. source tarball (`bitcoin-${VERSION}.tar.gz`)
|
||||
2. linux 32-bit and 64-bit dist tarballs (`bitcoin-${VERSION}-linux[32|64].tar.gz`)
|
||||
3. windows 32-bit and 64-bit unsigned installers and dist zips (`bitcoin-${VERSION}-win[32|64]-setup-unsigned.exe`, `bitcoin-${VERSION}-win[32|64].zip`)
|
||||
4. OS X unsigned installer and dist tarball (`bitcoin-${VERSION}-osx-unsigned.dmg`, `bitcoin-${VERSION}-osx64.tar.gz`)
|
||||
5. Gitian signatures (in `gitian.sigs/${VERSION}-<linux|{win,osx}-unsigned>/(your Gitian key)/`)
|
||||
1. source tarball (`litecoin-${VERSION}.tar.gz`)
|
||||
2. linux 32-bit and 64-bit dist tarballs (`litecoin-${VERSION}-linux[32|64].tar.gz`)
|
||||
3. windows 32-bit and 64-bit unsigned installers and dist zips (`litecoin-${VERSION}-win[32|64]-setup-unsigned.exe`, `litecoin-${VERSION}-win[32|64].zip`)
|
||||
4. OS X unsigned installer and dist tarball (`litecoin-${VERSION}-osx-unsigned.dmg`, `litecoin-${VERSION}-osx64.tar.gz`)
|
||||
5. Gitian signatures (in `gitian.sigs.ltc/${VERSION}-<linux|{win,osx}-unsigned>/(your Gitian key)/`)
|
||||
|
||||
### Verify other gitian builders signatures to your own. (Optional)
|
||||
|
||||
Add other gitian builders keys to your gpg keyring
|
||||
|
||||
gpg --import bitcoin/contrib/gitian-keys/*.pgp
|
||||
gpg --import litecoin/contrib/gitian-keys/*.pgp
|
||||
|
||||
Verify the signatures
|
||||
|
||||
pushd ./gitian-builder
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-linux ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-unsigned ../litecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-unsigned ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
popd
|
||||
|
||||
### Next steps:
|
||||
|
||||
Commit your signature to gitian.sigs:
|
||||
Commit your signature to gitian.sigs.ltc:
|
||||
|
||||
pushd gitian.sigs
|
||||
pushd gitian.sigs.ltc
|
||||
git add ${VERSION}-linux/${SIGNER}
|
||||
git add ${VERSION}-win-unsigned/${SIGNER}
|
||||
git add ${VERSION}-osx-unsigned/${SIGNER}
|
||||
git commit -a
|
||||
git push # Assuming you can push to the gitian.sigs tree
|
||||
git push # Assuming you can push to the gitian.sigs.ltc tree
|
||||
popd
|
||||
|
||||
Wait for Windows/OS X detached signatures:
|
||||
|
||||
- Once the Windows/OS X builds each have 3 matching signatures, they will be signed with their respective release keys.
|
||||
- Detached signatures will then be committed to the [bitcoin-detached-sigs](https://github.com/bitcoin-core/bitcoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
|
||||
- Detached signatures will then be committed to the [litecoin-detached-sigs](https://github.com/litecoin-project/litecoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
|
||||
|
||||
Create (and optionally verify) the signed OS X binary:
|
||||
|
||||
pushd ./gitian-builder
|
||||
./bin/gbuild -i --commit signature=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
mv build/out/bitcoin-osx-signed.dmg ../bitcoin-${VERSION}-osx.dmg
|
||||
./bin/gbuild -i --commit signature=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-signed ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
mv build/out/litecoin-osx-signed.dmg ../litecoin-${VERSION}-osx.dmg
|
||||
popd
|
||||
|
||||
Create (and optionally verify) the signed Windows binaries:
|
||||
|
||||
pushd ./gitian-builder
|
||||
./bin/gbuild -i --commit signature=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-signed ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
mv build/out/bitcoin-*win64-setup.exe ../bitcoin-${VERSION}-win64-setup.exe
|
||||
mv build/out/bitcoin-*win32-setup.exe ../bitcoin-${VERSION}-win32-setup.exe
|
||||
./bin/gbuild -i --commit signature=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gsign --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-signed ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
mv build/out/litecoin-*win64-setup.exe ../litecoin-${VERSION}-win64-setup.exe
|
||||
mv build/out/litecoin-*win32-setup.exe ../litecoin-${VERSION}-win32-setup.exe
|
||||
popd
|
||||
|
||||
Commit your signature for the signed OS X/Windows binaries:
|
||||
|
||||
pushd gitian.sigs
|
||||
pushd gitian.sigs.ltc
|
||||
git add ${VERSION}-osx-signed/${SIGNER}
|
||||
git add ${VERSION}-win-signed/${SIGNER}
|
||||
git commit -a
|
||||
git push # Assuming you can push to the gitian.sigs tree
|
||||
git push # Assuming you can push to the gitian.sigs.ltc tree
|
||||
popd
|
||||
|
||||
### After 3 or more people have gitian-built and their results match:
|
||||
@ -205,23 +205,23 @@ sha256sum * > SHA256SUMS
|
||||
|
||||
The list of files should be:
|
||||
```
|
||||
bitcoin-${VERSION}-aarch64-linux-gnu.tar.gz
|
||||
bitcoin-${VERSION}-arm-linux-gnueabihf.tar.gz
|
||||
bitcoin-${VERSION}-i686-pc-linux-gnu.tar.gz
|
||||
bitcoin-${VERSION}-x86_64-linux-gnu.tar.gz
|
||||
bitcoin-${VERSION}-osx64.tar.gz
|
||||
bitcoin-${VERSION}-osx.dmg
|
||||
bitcoin-${VERSION}.tar.gz
|
||||
bitcoin-${VERSION}-win32-setup.exe
|
||||
bitcoin-${VERSION}-win32.zip
|
||||
bitcoin-${VERSION}-win64-setup.exe
|
||||
bitcoin-${VERSION}-win64.zip
|
||||
litecoin-${VERSION}-aarch64-linux-gnu.tar.gz
|
||||
litecoin-${VERSION}-arm-linux-gnueabihf.tar.gz
|
||||
litecoin-${VERSION}-i686-pc-linux-gnu.tar.gz
|
||||
litecoin-${VERSION}-x86_64-linux-gnu.tar.gz
|
||||
litecoin-${VERSION}-osx64.tar.gz
|
||||
litecoin-${VERSION}-osx.dmg
|
||||
litecoin-${VERSION}.tar.gz
|
||||
litecoin-${VERSION}-win32-setup.exe
|
||||
litecoin-${VERSION}-win32.zip
|
||||
litecoin-${VERSION}-win64-setup.exe
|
||||
litecoin-${VERSION}-win64.zip
|
||||
```
|
||||
The `*-debug*` files generated by the gitian build contain debug symbols
|
||||
for troubleshooting by developers. It is assumed that anyone that is interested
|
||||
in debugging can run gitian to generate the files for themselves. To avoid
|
||||
end-user confusion about which file to pick, as well as save storage
|
||||
space *do not upload these to the bitcoin.org server, nor put them in the torrent*.
|
||||
space *do not upload these to the litecoin.org server, nor put them in the torrent*.
|
||||
|
||||
- GPG-sign it, delete the unsigned file:
|
||||
```
|
||||
@ -231,46 +231,23 @@ rm SHA256SUMS
|
||||
(the digest algorithm is forced to sha256 to avoid confusion of the `Hash:` header that GPG adds with the SHA256 used for the files)
|
||||
Note: check that SHA256SUMS itself doesn't end up in SHA256SUMS, which is a spurious/nonsensical entry.
|
||||
|
||||
- Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the bitcoin.org server
|
||||
into `/var/www/bin/bitcoin-core-${VERSION}`
|
||||
- Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the litecoin.org server.
|
||||
|
||||
- A `.torrent` will appear in the directory after a few minutes. Optionally help seed this torrent. To get the `magnet:` URI use:
|
||||
```bash
|
||||
transmission-show -m <torrent file>
|
||||
```
|
||||
Insert the magnet URI into the announcement sent to mailing lists. This permits
|
||||
people without access to `bitcoin.org` to download the binary distribution.
|
||||
Also put it into the `optional_magnetlink:` slot in the YAML file for
|
||||
bitcoin.org (see below for bitcoin.org update instructions).
|
||||
|
||||
- Update bitcoin.org version
|
||||
|
||||
- First, check to see if the Bitcoin.org maintainers have prepared a
|
||||
release: https://github.com/bitcoin-dot-org/bitcoin.org/labels/Releases
|
||||
|
||||
- If they have, it will have previously failed their Travis CI
|
||||
checks because the final release files weren't uploaded.
|
||||
Trigger a Travis CI rebuild---if it passes, merge.
|
||||
|
||||
- If they have not prepared a release, follow the Bitcoin.org release
|
||||
instructions: https://github.com/bitcoin-dot-org/bitcoin.org#release-notes
|
||||
|
||||
- After the pull request is merged, the website will automatically show the newest version within 15 minutes, as well
|
||||
as update the OS download links. Ping @saivann/@harding (saivann/harding on Freenode) in case anything goes wrong
|
||||
- Update litecoin.org version
|
||||
|
||||
- Announce the release:
|
||||
|
||||
- bitcoin-dev and bitcoin-core-dev mailing list
|
||||
- litecoin-dev mailing list
|
||||
|
||||
- Bitcoin Core announcements list https://bitcoincore.org/en/list/announcements/join/
|
||||
- Litecoin Core announcements list https://groups.google.com/forum/#!forum/litecoin-dev
|
||||
|
||||
- bitcoincore.org blog post
|
||||
- blog.litecoin.org blog post
|
||||
|
||||
- Update title of #bitcoin on Freenode IRC
|
||||
- litecointalk.io forum announcement
|
||||
|
||||
- Optionally twitter, reddit /r/Bitcoin, ... but this will usually sort out itself
|
||||
- Update title of #litecoin on Freenode IRC
|
||||
|
||||
- Notify BlueMatt so that he can start building [the PPAs](https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin)
|
||||
- Optionally twitter, reddit /r/Litecoin, ... but this will usually sort out itself
|
||||
|
||||
- Add release notes for the new version to the directory `doc/release-notes` in git master
|
||||
|
||||
|
||||
40
doc/tor.md
40
doc/tor.md
@ -1,16 +1,16 @@
|
||||
TOR SUPPORT IN BITCOIN
|
||||
TOR SUPPORT IN LITECOIN
|
||||
======================
|
||||
|
||||
It is possible to run Bitcoin as a Tor hidden service, and connect to such services.
|
||||
It is possible to run Litecoin as a Tor hidden service, and connect to such services.
|
||||
|
||||
The following directions assume you have a Tor proxy running on port 9050. Many distributions default to having a SOCKS proxy listening on port 9050, but others may not. In particular, the Tor Browser Bundle defaults to listening on port 9150. See [Tor Project FAQ:TBBSocksPort](https://www.torproject.org/docs/faq.html.en#TBBSocksPort) for how to properly
|
||||
configure Tor.
|
||||
|
||||
|
||||
1. Run bitcoin behind a Tor proxy
|
||||
1. Run litecoin behind a Tor proxy
|
||||
---------------------------------
|
||||
|
||||
The first step is running Bitcoin behind a Tor proxy. This will already make all
|
||||
The first step is running Litecoin behind a Tor proxy. This will already make all
|
||||
outgoing connections be anonymized, but more is possible.
|
||||
|
||||
-proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy
|
||||
@ -31,27 +31,27 @@ outgoing connections be anonymized, but more is possible.
|
||||
|
||||
In a typical situation, this suffices to run behind a Tor proxy:
|
||||
|
||||
./bitcoin -proxy=127.0.0.1:9050
|
||||
./litecoin -proxy=127.0.0.1:9050
|
||||
|
||||
|
||||
2. Run a bitcoin hidden server
|
||||
2. Run a litecoin hidden server
|
||||
------------------------------
|
||||
|
||||
If you configure your Tor system accordingly, it is possible to make your node also
|
||||
reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equivalent
|
||||
config file):
|
||||
|
||||
HiddenServiceDir /var/lib/tor/bitcoin-service/
|
||||
HiddenServiceDir /var/lib/tor/litecoin-service/
|
||||
HiddenServicePort 9333 127.0.0.1:9333
|
||||
HiddenServicePort 19333 127.0.0.1:19333
|
||||
|
||||
The directory can be different of course, but (both) port numbers should be equal to
|
||||
your bitcoind's P2P listen port (9333 by default).
|
||||
your litecoind's P2P listen port (9333 by default).
|
||||
|
||||
-externalip=X You can tell bitcoin about its publicly reachable address using
|
||||
-externalip=X You can tell litecoin about its publicly reachable address using
|
||||
this option, and this can be a .onion address. Given the above
|
||||
configuration, you can find your onion address in
|
||||
/var/lib/tor/bitcoin-service/hostname. Onion addresses are given
|
||||
/var/lib/tor/litecoin-service/hostname. Onion addresses are given
|
||||
preference for your node to advertise itself with, for connections
|
||||
coming from unroutable addresses (such as 127.0.0.1, where the
|
||||
Tor proxy typically runs).
|
||||
@ -68,49 +68,49 @@ your bitcoind's P2P listen port (9333 by default).
|
||||
|
||||
In a typical situation, where you're only reachable via Tor, this should suffice:
|
||||
|
||||
./bitcoind -proxy=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -listen
|
||||
./litecoind -proxy=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -listen
|
||||
|
||||
(obviously, replace the Onion address with your own). It should be noted that you still
|
||||
listen on all devices and another node could establish a clearnet connection, when knowing
|
||||
your address. To mitigate this, additionally bind the address of your Tor proxy:
|
||||
|
||||
./bitcoind ... -bind=127.0.0.1
|
||||
./litecoind ... -bind=127.0.0.1
|
||||
|
||||
If you don't care too much about hiding your node, and want to be reachable on IPv4
|
||||
as well, use `discover` instead:
|
||||
|
||||
./bitcoind ... -discover
|
||||
./litecoind ... -discover
|
||||
|
||||
and open port 9333 on your firewall (or use -upnp).
|
||||
|
||||
If you only want to use Tor to reach onion addresses, but not use it as a proxy
|
||||
for normal IPv4/IPv6 communication, use:
|
||||
|
||||
./bitcoin -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
|
||||
./litecoin -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
|
||||
|
||||
3. Automatically listen on Tor
|
||||
--------------------------------
|
||||
|
||||
Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket
|
||||
API, to create and destroy 'ephemeral' hidden services programmatically.
|
||||
Bitcoin Core has been updated to make use of this.
|
||||
Litecoin Core has been updated to make use of this.
|
||||
|
||||
This means that if Tor is running (and proper authentication has been configured),
|
||||
Bitcoin Core automatically creates a hidden service to listen on. This will positively
|
||||
Litecoin Core automatically creates a hidden service to listen on. This will positively
|
||||
affect the number of available .onion nodes.
|
||||
|
||||
This new feature is enabled by default if Bitcoin Core is listening, and
|
||||
This new feature is enabled by default if Litecoin Core is listening, and
|
||||
a connection to Tor can be made. It can be configured with the `-listenonion`,
|
||||
`-torcontrol` and `-torpassword` settings. To show verbose debugging
|
||||
information, pass `-debug=tor`.
|
||||
|
||||
Connecting to Tor's control socket API requires one of two authentication methods to be
|
||||
configured. For cookie authentication the user running bitcoind must have write access
|
||||
configured. For cookie authentication the user running litecoind must have write access
|
||||
to the `CookieAuthFile` specified in Tor configuration. In some cases this is
|
||||
preconfigured and the creation of a hidden service is automatic. If permission problems
|
||||
are seen with `-debug=tor` they can be resolved by adding both the user running tor and
|
||||
the user running bitcoind to the same group and setting permissions appropriately. On
|
||||
Debian-based systems the user running bitcoind can be added to the debian-tor group,
|
||||
the user running litecoind to the same group and setting permissions appropriately. On
|
||||
Debian-based systems the user running litecoind can be added to the debian-tor group,
|
||||
which has the appropriate permissions. An alternative authentication method is the use
|
||||
of the `-torpassword` flag and a `hash-password` which can be enabled and specified in
|
||||
Tor configuration.
|
||||
@ -29,7 +29,7 @@ trigger cache-invalidation and rebuilds as necessary.
|
||||
|
||||
These caches can be manually removed if necessary. This is one of the very few
|
||||
manual operations that is possible with Travis, and it can be done by the
|
||||
Bitcoin Core committer via the Travis web interface.
|
||||
Litecoin Core committer via the Travis web interface.
|
||||
|
||||
In some cases, secure strings may be needed for hiding sensitive info such as
|
||||
private keys or URLs. The travis client may be used to create these strings:
|
||||
|
||||
@ -6,13 +6,13 @@ and tests weren't explicitly disabled.
|
||||
|
||||
After configuring, they can be run with `make check`.
|
||||
|
||||
To run the bitcoind tests manually, launch `src/test/test_bitcoin`.
|
||||
To run the litecoind tests manually, launch `src/test/test_litecoin`.
|
||||
|
||||
To add more bitcoind tests, add `BOOST_AUTO_TEST_CASE` functions to the existing
|
||||
To add more litecoind tests, add `BOOST_AUTO_TEST_CASE` functions to the existing
|
||||
.cpp files in the `test/` directory or add new .cpp files that
|
||||
implement new BOOST_AUTO_TEST_SUITE sections.
|
||||
|
||||
To run the bitcoin-qt tests manually, launch `src/qt/test/test_bitcoin-qt`
|
||||
To run the litecoin-qt tests manually, launch `src/qt/test/test_litecoin-qt`
|
||||
|
||||
To add more bitcoin-qt tests, add them to the `src/qt/test/` directory and
|
||||
To add more litecoin-qt tests, add them to the `src/qt/test/` directory and
|
||||
the `src/qt/test/test_main.cpp` file.
|
||||
|
||||
20
doc/zmq.md
20
doc/zmq.md
@ -5,8 +5,8 @@ connections, inter-process communication, and shared-memory,
|
||||
providing various message-oriented semantics such as publish/subscribe,
|
||||
request/reply, and push/pull.
|
||||
|
||||
The Bitcoin Core daemon can be configured to act as a trusted "border
|
||||
router", implementing the bitcoin wire protocol and relay, making
|
||||
The Litecoin Core daemon can be configured to act as a trusted "border
|
||||
router", implementing the litecoin wire protocol and relay, making
|
||||
consensus decisions, maintaining the local blockchain database,
|
||||
broadcasting locally generated transactions into the network, and
|
||||
providing a queryable RPC interface to interact on a polled basis for
|
||||
@ -33,7 +33,7 @@ buffering or reassembly.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The ZeroMQ feature in Bitcoin Core requires ZeroMQ API version 4.x or
|
||||
The ZeroMQ feature in Litecoin Core requires ZeroMQ API version 4.x or
|
||||
newer. Typically, it is packaged by distributions as something like
|
||||
*libzmq3-dev*. The C++ wrapper for ZeroMQ is *not* needed.
|
||||
|
||||
@ -45,7 +45,7 @@ operation.
|
||||
|
||||
By default, the ZeroMQ feature is automatically compiled in if the
|
||||
necessary prerequisites are found. To disable, use --disable-zmq
|
||||
during the *configure* step of building bitcoind:
|
||||
during the *configure* step of building litecoind:
|
||||
|
||||
$ ./configure --disable-zmq (other options)
|
||||
|
||||
@ -66,8 +66,8 @@ address. The same address can be used in more than one notification.
|
||||
|
||||
For instance:
|
||||
|
||||
$ bitcoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
|
||||
-zmqpubrawtx=ipc:///tmp/bitcoind.tx.raw
|
||||
$ litecoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
|
||||
-zmqpubrawtx=ipc:///tmp/litecoind.tx.raw
|
||||
|
||||
Each PUB notification has a topic and body, where the header
|
||||
corresponds to the notification type. For instance, for the
|
||||
@ -75,7 +75,7 @@ notification `-zmqpubhashtx` the topic is `hashtx` (no null
|
||||
terminator) and the body is the hexadecimal transaction hash (32
|
||||
bytes).
|
||||
|
||||
These options can also be provided in bitcoin.conf.
|
||||
These options can also be provided in litecoin.conf.
|
||||
|
||||
ZeroMQ endpoint specifiers for TCP (and others) are documented in the
|
||||
[ZeroMQ API](http://api.zeromq.org/4-0:_start).
|
||||
@ -87,9 +87,9 @@ arriving. Please see `contrib/zmq/zmq_sub.py` for a working example.
|
||||
|
||||
## Remarks
|
||||
|
||||
From the perspective of bitcoind, the ZeroMQ socket is write-only; PUB
|
||||
From the perspective of litecoind, the ZeroMQ socket is write-only; PUB
|
||||
sockets don't even have a read function. Thus, there is no state
|
||||
introduced into bitcoind directly. Furthermore, no information is
|
||||
introduced into litecoind directly. Furthermore, no information is
|
||||
broadcast that wasn't already received from the public P2P network.
|
||||
|
||||
No authentication or authorization is done on connecting clients; it
|
||||
@ -102,5 +102,5 @@ retrieve the chain from the last known block to the new tip.
|
||||
|
||||
There are several possibilities that ZMQ notification can get lost
|
||||
during transmission depending on the communication type your are
|
||||
using. Bitcoind appends an up-counting sequence number to each
|
||||
using. Litecoind appends an up-counting sequence number to each
|
||||
notification which allows listeners to detect lost notifications.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user