Merge pull request #2466 from patricklodder/1.14.4-readme
Update README.md, introduce INSTALL.md and doc/FAQ.md
This commit is contained in:
commit
84956c7b65
83
INSTALL.md
83
INSTALL.md
|
@ -1,5 +1,80 @@
|
||||||
Building Dogecoin
|
# Installing Dogecoin Core
|
||||||
================
|
|
||||||
|
|
||||||
See doc/build-*.md for instructions on building the various
|
### Pre-compiled binaries
|
||||||
elements of the Dogecoin Core reference implementation of Dogecoin.
|
|
||||||
|
The easiest way to install the latest version of the Dogecoin Core software is
|
||||||
|
by to download the latest precompiled binaries for your platform from the
|
||||||
|
[release page](https://github.com/dogecoin/dogecoin/releases). Currently,
|
||||||
|
binaries are released for the following platforms:
|
||||||
|
|
||||||
|
- Windows, 64-bit and 32-bit
|
||||||
|
- Linux, 64-bit and 32-bit
|
||||||
|
- MacOS, Intel 64-bit
|
||||||
|
- ARM, 64-bit and 32-bit Linux
|
||||||
|
|
||||||
|
These binaries are created and verified by multiple independent people, to
|
||||||
|
ensure honest and malware-free releases. See
|
||||||
|
[the gitian building documentation](doc/gitian-building.md) for more information
|
||||||
|
regarding that process.
|
||||||
|
|
||||||
|
### Compiling using packaged dependencies
|
||||||
|
|
||||||
|
It is possible to build your own copy of Dogecoin Core with the exact, tested,
|
||||||
|
dependencies, as used for the binary releases, by using the
|
||||||
|
[depends system](depends/description.md). Please refer to the
|
||||||
|
[depends README](depends/README.md) for instructions to build Dogecoin using
|
||||||
|
these dependencies.
|
||||||
|
|
||||||
|
### Compiling using system-provided libraries
|
||||||
|
|
||||||
|
The following are developer notes on how to build Dogecoin on your native
|
||||||
|
platform, using the dependencies as provided by your system's package manager.
|
||||||
|
They are not complete guides, but include notes on the necessary libraries,
|
||||||
|
compile flags, etc.
|
||||||
|
|
||||||
|
- [Unix Build Notes](doc/build-unix.md)
|
||||||
|
- [Windows Build Notes](doc/build-windows.md)
|
||||||
|
- [macOS Build Notes](doc/Building-Dogecoin-1.14-for-Mac.md)
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
Unit tests can be compiled and ran with `make check`. Further details on running
|
||||||
|
and extending unit tests can be found in [/src/test/README.md](/src/test/README.md).
|
||||||
|
|
||||||
|
There are also [regression and integration tests](/qa) written in Python, that
|
||||||
|
are run automatically on the build server. These tests can be run (if the
|
||||||
|
[test dependencies](/qa) are installed) with: `qa/pull-tester/rpc-tests.py`
|
||||||
|
|
||||||
|
### Tips and tricks
|
||||||
|
|
||||||
|
**compiling for debugging**
|
||||||
|
|
||||||
|
Run `configure` with the `--enable-debug` option, then `make`. Or run `configure` with
|
||||||
|
`CXXFLAGS="-g -ggdb -O0"` or whatever debug flags you need.
|
||||||
|
|
||||||
|
**debug.log**
|
||||||
|
|
||||||
|
If the code is behaving strangely, take a look in the debug.log file in the data directory;
|
||||||
|
error and debugging messages are written there.
|
||||||
|
|
||||||
|
The `-debug=...` command-line option controls debugging; running with just `-debug` will turn
|
||||||
|
on all categories (and give you a very large debug.log file).
|
||||||
|
|
||||||
|
The Qt code routes `qDebug()` output to debug.log under category "qt": run with `-debug=qt`
|
||||||
|
to see it.
|
||||||
|
|
||||||
|
**testnet and regtest modes**
|
||||||
|
|
||||||
|
Run with the `-testnet` option to run with "play dogecoins" 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.
|
||||||
|
In regression test mode, blocks can be created on-demand; see qa/rpc-tests/ for tests
|
||||||
|
that run in `-regtest` mode.
|
||||||
|
|
||||||
|
**DEBUG_LOCKORDER**
|
||||||
|
|
||||||
|
Dogecoin 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.
|
||||||
|
|
185
README.md
185
README.md
|
@ -7,32 +7,55 @@ Dogecoin Core [DOGE, Ð]
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
[![DogecoinBadge](https://img.shields.io/badge/Doge-Coin-yellow.svg)](https://dogecoin.com)
|
[![DogecoinBadge](https://img.shields.io/badge/Doge-Coin-yellow.svg)](https://dogecoin.com)
|
||||||
[![Build Status](https://travis-ci.com/dogecoin/dogecoin.svg?branch=master)](https://travis-ci.com/dogecoin/dogecoin)
|
|
||||||
[![MuchWow](https://img.shields.io/badge/Much-Wow-yellow.svg)](https://dogecoin.com)
|
[![MuchWow](https://img.shields.io/badge/Much-Wow-yellow.svg)](https://dogecoin.com)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Select Doc Language: ENG | [CN_simplified](./README_zh_CN.md) | [more...](./README.md)
|
Select language: EN | [CN](./README_zh_CN.md)
|
||||||
|
|
||||||
Dogecoin is a cryptocurrency like Bitcoin, although it does not use SHA256 as
|
Dogecoin is a cryptocurrency like Bitcoin, although it does not use SHA256 as
|
||||||
its proof of work (POW). Taking development cues from Tenebrix and Litecoin,
|
its proof of work (POW). Taking development cues from Tenebrix and Litecoin,
|
||||||
Dogecoin currently employs a simplified variant of scrypt.
|
Dogecoin currently employs a simplified variant of scrypt.
|
||||||
- **Website:** [dogecoin.com](https://dogecoin.com)
|
|
||||||
|
|
||||||
## License – Much license ⚖️
|
**Website:** [dogecoin.com](https://dogecoin.com)
|
||||||
Dogecoin Core is released under the terms of the MIT license. See
|
|
||||||
[COPYING](COPYING) for more information or see
|
|
||||||
[opensource.org](https://opensource.org/licenses/MIT)
|
|
||||||
|
|
||||||
## Development and contributions – omg developers
|
## Installation 💻
|
||||||
Development is ongoing, and the development team, as well as other volunteers,
|
|
||||||
can freely work in their own trees and submit pull requests when features or
|
|
||||||
bug fixes are ready.
|
|
||||||
|
|
||||||
#### Version strategy
|
Please see [the installation guide](INSTALL.md) for information about installing
|
||||||
|
Dogecoin Core.
|
||||||
|
|
||||||
|
### Such ports
|
||||||
|
|
||||||
|
Dogecoin Core by default uses port `22556` for peer-to-peer communication that
|
||||||
|
is needed to synchronize the "mainnet" blockchain and stay informed of new
|
||||||
|
transactions and blocks. Additionally, a JSONRPC port can be opened, which
|
||||||
|
defaults to port `22555` for mainnet nodes. It is strongly recommended to not
|
||||||
|
expose RPC ports to the public internet.
|
||||||
|
|
||||||
|
| Function | mainnet | testnet | regtest |
|
||||||
|
| :------- | ------: | ------: | ------: |
|
||||||
|
| P2P | 22556 | 44556 | 18444 |
|
||||||
|
| RPC | 22555 | 44555 | 18332 |
|
||||||
|
|
||||||
|
## Ongoing development - Moon plan 🌒
|
||||||
|
|
||||||
|
Dogecoin Core is an open source and community driven software. The development
|
||||||
|
process is open and publicly visible; anyone can see, discuss and work on the
|
||||||
|
software.
|
||||||
|
|
||||||
|
Main development resources:
|
||||||
|
|
||||||
|
* [Github Projects](https://github.com/dogecoin/dogecoin/projects) is used to
|
||||||
|
follow planned and in-progress work for upcoming releases.
|
||||||
|
* [Github Discussion](https://github.com/dogecoin/dogecoin/discussions) is used
|
||||||
|
to discuss features, planned and unplanned, related to both the development of
|
||||||
|
the Dogecoin Core software, the underlying protocols and the DOGE asset.
|
||||||
|
* [Dogecoindev subreddit](https://www.reddit.com/r/dogecoindev/)
|
||||||
|
|
||||||
|
### Version strategy
|
||||||
Version numbers are following ```major.minor.patch``` semantics.
|
Version numbers are following ```major.minor.patch``` semantics.
|
||||||
|
|
||||||
#### Branches
|
### Branches
|
||||||
There are 3 types of branches in this repository:
|
There are 3 types of branches in this repository:
|
||||||
|
|
||||||
- **master:** Stable, contains the latest version of the latest *major.minor* release.
|
- **master:** Stable, contains the latest version of the latest *major.minor* release.
|
||||||
|
@ -44,119 +67,37 @@ There are 3 types of branches in this repository:
|
||||||
*submitted against those. Maintenance branches are there for **bug fixes only,***
|
*submitted against those. Maintenance branches are there for **bug fixes only,***
|
||||||
*please submit new features against the development branch with the highest version.*
|
*please submit new features against the development branch with the highest version.*
|
||||||
|
|
||||||
#### Contributions ✍️
|
## Contributing 🤝
|
||||||
|
|
||||||
Developers are strongly encouraged to write [unit tests](src/test/README.md) for new code, and to
|
If you find a bug or experience issues with this software, please report it
|
||||||
submit new unit tests for old code. Unit tests can be compiled and run
|
using the [issue system](https://github.com/dogecoin/dogecoin/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5Bbug%5D+).
|
||||||
(assuming they weren't disabled in configure) with: `make check`. Further details on running
|
|
||||||
and extending unit tests can be found in [/src/test/README.md](/src/test/README.md).
|
|
||||||
|
|
||||||
There are also [regression and integration tests](/qa) of the RPC interface, written
|
Please see [the contribution guide](CONTRIBUTING.md) to see how you can
|
||||||
in Python, that are run automatically on the build server.
|
participate in the development of Dogecoin Core. There are often
|
||||||
These tests can be run (if the [test dependencies](/qa) are installed) with: `qa/pull-tester/rpc-tests.py`
|
[topics seeking help](https://github.com/dogecoin/dogecoin/labels/help%20wanted)
|
||||||
|
where your contributions will have high impact and get very appreciation. wow.
|
||||||
|
|
||||||
Changes should be tested by somebody other than the developer who wrote the
|
## Communities 🚀🍾
|
||||||
code. This is especially important for large or high-risk changes. It is useful
|
|
||||||
to add a test plan to the pull request description if testing the changes is
|
You can join the communities on different social media.
|
||||||
not straightforward.
|
To see what's going on, meet people & discuss, find the lastest meme, learn
|
||||||
|
about Dogecoin, give or ask for help, to share your project.
|
||||||
|
|
||||||
|
Here are some places to visit:
|
||||||
|
|
||||||
|
* [Dogecoin subreddit](https://www.reddit.com/r/dogecoin/)
|
||||||
|
* [Dogeducation subreddit](https://www.reddit.com/r/dogeducation/)
|
||||||
|
* [Discord](https://discord.gg/dogecoin)
|
||||||
|
* [Dogecoin Twitter](https://twitter.com/dogecoin)
|
||||||
|
|
||||||
## Very Much Frequently Asked Questions ❓
|
## Very Much Frequently Asked Questions ❓
|
||||||
|
|
||||||
### How much doge can exist? – So many puppies! 🐕
|
Do you have a question regarding Dogecoin? An answer is perhaps already in the
|
||||||
Early 2015 (approximately a year and a half after release) there were
|
[FAQ](doc/FAQ.md) or the
|
||||||
approximately 100,000,000,000 coins.
|
[Q&A section](https://github.com/dogecoin/dogecoin/discussions/categories/q-a)
|
||||||
Each subsequent block will grant 10,000 coins to encourage miners to continue to
|
of the discussion board!
|
||||||
secure the network and make up for lost wallets on hard drives/phones/lost
|
|
||||||
encryption passwords/etc.
|
|
||||||
|
|
||||||
|
## License - Much license ⚖️
|
||||||
### Such mining information ⛏
|
Dogecoin Core is released under the terms of the MIT license. See
|
||||||
|
[COPYING](COPYING) for more information or see
|
||||||
Dogecoin uses a simplified variant of the scrypt key derivation function as its
|
[opensource.org](https://opensource.org/licenses/MIT)
|
||||||
proof of work with a target time of one minute per block and difficulty
|
|
||||||
readjustment after every block. The block rewards are fixed and halve every
|
|
||||||
100,000 blocks. Starting with the 600,000th block, a permanent reward of
|
|
||||||
10,000 Dogecoin per block will be issued.
|
|
||||||
|
|
||||||
Originally, a different payout scheme was envisioned with block rewards being
|
|
||||||
determined by taking the maximum reward as per the block schedule and applying
|
|
||||||
the result of a Mersenne Twister pseudo-random number generator to arrive at a
|
|
||||||
number between 0 and the maximum reward.
|
|
||||||
|
|
||||||
This was changed starting with block 145,000, to prevent large pools from gaming
|
|
||||||
the system and mining only high reward blocks. At the same time, the difficulty
|
|
||||||
retargeting was also changed from four hours to once per block (every minute),
|
|
||||||
implementing an algorithm courtesy of the DigiByte Coin development team, to
|
|
||||||
lessen the impact of sudden increases and decreases of network hashing rate.
|
|
||||||
|
|
||||||
**The current block reward schedule:**
|
|
||||||
|
|
||||||
| Block | Reward in Dogecoin |
|
|
||||||
| :------------------- | -----------------: |
|
|
||||||
| 1–99,999 | 0–1,000,000 |
|
|
||||||
| 100,000–144,999 | 0–500,000 |
|
|
||||||
| 145,000–199,999 | 250,000 |
|
|
||||||
| 200,000–299,999 | 125,000 |
|
|
||||||
| 300,000–399,999 | 62,500 |
|
|
||||||
| 400,000–499,999 | 31,250 |
|
|
||||||
| 500,000–599,999 | 15,625 |
|
|
||||||
| 600,000+ | 10,000 |
|
|
||||||
|
|
||||||
**The original block reward schedule, with one-minute block targets and four-hour difficulty readjustment:**
|
|
||||||
|
|
||||||
| Block | Reward in Dogecoin |
|
|
||||||
| :------------------- | -----------------: |
|
|
||||||
| 1–99,999 | 0–1,000,000 |
|
|
||||||
| 100,000–199,999 | 0–500,000 |
|
|
||||||
| 200,000–299,999 | 0–250,000 |
|
|
||||||
| 300,000–399,999 | 0–125,000 |
|
|
||||||
| 400,000–499,999 | 0–62,500 |
|
|
||||||
| 500,000–599,999 | 0–31,250 |
|
|
||||||
| 600,000+ | 10,000 |
|
|
||||||
|
|
||||||
### Wow plz make dogecoind/dogecoin-cli/dogecoin-qt
|
|
||||||
|
|
||||||
The following are developer notes on how to build Dogecoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
|
|
||||||
|
|
||||||
- [OSX Build Notes](doc/build-osx.md)
|
|
||||||
- [Unix Build Notes](doc/build-unix.md)
|
|
||||||
- [Windows Build Notes](doc/build-windows.md)
|
|
||||||
|
|
||||||
### Such ports
|
|
||||||
|
|
||||||
- RPC 22555
|
|
||||||
- P2P 22556
|
|
||||||
|
|
||||||
## Development tips and tricks
|
|
||||||
|
|
||||||
**compiling for debugging**
|
|
||||||
|
|
||||||
Run `configure` with the `--enable-debug` option, then `make`. Or run `configure` with
|
|
||||||
`CXXFLAGS="-g -ggdb -O0"` or whatever debug flags you need.
|
|
||||||
|
|
||||||
**debug.log**
|
|
||||||
|
|
||||||
If the code is behaving strangely, take a look in the debug.log file in the data directory;
|
|
||||||
error and debugging messages are written there.
|
|
||||||
|
|
||||||
The `-debug=...` command-line option controls debugging; running with just `-debug` will turn
|
|
||||||
on all categories (and give you a very large debug.log file).
|
|
||||||
|
|
||||||
The Qt code routes `qDebug()` output to debug.log under category "qt": run with `-debug=qt`
|
|
||||||
to see it.
|
|
||||||
|
|
||||||
**testnet and regtest modes**
|
|
||||||
|
|
||||||
Run with the `-testnet` option to run with "play dogecoins" 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.
|
|
||||||
In regression test mode, blocks can be created on-demand; see qa/rpc-tests/ for tests
|
|
||||||
that run in `-regtest` mode.
|
|
||||||
|
|
||||||
**DEBUG_LOCKORDER**
|
|
||||||
|
|
||||||
Dogecoin 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.
|
|
||||||
|
|
54
doc/FAQ.md
Normal file
54
doc/FAQ.md
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
## Very Much Frequently Asked Questions ❓
|
||||||
|
|
||||||
|
### How much doge can exist? – So many puppies! 🐕
|
||||||
|
Early 2015 (approximately a year and a half after release) there were
|
||||||
|
approximately 100,000,000,000 coins.
|
||||||
|
Each subsequent block will grant 10,000 coins to encourage miners to continue to
|
||||||
|
secure the network and make up for lost wallets on hard drives/phones/lost
|
||||||
|
encryption passwords/etc.
|
||||||
|
|
||||||
|
|
||||||
|
### Such mining information ⛏
|
||||||
|
|
||||||
|
Dogecoin uses a simplified variant of the scrypt key derivation function as its
|
||||||
|
proof of work with a target time of one minute per block and difficulty
|
||||||
|
readjustment after every block. The block rewards are fixed and halve every
|
||||||
|
100,000 blocks. Starting with the 600,000th block, a permanent reward of
|
||||||
|
10,000 Dogecoin per block will be issued.
|
||||||
|
|
||||||
|
Originally, a different payout scheme was envisioned with block rewards being
|
||||||
|
determined by taking the maximum reward as per the block schedule and applying
|
||||||
|
the result of a Mersenne Twister pseudo-random number generator to arrive at a
|
||||||
|
number between 0 and the maximum reward.
|
||||||
|
|
||||||
|
This was changed starting with block 145,000, to prevent large pools from gaming
|
||||||
|
the system and mining only high reward blocks. At the same time, the difficulty
|
||||||
|
retargeting was also changed from four hours to once per block (every minute),
|
||||||
|
implementing an algorithm courtesy of the DigiByte Coin development team, to
|
||||||
|
lessen the impact of sudden increases and decreases of network hashing rate.
|
||||||
|
|
||||||
|
**The current block reward schedule:**
|
||||||
|
|
||||||
|
| Block | Reward in Dogecoin |
|
||||||
|
| :------------------- | -----------------: |
|
||||||
|
| 1–99,999 | 0–1,000,000 |
|
||||||
|
| 100,000–144,999 | 0–500,000 |
|
||||||
|
| 145,000–199,999 | 250,000 |
|
||||||
|
| 200,000–299,999 | 125,000 |
|
||||||
|
| 300,000–399,999 | 62,500 |
|
||||||
|
| 400,000–499,999 | 31,250 |
|
||||||
|
| 500,000–599,999 | 15,625 |
|
||||||
|
| 600,000+ | 10,000 |
|
||||||
|
|
||||||
|
**The original block reward schedule, with one-minute block targets and
|
||||||
|
four-hour difficulty readjustment:**
|
||||||
|
|
||||||
|
| Block | Reward in Dogecoin |
|
||||||
|
| :------------------- | -----------------: |
|
||||||
|
| 1–99,999 | 0–1,000,000 |
|
||||||
|
| 100,000–199,999 | 0–500,000 |
|
||||||
|
| 200,000–299,999 | 0–250,000 |
|
||||||
|
| 300,000–399,999 | 0–125,000 |
|
||||||
|
| 400,000–499,999 | 0–62,500 |
|
||||||
|
| 500,000–599,999 | 0–31,250 |
|
||||||
|
| 600,000+ | 10,000 |
|
Loading…
Reference in a new issue