diff options
| author | AbcSxyZ <[email protected]> | 2021-05-26 18:21:03 +0200 |
|---|---|---|
| committer | Patrick Lodder <[email protected]> | 2021-08-20 01:30:07 +0200 |
| commit | 4676f8f00879f66449d0a99d59ad94cd42ed30ae (patch) | |
| tree | 1654d8e89a9f783d01f6d95565a7e41d9806e1f7 | |
| parent | Merge pull request #2458 from patricklodder/1.14.4-disconnect-bad-node-test (diff) | |
| download | discoin-4676f8f00879f66449d0a99d59ad94cd42ed30ae.tar.xz discoin-4676f8f00879f66449d0a99d59ad94cd42ed30ae.zip | |
Update README.md
Author: AbcSxyZ <[email protected]>
Cherry-picked and squashed from:
20480d33b README: change social media position
39a209b98 README: Change section order
bdb727981 README: reorganize social medias, split dev specific
& and more community related in 2 sections
bbc6c921c Add emote to titles
e39256825 Install.md : Improve first title
ebef882c5 Fix typo
1cec6b16b Extract FAQ and INSTALL into respective files
314b6f8e2 Add developement & contribution information directly
on readme
a7e556924 Remove original block reward schedule
8cb73041a Move licence section at README bottom
| -rw-r--r-- | CONTRIBUTING.md | 8 | ||||
| -rw-r--r-- | INSTALL.md | 87 | ||||
| -rw-r--r-- | README.md | 153 | ||||
| -rw-r--r-- | doc/FAQ.md | 46 |
4 files changed, 155 insertions, 139 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eb6fb153c..800c577c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,5 @@ # Contributing to Dogecoin Core -Dogecoin Core is open source software, and we would welcome contributions -which improve the state of the software. For those wanting to discuss changes, -or look for work that needs doing, please see: - -* [Help requests](https://github.com/dogecoin/dogecoin/labels/help%20wanted) -* [Projects](https://github.com/dogecoin/dogecoin/projects) -* [Dogecoindev on reddit](https://www.reddit.com/r/dogecoindev/) - ## Branch Strategy Dogecoin Core's default branch is intentionally a stable release, so that anyone diff --git a/INSTALL.md b/INSTALL.md index b6602e0f4..994d7f2c3 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,5 +1,84 @@ -Building Dogecoin -================ +# Building Dogecoin Core -See doc/build-*.md for instructions on building the various -elements of the Dogecoin Core reference implementation of Dogecoin. +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. + +### 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 + +#### Version strategy +Version numbers are following ```major.minor.patch``` semantics. + +#### Branches +There are 3 types of branches in this repository: + +- **master:** Stable, contains the latest version of the latest *major.minor* release. +- **maintenance:** Stable, contains the latest version of previous releases, which are still under active maintenance. Format: ```<version>-maint``` +- **development:** Unstable, contains new code for planned releases. Format: ```<version>-dev``` + +*Master and maintenance branches are exclusively mutable by release. Planned* +*releases will always have a development branch and pull requests should be* +*submitted against those. Maintenance branches are there for **bug fixes only,*** +*please submit new features against the development branch with the highest version.* + +#### Contributions ✍️ + +Developers are strongly encouraged to write [unit tests](src/test/README.md) for new code, and to +submit new unit tests for old code. Unit tests can be compiled and run +(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 +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` + +Changes should be tested by somebody other than the developer who wrote the +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 +not straightforward. + + +## 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. @@ -19,144 +19,43 @@ its proof of work (POW). Taking development cues from Tenebrix and Litecoin, Dogecoin currently employs a simplified variant of scrypt. - **Website:** [dogecoin.com](https://dogecoin.com) -## License – Much license ⚖️ -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 -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 -Version numbers are following ```major.minor.patch``` semantics. - -#### Branches -There are 3 types of branches in this repository: - -- **master:** Stable, contains the latest version of the latest *major.minor* release. -- **maintenance:** Stable, contains the latest version of previous releases, which are still under active maintenance. Format: ```<version>-maint``` -- **development:** Unstable, contains new code for planned releases. Format: ```<version>-dev``` - -*Master and maintenance branches are exclusively mutable by release. Planned* -*releases will always have a development branch and pull requests should be* -*submitted against those. Maintenance branches are there for **bug fixes only,*** -*please submit new features against the development branch with the highest version.* - -#### Contributions ✍️ - -Developers are strongly encouraged to write [unit tests](src/test/README.md) for new code, and to -submit new unit tests for old code. Unit tests can be compiled and run -(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 -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` - -Changes should be tested by somebody other than the developer who wrote the -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 -not straightforward. - -## 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. - +## Ongoing development - Moon plan 🌒 -### Such mining information ⛏ +Dogecoin Core is an open source and community driven software. +Development process is done publicly. Anyone can see, discuss and work on them. -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. +Main tools used for the core development : -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. +* [Github Projects](https://github.com/dogecoin/dogecoin/projects) to see all developments and [Github Discussion](https://github.com/dogecoin/dogecoin/discussions) to discuss them +* [Dogecoin Improvement Proposals (DIPs)](https://github.com/dogecoin/dips) for major improvements +* [Dogecoindev subreddit](https://www.reddit.com/r/dogecoindev/) -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. +## Installation – omg developers 👨💻 -**The current block reward schedule:** +To get all information to setup Dogecoin Core locally, see [INSTALL.md](INSTALL.md). -| 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 | +## Contribute 🤝 -**The original block reward schedule, with one-minute block targets and four-hour difficulty readjustment:** +Look at [CONTRIBUTING.md](CONTRIBUTING.md) to see how you can participate ! -| 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 | +Do not limitate yourself to guidelines, feel free to contribute in your own way 🚀. -### Wow plz make dogecoind/dogecoin-cli/dogecoin-qt +## Community 🚀🍾 - 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. +You can join the community on different social media ! +To see what's going on, meet people & discuss, find the lastest meme, learn about dogecoin, +give or ask different type of help, to share your project... some places to visit ! - - [OSX Build Notes](doc/build-osx.md) - - [Unix Build Notes](doc/build-unix.md) - - [Windows Build Notes](doc/build-windows.md) +* [Discord](https://discord.gg/dogecoin) +* [Dogecoin subreddit](https://www.reddit.com/r/dogecoin/) +* [Dogeducation subreddit](https://www.reddit.com/r/dogeducation/) +* [Dogecoin Devs Twitter](https://twitter.com/dogecoin_devs) -### 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. +## Very Much Frequently Asked Questions ❓ -**DEBUG_LOCKORDER** +You have a question regarding dogecoin ? An answer is perhaps already in the [FAQ](doc/FAQ.md) ! -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. +## License – Much license ⚖️ +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) diff --git a/doc/FAQ.md b/doc/FAQ.md new file mode 100644 index 000000000..2191e573f --- /dev/null +++ b/doc/FAQ.md @@ -0,0 +1,46 @@ +## 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:** + +1–99,999: 0–1,000,000 Dogecoin + +100,000–144,999: 0–500,000 Dogecoin + +145,000–199,999: 250,000 Dogecoin + +200,000–299,999: 125,000 Dogecoin + +300,000–399,999: 62,500 Dogecoin + +400,000–499,999: 31,250 Dogecoin + +500,000–599,999: 15,625 Dogecoin + +600,000+: 10,000 Dogecoin |