Skip to content

Commit

Permalink
Merge branch 'release/v7.17.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
gto90 committed May 11, 2021
2 parents 82414be + 8bcd769 commit 509db20
Show file tree
Hide file tree
Showing 62 changed files with 1,216 additions and 1,057 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/ci-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: 'Build and check'

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
os: [x86_64-linux-gnu]

steps:
- uses: actions/checkout@v2

- name: Cache apt depencenies
uses: actions/cache@v2
id: cache-apt
with:
path: "~/apt-cache"
key: apt-cache

- name: Cache depends
id: cache-dependencies
uses: actions/cache@v2
with:
path: depends/${{ matrix.os }}
key: ${{ matrix.os }}-${{ hashFiles('depends/packages/*.mk') }}

- name: Install apt dependencies
env:
CACHE_HIT: ${{steps.cache-apt.outputs.cache-hit}}
DEPS: build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache
run: |
if [[ "$CACHE_HIT" == 'true' ]]; then
sudo cp --force --recursive ~/apt-cache/* /
else
sudo apt-get update && sudo apt-get install -yq $DEPS
mkdir -p ~/apt-cache
for dep in $DEPS; do
dpkg -L $dep | while IFS= read -r f; do if test -f $f; then echo $f; fi; done | xargs cp --parents --target-directory ~/apt-cache/
done
fi
- name: Build depends
if: steps.cache-dependencies.outputs.cache-hit != 'true' && steps.cache-apt.outputs.cache-hit != 'true'
run: cd depends/ && make -j4 HOST=${{matrix.os}}

- name: Auto generate
run: ./autogen.sh

- name: configure
run: ./configure --with-incompatible-bdb --prefix=`pwd`/depends/${{ matrix.os }}

- name: make
run: make -j4

- name: check
run: make check

328 changes: 95 additions & 233 deletions CONTRIBUTING.md

Large diffs are not rendered by default.

152 changes: 78 additions & 74 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,124 +1,128 @@
Development is now occurring on the DigiByte-Core repo
----------------
[![Build Status](https://img.shields.io/github/workflow/status/DigiByte-Core/digibyte/Build%20and%20check/develop)](https://github.com/DigiByte-Core/digibyte/actions/workflows/ci-coverage.yml)
[![Version](https://img.shields.io/github/v/release/DigiByte-Core/digibyte?include_prereleases)](https://github.com/DigiByte-Core/digibyte/releases)
[![Release date](https://img.shields.io/github/release-date/DigiByte-core/digibyte)](https://github.com/DigiByte-Core/digibyte/releases)
[![Status](https://img.shields.io/badge/status-stable-brightgreen)](https://github.com/DigiByte-Core/digibyte/tree/develop)
[![Platforms](https://img.shields.io/badge/platforms-Windows%20%7C%20Linux%20x86_64%20%7C%20ARM%20Linux%20%7C%20OSX-lightgrey)](https://github.com/DigiByte-Core/digibyte/releases)
[![Downloads](https://img.shields.io/github/downloads/DigiByte-Core/digibyte/total?style=social)](https://github.com/DigiByte-Core/digibyte/releases)
[![Repo size](https://img.shields.io/github/repo-size/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte)
[![Issues](https://img.shields.io/github/issues-raw/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte/issues)
[![Open PRs](https://img.shields.io/github/issues-pr/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte/pulls)
[![Closed PRs](https://img.shields.io/github/issues-pr-closed/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte/pulls)
[![Commits](https://img.shields.io/github/commit-activity/y/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte/commits/develop)
[![Contributors](https://img.shields.io/github/contributors/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte/graphs/contributors)
[![Last Commit](https://img.shields.io/github/last-commit/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte/graphs/commit-activity)
[![License](https://img.shields.io/github/license/DigiByte-Core/digibyte)](https://github.com/DigiByte-Core/digibyte/blob/develop/COPYING)

<img width="450" type="image/svg+xml" src="./doc/logo_horizontal_github.svg" />

# Development is now occurring on the DigiByte-Core repo

As of 2020, development has now moved to the DigiByte-Core organization, under the digibyte repo

You can find more over at https://github.com/digibyte-core/digibyte
You can find more over at <https://github.com/digibyte-core/digibyte>

## What is DigiByte?

What is DigiByte?
----------------
DigiByte (DGB) is a highly secure, decentralized, distributed and time-tested global blockchain that was founded in early 2014 with a focus on cyber security, payments & secure communications technologies.

DigiByte (DGB) is a rapidly growing decentralized, global blockchain that was founded in early 2014 with a focus on cyber security, payments & secure communications technologies.
For more information, as well as an immediately useable, binary version of the DigiByte Core software, see <https://digibyte.org>

For more information, as well as an immediately useable, binary version of the DigiByte Core software, see https://digibyte.io
## DigiByte FAQ

DigiByte FAQ
-------------
Launch Date: January 10th, 2014
**Launch Date**: January 10th, 2014

Blockchain Type: Public, Decentralized, UTXO based, Multi-Algorithm
**Blockchain Type**: Public, Decentralized, UTXO based, Multi-Algorithm

Ticker Symbol: DGB
**Ticker Symbol**: DGB

Genesis Block Hash: "USA Today: 10/Jan/2014, Target: Data stolen from up to 110M customers"
**Genesis Block Hash**: "USA Today: 10/Jan/2014, Target: Data stolen from up to 110M customers"

Max Total Supply: 21 Billion DigiBytes in 21 Years (2035)
**Max Total Supply**: 21 Billion DigiBytes in 21 Years (2035)

Current Supply: 11,692,747,373 DGB (April 2019)
**Current Supply**: 14,293,304,147 DGB (May 2021)

Block Reward Reduction: 1% Monthly
**Block Reward Reduction**: 1% Monthly

Current Block Reward: 688 DGB (April 2019)
**Current Block Reward**: 520 DGB (May 2021)

Mining Algorithms: Five individual: SHA256, Scrypt, Odocrypt, Skein & Qubit
**Mining Algorithms**: Five individual: SHA256, Scrypt, Odocrypt, Skein & Qubit

Block Interval: 15 Second Blocks (75 seconds per algo)
**Block Interval**: 15 Second Blocks (75 seconds per algo)

Algo Block Share: 20% Block Share Per Algo (5)
**Algo Block Share**: 20% Block Share Per Algo (5)

Difficulty Retarget: Every 1 Block, 5 Separate Difficulties, independent difficulty for each Mining Algo
**Difficulty Retarget**: Every 1 Block, 5 Separate Difficulties, independent difficulty for each Mining Algo

SegWit Support: Yes. First major altcoin to successfully activate Segwit. (April 2017)
**SegWit Support**: Yes. First major altcoin to successfully activate Segwit. (April 2017)

Hardforks: 4. DigiShield, MultiAlgo, MultiShield, DigiSpeed
**Hardforks**: 5. DigiShield, MultiAlgo, MultiShield, DigiSpeed, Odocrypt

Softforks: 3. SegWit, CSV, NVersionBits
**Softforks**: 3. SegWit, CSV, NVersionBits

You can mine DigiByte on one of five separate mining algorithms. Each algo averages out to mine 20% of new blocks. This allows for much greater decentralization than other blockchains. An attacker with 99% of of any individual algorithm would still be unable to hardfork the blockchain, making DigiByte much more secure against PoW attacks than other blockchains.

DigiShield Hardfork: Block 67,200, Feb. 28th, 2014
**DigiShield Hardfork**: Block 67,200, Feb. 28th, 2014

**MultiAlgo Hardfork**: Block 145k, Sep. 1st 2014

**MultiShield Hardfork**: Block 400k, Dec. 10th 2014

MultiAlgo Hardfork: Block 145k, Sep. 1st 2014
**DigiSpeed Hardfork**: Block 1,430,000 Dec. 4th 2015

MultiShield Hardfork: Block 400k, Dec. 10th 2014
**Odocrypt Hardfork**: Block 9,112,320 July 22nd 2019

DigiSpeed Hardfork: Block 1,430,000 Dec. 4th 2015
## DigiByte vs Bitcoin

Odocrypt Hardfork: Block 9,112,320 July 22nd 2019
**Security**:

DigiByte vs Bitcoin
-------------------
- 5 DigiByte mining algorithms vs. 1 Bitcoin mining algorithm.
- DigiByte mining is much more decentralized.
- DigiByte mining algorithms can be changed out in the future to prevent centralization.

Security: 5 DigiByte mining algorithms vs. 1 Bitcoin mining algorithm.
DigiByte mining is much more decentralized.
DigiByte mining algorithms can be changed out in the future to prevent centralization.
**Speed**:

Speed: DigiByte transactions occur much faster than Bitcoin transactions.
1-2 second transaction notifications.
15 second DigiByte blocks vs. 10 minute Bitcoin blocks.
DigiByte has 6x block confirmations 1.5 minutes vs. 1 hour with Bitcoin.
- DigiByte transactions occur much faster than Bitcoin transactions.
- 1-2 second transaction notifications.
- 15 second DigiByte blocks vs. 10 minute Bitcoin blocks.
- DigiByte has 6x block confirmations 1.5 minutes vs. 1 hour with Bitcoin.

Transaction Volume: DigiByte can handle many more transactions per second.
Bitcoin can only handle 3-4 transactions per second.
DigiByte currently can handle 560+ transactions per second.
The 2015 DigiSpeed hardfork introduced changes that double the capacity of the network every two years.
**Transaction Volume**:

Total Supply: More DigiBytes, lower price, more micro transactions, better price stability.
21 billion DigiBytes will be created over 21 years.
Only 21 million Bitcoin will be created over 140 years.
1000:1 ratio. 1000 DigiByte for every Bitcoin.
- DigiByte can handle many more transactions per second.
- Bitcoin can only handle 3-4 transactions per second.
- DigiByte currently can handle 560+ transactions per second.

Flexibility: Ability to quickly add new features.
DigiByte can add new features & upgrades much quicker than Bitcoin.
Future DigiByte upgrades will push transaction limit to several hundred thousand per second.
**Total Supply**:

Marketability & Usability: DigiByte is an easy brand to market to consumers.
DigiBytes are much cheaper to acquire.
- 21 billion DigiBytes will be created over 21 years.
- Only 21 million Bitcoin will be created over 140 years.
- 1000:1 ratio. 1000 DigiByte for every Bitcoin.

License
-------
**Marketability & Usability**:

DigiByte Core is released under the terms of the MIT license. See [COPYING](COPYING) for more
information or see https://opensource.org/licenses/MIT.
- DigiByte is an easy brand to market to consumers.
- DigiBytes are much cheaper to acquire.

Development Process
-------------------
## License

The `master` branch is regularly built and tested, but is not guaranteed to be
completely stable. [Tags](https://github.com/digibyte/digibyte/tags) are created
regularly to indicate new official, stable release versions of DigiByte Core.
DigiByte Core is released under the terms of the MIT license. See [COPYING](COPYING) for more information or see <https://opensource.org/licenses/MIT>.

## Development Process

The `develop` branch is regularly built and tested, but is not guaranteed to be completely stable. Additionally, the develop branch represents ongoing development from which candidate releases will be cut. The `master` branch represents the current stable version currently in production. [Tags](https://github.com/digibyte/digibyte/tags) are created regularly to indicate new official, stable release versions of DigiByte Core. Finally, `feature/{a-new-feature}` branches represent current development destined for future releases.

The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md).

Testing
-------
## Testing

### Automated Testing

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).
Developers are required to write [unit tests](src/test/README.md) for new code, and to submit new unit tests for any old code that is changed. 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](/test), written
in Python, that are run automatically on the build server.
These tests can be run (if the [test dependencies](/test) are installed) with: `test/functional/test_runner.py`
There are also [regression and integration tests](/test), written in Python, that are run automatically on the build server. These tests can be run (if the [test dependencies](/test) are installed) with: `test/functional/test_runner.py`

The Travis CI system makes sure that every pull request is built for Windows, Linux, and macOS, and that unit/sanity tests are run automatically.

### Manual Quality Assurance (QA) Testing

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.

Changes are required be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. A test plan must be included with the pull request description if testing the changes is not straightforward.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 7)
define(_CLIENT_VERSION_MINOR, 17)
define(_CLIENT_VERSION_REVISION, 2)
define(_CLIENT_VERSION_REVISION, 3)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2019)
Expand Down
6 changes: 3 additions & 3 deletions contrib/gitian-build.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def setup():
if not os.path.isdir('gitian-builder'):
subprocess.check_call(['git', 'clone', 'https://github.com/devrandom/gitian-builder.git'])
if not os.path.isdir('digibyte'):
subprocess.check_call(['git', 'clone', 'https://github.com/digibyte/digibyte.git'])
subprocess.check_call(['git', 'clone', 'https://github.com/digibyte-core/digibyte.git'])
os.chdir('gitian-builder')
make_image_prog = ['bin/make-base-vm', '--suite', 'bionic', '--arch', 'amd64']
if args.docker:
Expand All @@ -51,8 +51,8 @@ def build():
os.chdir('gitian-builder')
os.makedirs('inputs', exist_ok=True)

subprocess.check_call(['wget', '-N', '-P', 'inputs', 'http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz'])
subprocess.check_call(['wget', '-N', '-P', 'inputs', 'https://digibytecore.org/cfields/osslsigncode-Backports-to-1.7.1.patch'])
subprocess.check_call(['wget', '-N', '-P', 'inputs', 'https://github.com/DigiByte-Core/osslsigncode-1.7.1.tar.gz-1/raw/master/osslsigncode-1.7.1.tar.gz'])
subprocess.check_call(['wget', '-N', '-P', 'inputs', 'https://raw.githubusercontent.com/DigiByte-Core/osslsigncode-1.7.1.tar.gz-1/master/osslsigncode-Backports-to-1.7.1.patch'])
subprocess.check_call(['make', '-C', '../digibyte/depends', 'download', 'SOURCES_PATH=' + os.getcwd() + '/cache/common'])

if args.linux:
Expand Down
12 changes: 6 additions & 6 deletions contrib/gitian-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ osx=true
SIGNER=
VERSION=
commit=false
url=https://github.com/digibyte/digibyte
url=https://github.com/digibyte-core/digibyte
proc=2
mem=2000
lxc=true
osslTarUrl=http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
osslPatchUrl=https://digibytecore.org/cfields/osslsigncode-Backports-to-1.7.1.patch
osslTarUrl=https://github.com/DigiByte-Core/osslsigncode-1.7.1.tar.gz-1/raw/master/osslsigncode-1.7.1.tar.gz
osslPatchUrl=https://raw.githubusercontent.com/DigiByte-Core/osslsigncode-1.7.1.tar.gz-1/master/osslsigncode-Backports-to-1.7.1.patch
scriptName=$(basename -- "$0")
signProg="gpg --detach-sign"
commitFiles=true
Expand All @@ -38,7 +38,7 @@ version Version number, commit, or branch to build. If building a commit or bra
Options:
-c|--commit Indicate that the version argument is for a commit or branch
-u|--url Specify the URL of the repository. Default is https://github.com/digibyte/digibyte
-u|--url Specify the URL of the repository. Default is https://github.com/digibyte-core/digibyte
-v|--verify Verify the Gitian build
-b|--build Do a Gitian build
-s|--sign Make signed binaries for Windows and Mac OSX
Expand Down Expand Up @@ -229,8 +229,8 @@ echo ${COMMIT}
if [[ $setup = true ]]
then
sudo apt-get install ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm qemu-utils
git clone https://github.com/digibyte/gitian.sigs.git
git clone https://github.com/digibyte/digibyte-detached-sigs.git
git clone https://github.com/digibyte-core/gitian.sigs.git
git clone https://github.com/digibyte-core/digibyte-detached-sigs.git
git clone https://github.com/devrandom/gitian-builder.git
pushd ./gitian-builder
if [[ -n "$USE_LXC" ]]
Expand Down
45 changes: 45 additions & 0 deletions contrib/testgen/key_tests.test_vectors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
## Test Vectors
Private key and address test vectors for test `key_tests` were crafted by hand.
The following document illustrates how they have been chosen.

### compressed private key
```
80111111111111111111111111111111111111111111111111111111111111111101
969b59a7 d30dd0eb7b64944926f4006e84a74a4bdd1f49c30f651082425c0747
80111111111111111111111111111111111111111111111111111111111111111101969b59a7
KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp
DU9umLs2Ze8eNRo69wbSj5HeufphJawFPh
```

### uncompressed private key
```
801111111111111111111111111111111111111111111111111111111111111111
e5ce7258 ab95e95003a854ccfca9f027108d9b9b35bc113a9095aeef3e1bc836
801111111111111111111111111111111111111111111111111111111111111111e5ce7258
5HwoXVkHoRM8sL2KmNRS217n1g8mPPBomrY7yehCuXC1115WWsh
DS1P3gwq6MFtatWprr2e2J32xGPd89n75C
```

// 2
### compressed private key
```
80222222222222222222222222222222222222222222222222222222222222222201
c2d1512d d4570cc56481d9bf6dbe147ed964a486b7b229f426b1320f77070c52
80222222222222222222222222222222222222222222222222222222222222222201c2d1512d
KxN4XYdzu6f9j3EMryaMwZvUVLk3y29M4QZ2xwPoFP2zwka1aWxU
DCiLe5VAcdLpGXURTDsaoryMWdMVBP9NoN
```

### uncompressed private key
```
802222222222222222222222222222222222222222222222222222222222222222
d15081bf 4cb85f0f73cd32c4b21dace0e3ed3ffce7020023fe448d97b20b278d
802222222222222222222222222222222222222222222222222222222222222222d15081bf
5J5KUK3VXP8HUefNVYPxwxVRokScZdWXpu1Tj8LfaAXMqHzMmbk
DMQ3t1L7BmTwL5wpZ9mek1KUaCRLJSXJWV
```





Loading

0 comments on commit 509db20

Please sign in to comment.