These are available in sandboxes without access to files or devices. Also [they are safer and more straightforward](https://en.wikipedia.org/wiki/Entropy-supplying_system_calls) to use than `/dev/urandom` as reading from a file has quite a few edge cases: - Linux: `getrandom(buf, buflen, 0)`. [getrandom(2)](http://man7.org/linux/man-pages/man2/getrandom.2.html) was introduced in version 3.17 of the Linux kernel. - OpenBSD: `getentropy(buf, buflen)`. The [getentropy(2)](http://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man2/getentropy.2) function appeared in OpenBSD 5.6. - FreeBSD and NetBSD: `sysctl(KERN_ARND)`. Not sure when this was added but it has existed for quite a while. Alternatives: - Linux has sysctl `CTL_KERN` / `KERN_RANDOM` / `RANDOM_UUID` which gives 16 bytes of randomness. This may be available on older kernels, however [sysctl is deprecated on Linux](https://lwn.net/Articles/605392/) and even removed in some distros so we shouldn't use it. Add tests for `GetOSRand()`: - Test that no error happens (otherwise `RandFailure()` which aborts) - Test that all 32 bytes are overwritten (initialize with zeros, try multiple times) Discussion: - When to use these? Currently they are always used when available. Another option would be to use them only when `/dev/urandom` is not available. But this would mean these code paths receive less testing, and I'm not sure there is any reason to prefer `/dev/urandom`. Closes: #9676 Cherry-picked from: 224e6eb089a0f4977d22f3803fc27e44b5e7eea5 Contains squashed commit of aa09ccbb74ea9febd83ce3362238ac5339069909 squashme: comment that NUM_OS_RANDOM_BYTES should not be changed lightly
Dogecoin Core [DOGE, Ð]
Select language: EN | CN | PT | FA | VI
Dogecoin is a community-driven cryptocurrency that was inspired by a Shiba Inu meme. The Dogecoin Core software allows anyone to operate a node in the Dogecoin blockchain networks and uses the Scrypt hashing method for Proof of Work. It is adapted from Bitcoin Core and other cryptocurrencies.
For information about the default fees used on the Dogecoin network, please refer to the fee recommendation.
Website: dogecoin.com
Usage 💻
To start your journey with Dogecoin Core, see the installation guide and the getting started tutorial.
The JSON-RPC API provided by Dogecoin Core is self-documenting and can be browsed with dogecoin-cli help, while detailed information for each command can be viewed with dogecoin-cli help <command>. Alternatively, see the Bitcoin Core documentation - which implement a similar protocol - to get a browsable version.
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 is used to follow planned and in-progress work for upcoming releases.
- GitHub Discussion 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
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.
Contributing 🤝
If you find a bug or experience issues with this software, please report it using the issue system.
Please see the contribution guide to see how you can participate in the development of Dogecoin Core. There are often topics seeking help where your contributions will have high impact and get very appreciation. wow.
Communities 🚀🍾
You can join the communities on different social media. To see what's going on, meet people & discuss, find the latest meme, learn about Dogecoin, give or ask for help, to share your project.
Here are some places to visit:
Very Much Frequently Asked Questions ❓
Do you have a question regarding Dogecoin? An answer is perhaps already in the FAQ or the Q&A section of the discussion board!
License - Much license ⚖️
Dogecoin Core is released under the terms of the MIT license. See COPYING for more information or see opensource.org