Patrick Lodder da0732ebd5
ci: containerize Continuous Integration jobs
This frees us from GitHub actions brownouts and early deprecation
by no longer using Microsoft-maintained images in favor of bare
images from Docker Hub. The latter keeps images available for a
longer time, regardless of whether or not Canonical directly
supports them.

Benefits:
- Decouples our release cycle from what Microsoft is willing to
  spend support effort on.
- Reduces bloat in base images

Because the bare ubuntu images contain a lot less pre-installed
tooling, some changes in orchestration need to be made for this
to be successful, as well as some workarounds can be removed:

- All GitHub Actions base operating systems are set to
  ubuntu-24.04, as all we use from this now is containerd.
- All docker images remain ubuntu:20.04 for now, as this is
  needed for symbol compatibility (and for now, we use the same
  version in Gitian builds)
- Until the base image used for GitHub Actions and the provided
  containerd is providing sandboxed mounting on /proc, every
  process that needs custom binfmts needs to be ran privileged.
  Currently this means all windows builds need this.
  see: https://lore.kernel.org/all/20211028103114.2849140-2-brauner@kernel.org/
- Staying on custom binfmts, the Microsoft-maintained image
  contained mono runtimes and reduced compatibility with wine,
  for which we had workarounds in place. These are no longer
  needed and have been removed.
- For future troubleshooting, the currently installed binfmts
  and the kernel version are verbosely displayed inside jobs
- Because GitHub Actions does not allow us to pass zero
  arguments to container options, whenever there are none a
  dummy environment value 1DOGE is set to 1DOGE.
- For macOS, the libbz2-dev library was missing from our system
  dependencies, this was masked by it being installed by default
  in the Microsoft-maintained image.
- Bare containers do not come configured with a timezone, so this
  needed to be added to container initialization before any apt
  calls are made.
- Because Microsoft runs the container under uid 1001, which does
  not exist in the bare ubuntu:20.04 image, a special cleanup
  step for the qa/cache needed to be made, or else the build
  caches would fail to upload at the end of the CI run.
2025-02-25 17:37:16 -05:00
2017-01-02 09:36:03 +01:00
2024-12-31 17:14:29 +08:00
2025-01-02 03:48:02 +08:00
2023-07-04 05:24:36 -04:00
2022-10-30 13:22:15 +01:00
2024-02-25 13:10:46 -05:00

Dogecoin

Dogecoin Core [DOGE, Ð]

IMPORTANT: Starting August 2024, the master branch has become the primary integration branch and has become unstable. Please check out a tagged version before compiling production binaries.

For internationalized documentation, see the index at doc/intl.

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.

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>.

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 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.

Version strategy

Version numbers are following major.minor.patch semantics.

Branches

There are 4 types of branches in this repository:

  • master: Unstable, contains the latest code under development.
  • maintenance: Stable, contains the latest version of previous releases, which are still under active maintenance. Format: <version>-maint
  • development: Unstable, contains new code for upcoming releases. Format: <version>-dev
  • archive: Stable, immutable branches for old versions that no longer change because they are no longer maintained.

Submit your pull requests against master

Maintenance branches are exclusively mutable by release. When a release is planned, a development branch will be created and commits from master will be cherry-picked into these by maintainers.

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.

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.

Description
Languages
C++ 62.3%
C 16.8%
Python 15.1%
M4 2.6%
Makefile 1.2%
Other 1.9%