Compare commits
530 commits
Author | SHA1 | Date | |
---|---|---|---|
31afd13311 | |||
b6abd84935 | |||
90f5b87806 | |||
d700e9a1a2 | |||
0c09e2a57a | |||
97c98cf0a6 | |||
df8adf098e | |||
09f86e7494 | |||
b4b98d7ad0 | |||
434ae2d95e | |||
3f6754262e | |||
efbd5271b7 | |||
2b543db997 | |||
7750dba2c6 | |||
28989f1dc4 | |||
e92aba9190 | |||
0f7c23e1e5 | |||
b5d69ab693 | |||
0e917fcf1b | |||
a92f2dcde4 | |||
d2b1a61753 | |||
49e947f282 | |||
6c752caf90 | |||
abb99e6ddb | |||
6c053f4bc6 | |||
fbf07173b4 | |||
4213f7584b | |||
5280e456f5 | |||
56c2ac1263 | |||
60618c5099 | |||
5bb3112c68 | |||
ba2c8c0fa6 | |||
8e4ea27962 | |||
2076361f88 | |||
d3d688deae | |||
5df1b6af3e | |||
c86f68df76 | |||
27ac4a1e79 | |||
097d87df2f | |||
85226b80bd | |||
2291b6a7cc | |||
e90d4437a2 | |||
8efd7e62bd | |||
c2532d3f6a | |||
e254dd665b | |||
8971b04ae8 | |||
4c94a061c0 | |||
c3cead8737 | |||
b2a55984f8 | |||
c909ac2e09 | |||
1ec3f19fc0 | |||
12202c61bb | |||
9e6a8bc5c4 | |||
2e082af18e | |||
71edb4cc79 | |||
ca6297be97 | |||
16761956ce | |||
791be7b57d | |||
1eede33ce8 | |||
79f5d63fa6 | |||
57446a21f6 | |||
cc082a7678 | |||
976474f28b | |||
edd0da7968 | |||
d81d2329f2 | |||
d29583af8f | |||
0d563c7dcd | |||
35754ca98f | |||
38aba25232 | |||
3e2ce7b7aa | |||
1d231e1d9f | |||
32c55e2ac8 | |||
4bcd9daf5d | |||
a5fc0d8f56 | |||
fdd1211cdd | |||
2c71909290 | |||
6286491490 | |||
e481bf28bb | |||
b945c0b208 | |||
e6e2f460c3 | |||
dbb81ea357 | |||
40d2a4ea42 | |||
60f821fe73 | |||
7739221064 | |||
b5b1e0426a | |||
2cdacb07ab | |||
c338c5e6c4 | |||
7f33b17cd1 | |||
6912d93940 | |||
a72aba3bea | |||
1806f0965e | |||
0ff5375296 | |||
a4d965547e | |||
6173ca37cd | |||
fd6da81954 | |||
2799811ab1 | |||
84157f3df2 | |||
e83ddb7e8f | |||
c05cd54411 | |||
5f390bde2a | |||
56bc526b59 | |||
8632c83881 | |||
8e326ac96b | |||
7dae118b0a | |||
d1075955b2 | |||
bef1ae5f3c | |||
a8c035e88f | |||
aae64a9937 | |||
0c92645c9c | |||
5dd1a6283b | |||
d8809182e6 | |||
a7ed71e78f | |||
4598ec33fc | |||
10f64e120e | |||
b4569c0730 | |||
557a921835 | |||
6003cdea85 | |||
16764d6e80 | |||
dcc22f1696 | |||
0d0c5e5a7f | |||
5dee6f61b1 | |||
52f2f3c72b | |||
fccd2b46b6 | |||
c31ff0f095 | |||
bde7442526 | |||
19c4ff8cb9 | |||
0fb46507b3 | |||
065574d672 | |||
08e7d784da | |||
478115a63b | |||
029c83da14 | |||
c2c71b2f21 | |||
14a7cd1ba1 | |||
f1acd77583 | |||
8caee7ecee | |||
7b27476601 | |||
043ce9a2c2 | |||
cbc3aaeed8 | |||
61c1cf3a3c | |||
15f0fc62ac | |||
36e39a395d | |||
661197f502 | |||
13a5cc8589 | |||
dd18d5c962 | |||
0589466f76 | |||
9508da5d81 | |||
b0d9b4627a | |||
36d8b7bd72 | |||
c6f3cbbf49 | |||
88e79c9cc5 | |||
1b9bc8fada | |||
07406ddd36 | |||
9c6af6d841 | |||
7a0b3034c7 | |||
7cd56df174 | |||
97190c0ae6 | |||
16a2776ea8 | |||
84be09269b | |||
03a7605d8a | |||
18dbe3291b | |||
6efc333ffe | |||
24d9b1c4e3 | |||
f8a5488be3 | |||
3564eebeca | |||
523d346857 | |||
82ed8e0cc5 | |||
5f41105096 | |||
b8dcff1104 | |||
622d1cc126 | |||
d8643a4129 | |||
a9a5736df8 | |||
aeccc23943 | |||
1a6738f920 | |||
7a83a2363f | |||
20d2cbc2fe | |||
beccd79ca4 | |||
6591f8ed67 | |||
4c93783ab6 | |||
87942b39b8 | |||
bdff0bf3bb | |||
ce3dbd55a2 | |||
3bd16e09b9 | |||
58baaf1075 | |||
fdb344fcdc | |||
1fe44fa0ee | |||
39bfd4e248 | |||
2c4d4a5614 | |||
84956c7b65 | |||
b8ffab317d | |||
7890e26bad | |||
d946a24d6f | |||
9455359a86 | |||
a5058f116f | |||
67a0b0363d | |||
197104536a | |||
73d8703534 | |||
0d8e62471c | |||
4676f8f008 | |||
6174ddf17e | |||
e406a7a814 | |||
fbfd14f8ab | |||
25aa74fd45 | |||
c39bdb9e49 | |||
b1913b5106 | |||
5e2b2b2056 | |||
a312c4ad3e | |||
deeabe9438 | |||
59da28cb06 | |||
b8a29b9f59 | |||
caf26b77ab | |||
fb194d7319 | |||
e90e8e5cba | |||
ce6e3d8137 | |||
fe1bca68da | |||
8ee0b0259e | |||
0ec57cfcba | |||
9de15dd687 | |||
07be86c147 | |||
59f27ca73d | |||
2370fc5701 | |||
ef260375d1 | |||
934832844a | |||
4782a56f0b | |||
bee1524723 | |||
f45fc26cd9 | |||
9569222b7b | |||
9a14a2f8fb | |||
5d0769fc7e | |||
1374bb47c2 | |||
6336a3a994 | |||
c49da8b6f4 | |||
23ba9e1644 | |||
1c32538089 | |||
3c327d0d6a | |||
c2a0bd2890 | |||
4a1975b0e3 | |||
6aff1141f4 | |||
3bf47e73f3 | |||
c9586396d2 | |||
9370db962b | |||
f8813f8e13 | |||
57303f1c06 | |||
6150f6717a | |||
3a5a31c113 | |||
c42b38ea51 | |||
672a38cc06 | |||
5db95e5a5f | |||
2dc1adb7fe | |||
4c46af0483 | |||
a88d53be2e | |||
14a2e1ba96 | |||
1d2380df56 | |||
7ebedc2aa3 | |||
246a103e9e | |||
0c3d683be4 | |||
5c6017aad4 | |||
290faedcc3 | |||
7abb81b2ea | |||
575f734eec | |||
d80ddf3244 | |||
6bea578da0 | |||
7e541072ce | |||
a7442cbfb0 | |||
7e7f7e2cfd | |||
cfef80c54c | |||
9362186ba7 | |||
3c4b35f3c4 | |||
c7a1b7c90c | |||
f509487d3b | |||
e4dccd20ae | |||
df3b708e8c | |||
2b9519ea1e | |||
f4f7759649 | |||
dad797d01b | |||
4f3851a722 | |||
303be2e442 | |||
8e46b60b2f | |||
97f95559c5 | |||
164d0b2e83 | |||
f9084e53d1 | |||
36bde0efca | |||
72008c5a0e | |||
7d81c1bb17 | |||
c984ff17a4 | |||
869aad50af | |||
9d507be2ae | |||
cc0d6ada81 | |||
5857ea3275 | |||
694e0b8176 | |||
102d3735f2 | |||
1c12362df6 | |||
2241f628e5 | |||
c77ba66ade | |||
0487794b7c | |||
5e4441235b | |||
cf04b907ef | |||
0a3c2a29a6 | |||
efcc8dc1d7 | |||
09a05ea58c | |||
c277bc185e | |||
023fc6d529 | |||
ba1a1e289f | |||
7c90da10c2 | |||
783a2b5504 | |||
e3ba25473f | |||
98fae509c2 | |||
c13e509a6c | |||
4bbb83511b | |||
21c0763a3c | |||
83121eacf7 | |||
c5d1f6dfee | |||
daec7df217 | |||
3f736fd61f | |||
291af5847d | |||
fb793ef52a | |||
7921b36a7d | |||
c25b81d43b | |||
e8fb21e127 | |||
d5446c1a27 | |||
a5eb8c4bcb | |||
760b9d05e6 | |||
1efd93e613 | |||
1c4461b9c5 | |||
75762aaf26 | |||
b155af83e7 | |||
146ec3bab9 | |||
07867727d3 | |||
4c68245cf7 | |||
fe0b89e3d5 | |||
313a2b1722 | |||
25dada932a | |||
51aca8e38d | |||
d1e89586de | |||
c5165e9b83 | |||
e0d1683bff | |||
1182bf8391 | |||
fb537e6120 | |||
ce54d88b56 | |||
e630cee134 | |||
2e81416cf5 | |||
a485280a75 | |||
3c6a25fb7c | |||
fe5dab6a60 | |||
4175bf45ad | |||
c701a2fc6f | |||
158aff2897 | |||
97edf2a6b0 | |||
cfb9ecdc58 | |||
48abb72eac | |||
93beb1c83a | |||
ab7646a790 | |||
79caf5551e | |||
9e988ab26e | |||
13ac67551a | |||
f97ce89e77 | |||
ddf22f7774 | |||
45fa893452 | |||
d716845e25 | |||
8515c7b46f | |||
66bfe18e8e | |||
00574dcab9 | |||
df7fc0e060 | |||
6a2b1cce6d | |||
02d0e99907 | |||
c7206962be | |||
fb56f75e9c | |||
0565a85c7c | |||
5040cd0d03 | |||
44678e5442 | |||
5389fac4ea | |||
29f46b2e73 | |||
33b9f6cb5e | |||
c1c7eb0a2f | |||
b6b6f6151e | |||
256afd61f7 | |||
be643366de | |||
88ede7a3f7 | |||
4ef46f867a | |||
63a2b61ef1 | |||
c0b831a35f | |||
548ffd6ed2 | |||
abf2bfede4 | |||
e6472f2b57 | |||
ce8c876e30 | |||
d16cfaf9c4 | |||
273327a378 | |||
4272f9bbb1 | |||
7529f8ee12 | |||
348c51a201 | |||
c36c7801fe | |||
e4a88648a3 | |||
56890a560e | |||
2b41e21997 | |||
9b49fa8e11 | |||
9147b41f2b | |||
09592a572d | |||
5667d6586b | |||
ff2dd3e01d | |||
b9b293ae35 | |||
acc3a19ff9 | |||
7615b9a9e6 | |||
54ab96311d | |||
3386274dcd | |||
23226323c7 | |||
06763f4157 | |||
7558b5fdb8 | |||
881b10d750 | |||
3401f27651 | |||
ce265449c6 | |||
dfb78d26dc | |||
8e7d8eed22 | |||
3cdddabe39 | |||
c42dba492b | |||
843281ce87 | |||
354a6e3a12 | |||
149d729b02 | |||
96961861df | |||
ebbc68e855 | |||
fcdf94ca2c | |||
f80bfe9068 | |||
0170778a4c | |||
1847ca06e4 | |||
86c682b375 | |||
bf938187e7 | |||
2629fa792f | |||
acb11bf065 | |||
4229222073 | |||
d6d0d95a2f | |||
4ffde07033 | |||
0d2398c1b5 | |||
bd905d1d08 | |||
b2211a4139 | |||
80e9e800e1 | |||
05c54fceca | |||
4dd49512e9 | |||
ce4f6974b0 | |||
dd9edc86dc | |||
b3d9bbc7dc | |||
3c1fa13921 | |||
18a55c271c | |||
dda4b51d89 | |||
0fce867c51 | |||
3007516320 | |||
ed8864b6d2 | |||
11e99e42e8 | |||
d117d075a4 | |||
5887ca3ec5 | |||
5944fbd33c | |||
58ce7f5405 | |||
7f754bbf05 | |||
b3b2f162c6 | |||
c7fa40b00d | |||
0c600d7f9d | |||
ef9242b9ec | |||
d96b5daafa | |||
0fa6b5c912 | |||
f9b9a591b8 | |||
27488d8f57 | |||
676c24b64c | |||
3ba037d793 | |||
3b477bcd53 | |||
a4638bb50f | |||
26a1c76b1e | |||
41406bfa17 | |||
c338a71bd2 | |||
4aafd6fabd | |||
0a09a9cef1 | |||
62c493e7a8 | |||
0f4815d2b7 | |||
ad8d1eadae | |||
d62033cb90 | |||
f6e7d736d3 | |||
3de77ad6d8 | |||
9327e1d779 | |||
62976d939b | |||
cf79da3f96 | |||
6edb354e66 | |||
447af0edcd | |||
15c872ce9b | |||
578f738810 | |||
59dcceea58 | |||
b0d25579cb | |||
16e5ae5939 | |||
7f269c6c39 | |||
e4364e1d0e | |||
f933c83b75 | |||
358b2734fb | |||
29b800443c | |||
89c01f3866 | |||
31e6a818ec | |||
9dced9cb98 | |||
e3d075f710 | |||
01a71ec71d | |||
022bcfb064 | |||
d0afe42ed2 | |||
e896e90e6e | |||
294d408d70 | |||
cb49441a25 | |||
d725cfb8a9 | |||
4b7e35c0ba | |||
7f5d1446d5 | |||
7626b811a7 | |||
971f696733 | |||
362784404e | |||
42c93f32de | |||
28d62c2b2b | |||
df1855ffe5 | |||
f9ed102553 | |||
d53a3bebee | |||
06005bd194 | |||
0b46a40ed1 | |||
d5d4388a16 | |||
388fb79a3a | |||
093f1abf40 | |||
8877f8ed91 | |||
c348148022 | |||
2de4045585 | |||
5d58c691ca | |||
6eab99b581 | |||
ae9065a17e | |||
e1b456e562 | |||
dbfb33abe0 | |||
8fbd1680bb | |||
314d9b7f67 | |||
0354bf7ef6 | |||
190d1ab808 | |||
5632a9341c | |||
776c2b3d2c | |||
13d1e0a803 | |||
c0107cc33f |
35
.github/ISSUE_TEMPLATE.md
vendored
35
.github/ISSUE_TEMPLATE.md
vendored
|
@ -1,35 +0,0 @@
|
|||
<!--- Remove sections that do not apply -->
|
||||
|
||||
This issue tracker is only for technical issues related to Dogecoin Core.
|
||||
|
||||
For general questions about Dogecoin please use one of the various communities, e.g. Reddit, IRC, Discord, etc.
|
||||
|
||||
### Describe the issue
|
||||
|
||||
### Can you reliably reproduce the issue?
|
||||
#### If so, please list the steps to reproduce below:
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
### Expected behaviour
|
||||
Tell us what should happen
|
||||
|
||||
### Actual behaviour
|
||||
Tell us what happens instead
|
||||
|
||||
### Screenshots.
|
||||
If the issue is related to the GUI, screenshots can be added to this issue via drag & drop.
|
||||
|
||||
### What version of Dogecoin Core are you using?
|
||||
List the version number/commit ID, and if it is an official binary, self compiled or a distribution package such as PPA.
|
||||
|
||||
### Machine specs:
|
||||
- OS:
|
||||
- CPU:
|
||||
- RAM:
|
||||
- Disk size:
|
||||
- Disk Type (HD/SDD):
|
||||
|
||||
### Any extra information that might be useful in the debugging process.
|
||||
This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred.
|
40
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
40
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
name: 🐜 Bug Report
|
||||
about: Create a report to help us improve
|
||||
title: '[bug] '
|
||||
---
|
||||
|
||||
<!-- Please make sure you are posting an technical issue related to Dogecoin Core. -->
|
||||
|
||||
<!-- For general questions about Dogecoin or wallet recovery please use one of the various communities:
|
||||
* [Dogeducation on reddit](https://www.reddit.com/r/dogeducation/)
|
||||
* [Discord](https://discord.com/invite/dogecoin) -->
|
||||
|
||||
<!-- ISSUES MISSING IMPORTANT INFORMATION MAY BE CLOSED WITHOUT INVESTIGATION. -->
|
||||
|
||||
# Bug Report
|
||||
|
||||
**Current behavior:**
|
||||
<!-- Describe how the bug manifests. -->
|
||||
|
||||
**Expected behavior**
|
||||
<!-- Describe what the behavior would be without the bug. -->
|
||||
|
||||
**Steps to reproduce:**
|
||||
<!-- Please explain the steps required to duplicate the issue, especially if you are able to provide a sample application or sample code -->
|
||||
|
||||
**Screenshots**
|
||||
<!-- If the issue is related to the GUI, screenshots can be added to this issue via drag & drop. -->
|
||||
|
||||
**Dogecoin Core version**
|
||||
<!-- List the version number/commit ID, and if it is an official binary, self compiled or a distribution package such as PPA. -->
|
||||
|
||||
**Machine specs**
|
||||
- OS:
|
||||
- CPU:
|
||||
- RAM:
|
||||
- Disk size:
|
||||
- Disk Type (HD/SDD):
|
||||
|
||||
**Extra information**
|
||||
<!-- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->
|
30
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
30
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
name: 🚀 Feature Request
|
||||
about: Suggest an idea for this project
|
||||
title: '[feat] '
|
||||
---
|
||||
|
||||
<!-- Please make sure you are posting an technical issue related to Dogecoin Core. -->
|
||||
|
||||
<!-- For general questions about Dogecoin or wallet recovery please use one of the various communities:
|
||||
* [Dogeducation on reddit](https://www.reddit.com/r/dogeducation/)
|
||||
* [Discord](https://discord.com/invite/dogecoin) -->
|
||||
|
||||
<!-- ISSUES MISSING IMPORTANT INFORMATION MAY BE CLOSED WITHOUT INVESTIGATION. -->
|
||||
|
||||
# Feature Request
|
||||
|
||||
**Describe the Feature Request**
|
||||
<!-- A clear and concise description of what the feature request is. Please include if your feature request is related to a problem. -->
|
||||
|
||||
**Describe Preferred Solution**
|
||||
<!-- A clear and concise description of what you want to happen. -->
|
||||
|
||||
**Describe Alternatives**
|
||||
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
||||
|
||||
**Related Code**
|
||||
<!-- If you are able to illustrate the feature request with an example, please provide a samples via an online code collaborator such as [StackBlitz](https://stackblitz.com), or code snippet on [GitHub](https://github.com). -->
|
||||
|
||||
**Additional Context**
|
||||
<!-- List any other information that is relevant to your issue. Stack traces, related issues, suggestions on how to add, use case, Stack Overflow links, forum links, screenshots, OS if applicable, etc. -->
|
227
.github/workflows/ci.yml
vendored
Normal file
227
.github/workflows/ci.yml
vendored
Normal file
|
@ -0,0 +1,227 @@
|
|||
name: Continuous Integration
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'doc/**'
|
||||
- 'contrib/**'
|
||||
- '**/*.md'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: ${{ matrix.name }}
|
||||
|
||||
env:
|
||||
MAKEJOBS: "-j3"
|
||||
CHECK_DOC: "0"
|
||||
CCACHE_SIZE: "100M"
|
||||
CCACHE_TEMPDIR: /tmp/.ccache-temp
|
||||
CCACHE_COMPRESS: "1"
|
||||
PYTHON_DEBUG: "1"
|
||||
WINEDEBUG: fixme-all
|
||||
SDK_URL: https://bitcoincore.org/depends-sources/sdks
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
name:
|
||||
- aarch64-linux
|
||||
- armhf-linux
|
||||
- i686-linux
|
||||
- i686-win
|
||||
- x86_64-linux-dbg
|
||||
- x86_64-linux-nowallet
|
||||
- x86_64-macos
|
||||
- x86_64-win
|
||||
- x86_64-linux-experimental
|
||||
include:
|
||||
- name: i686-linux
|
||||
host: i686-pc-linux-gnu
|
||||
os: ubuntu-18.04
|
||||
packages: g++-multilib bc python3-zmq
|
||||
run-tests: true
|
||||
check-security: true
|
||||
check-symbols: true
|
||||
dep-opts: "NO_QT=1"
|
||||
config-opts: "--enable-zmq --enable-glibc-back-compat LDFLAGS=-static-libstdc++"
|
||||
goal: install
|
||||
- name: armhf-linux
|
||||
host: arm-linux-gnueabihf
|
||||
os: ubuntu-18.04
|
||||
packages: g++-arm-linux-gnueabihf
|
||||
run-tests: false
|
||||
check-security: true
|
||||
check-symbols: false
|
||||
dep-opts: "NO_QT=1"
|
||||
config-opts: "--enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++"
|
||||
goal: install
|
||||
- name: aarch64-linux
|
||||
host: aarch64-linux-gnu
|
||||
os: ubuntu-18.04
|
||||
packages: g++-aarch64-linux-gnu
|
||||
run-tests: false
|
||||
check-security: true
|
||||
check-symbols: false
|
||||
dep-opts: "NO_QT=1"
|
||||
config-opts: "--enable-zmq --enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++"
|
||||
goal: install
|
||||
- name: x86_64-linux-nowallet
|
||||
host: x86_64-unknown-linux-gnu
|
||||
os: ubuntu-18.04
|
||||
packages: python3
|
||||
run-tests: true
|
||||
check-security: true
|
||||
check-symbols: true
|
||||
dep-opts: "NO_WALLET=1"
|
||||
config-opts: "--enable-gui=qt5 --enable-glibc-back-compat --disable-wallet LDFLAGS=-static-libstdc++"
|
||||
goal: install
|
||||
- name: x86_64-linux-dbg
|
||||
host: x86_64-unknown-linux-gnu
|
||||
os: ubuntu-18.04
|
||||
packages: bc python3-zmq
|
||||
run-tests: true
|
||||
check-security: true
|
||||
check-symbols: false
|
||||
dep-opts: "DEBUG=1"
|
||||
config-opts: "--enable-gui=qt5 --enable-zmq --enable-glibc-back-compat CPPFLAGS=-DDEBUG_LOCKORDER"
|
||||
goal: install
|
||||
- name: i686-win
|
||||
host: i686-w64-mingw32
|
||||
arch: "i386"
|
||||
os: ubuntu-18.04
|
||||
packages: python3 nsis g++-mingw-w64-i686 wine-stable bc wine-binfmt
|
||||
postinstall: |
|
||||
sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
|
||||
sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
|
||||
sudo update-binfmts --import /usr/share/binfmts/wine
|
||||
run-tests: true
|
||||
check-security: true
|
||||
check-symbols: false
|
||||
dep-opts: ""
|
||||
config-opts: "--enable-gui=qt5"
|
||||
goal: install
|
||||
- name: x86_64-win
|
||||
host: x86_64-w64-mingw32
|
||||
arch: "i386"
|
||||
os: ubuntu-18.04
|
||||
packages: python3 nsis g++-mingw-w64-x86-64 wine64 bc wine-binfmt
|
||||
postinstall: |
|
||||
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
|
||||
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
||||
sudo update-binfmts --import /usr/share/binfmts/wine
|
||||
run-tests: true
|
||||
check-security: true
|
||||
check-symbols: false
|
||||
dep-opts: ""
|
||||
config-opts: "--enable-gui=qt5"
|
||||
goal: install
|
||||
- name: x86_64-macos
|
||||
host: x86_64-apple-darwin11
|
||||
os: ubuntu-18.04
|
||||
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libtiff-tools libtinfo5 python3-setuptools xorriso libtinfo5
|
||||
run-tests: false
|
||||
check-security: false
|
||||
check-symbols: false
|
||||
dep-opts: ""
|
||||
config-opts: "--enable-gui=qt5 --disable-tests"
|
||||
goal: deploy
|
||||
sdk: 10.11
|
||||
- name: x86_64-linux-experimental
|
||||
host: x86_64-unknown-linux-gnu
|
||||
os: ubuntu-20.04
|
||||
packages: bc python3-zmq
|
||||
run-tests: true
|
||||
dep-opts: "AVX2=1"
|
||||
config-opts: "--with-intel-avx2 --enable-gui=qt5 --enable-zmq --enable-glibc-back-compat --enable-reduce-exports"
|
||||
goal: install
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Add architecture
|
||||
if: ${{ matrix.arch }}
|
||||
run: |
|
||||
sudo dpkg --add-architecture "${{ matrix.arch }}"
|
||||
|
||||
- name: Install packages
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps bison
|
||||
sudo apt-get install ${{ matrix.packages }}
|
||||
|
||||
- name: Post install
|
||||
if: ${{ matrix.postinstall }}
|
||||
run: ${{ matrix.postinstall }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: SDK cache
|
||||
if: ${{ matrix.sdk }}
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: sdk
|
||||
with:
|
||||
path: ./depends/sdk-sources
|
||||
key: ${{ matrix.name }}-${{ env.cache-name }}
|
||||
|
||||
- name: Install SDK
|
||||
if: ${{ matrix.sdk }}
|
||||
run: |
|
||||
mkdir -p ./depends/sdk-sources
|
||||
mkdir -p ./depends/SDKs
|
||||
curl --location --fail $SDK_URL/MacOSX${{ matrix.sdk }}.sdk.tar.gz -o depends/sdk-sources/MacOSX${{ matrix.sdk }}.sdk.tar.gz
|
||||
tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${{ matrix.sdk }}.sdk.tar.gz
|
||||
|
||||
- name: Dependency cache
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: depends
|
||||
with:
|
||||
path: ./depends/built
|
||||
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('depends/packages/*') }}
|
||||
|
||||
- name: Build depends
|
||||
run: |
|
||||
make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }}
|
||||
|
||||
- name: CCache
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: ccache
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('**/configure.ac') }}
|
||||
|
||||
- name: Build Dogecoin
|
||||
run: |
|
||||
depends/${{ matrix.host }}/native/bin/ccache --max-size=$CCACHE_SIZE
|
||||
./autogen.sh
|
||||
./configure --prefix=`pwd`/depends/${{ matrix.host }} ${{ matrix.config-opts }} --enable-reduce-exports || ( cat config.log && false)
|
||||
make $MAKEJOBS ${{ matrix.goal }} || ( echo "Build failure. Verbose build follows." && make ${{ matrix.goal }} V=1 ; false )
|
||||
|
||||
- name: Run tests
|
||||
if: ${{ matrix.run-tests }}
|
||||
run: |
|
||||
make check $MAKEJOBS VERBOSE=1
|
||||
qa/pull-tester/install-deps.sh
|
||||
qa/pull-tester/rpc-tests.py --coverage
|
||||
|
||||
- name: Check security
|
||||
if: ${{ matrix.check-security }}
|
||||
run: make -C src check-security
|
||||
|
||||
- name: Check symbols
|
||||
if: ${{ matrix.check-symbols }}
|
||||
run: make -C src check-symbols
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: dogecoin-${{ github.sha }}-${{ matrix.name }}
|
||||
path: |
|
||||
depends/${{ matrix.host }}/bin/dogecoin*
|
||||
dist/Dogecoin-Qt.app
|
71
.github/workflows/codeql-analysis.yml
vendored
Normal file
71
.github/workflows/codeql-analysis.yml
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
# CodeQL GH Actions file
|
||||
name: CodeQL
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*-dev'
|
||||
- '*-maint'
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches:
|
||||
- '*-dev'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.txt'
|
||||
- 'contrib'
|
||||
- 'doc'
|
||||
- 'share'
|
||||
- 'qa'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-18.04
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'cpp' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Update system
|
||||
run: |
|
||||
sudo apt-get update --yes
|
||||
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils --yes
|
||||
|
||||
- name: Dependency cache
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: depends
|
||||
with:
|
||||
path: ./depends/built
|
||||
key: codeql-${{ env.cache-name }}-${{ hashFiles('depends/packages/*') }}
|
||||
|
||||
- name: Build depends
|
||||
run: |
|
||||
pushd depends
|
||||
make -j4 HOST=x86_64-pc-linux-gnu
|
||||
popd
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
|
||||
- name: Build Dogecoin
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure --prefix=`pwd`/depends/x86_64-pc-linux-gnu
|
||||
make -j4
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
15
.gitignore
vendored
15
.gitignore
vendored
|
@ -110,3 +110,18 @@ qa/cache/*
|
|||
|
||||
libbitcoinconsensus.pc
|
||||
contrib/devtools/split-debug.sh
|
||||
|
||||
.idea/
|
||||
.vscode/*
|
||||
|
||||
# Snapcraft
|
||||
parts/
|
||||
prime/
|
||||
stage/
|
||||
*.snap
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
|
76
.travis.yml
76
.travis.yml
|
@ -1,76 +0,0 @@
|
|||
sudo: required
|
||||
dist: trusty
|
||||
os: linux
|
||||
language: generic
|
||||
cache:
|
||||
directories:
|
||||
- depends/built
|
||||
- depends/sdk-sources
|
||||
- $HOME/.ccache
|
||||
env:
|
||||
global:
|
||||
- MAKEJOBS=-j3
|
||||
- RUN_TESTS=false
|
||||
- CHECK_DOC=0
|
||||
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
|
||||
- CCACHE_SIZE=100M
|
||||
- CCACHE_TEMPDIR=/tmp/.ccache-temp
|
||||
- CCACHE_COMPRESS=1
|
||||
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
|
||||
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
|
||||
- PYTHON_DEBUG=1
|
||||
- WINEDEBUG=fixme-all
|
||||
matrix:
|
||||
# ARM
|
||||
- HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
|
||||
# Win32
|
||||
- HOST=i686-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-i686 wine1.6 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
|
||||
# 32-bit + dash
|
||||
- HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc python3-zmq" DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash"
|
||||
# Win64
|
||||
- HOST=x86_64-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine1.6 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
|
||||
# dogecoind
|
||||
- HOST=x86_64-unknown-linux-gnu PACKAGES="bc python3-zmq" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER"
|
||||
# No wallet
|
||||
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3" DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
|
||||
# Cross-Mac
|
||||
- HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" OSX_SDK=10.11 GOAL="deploy"
|
||||
|
||||
before_install:
|
||||
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
|
||||
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/pyenv/d' | tr "\n" ":" | sed "s|::|:|g")
|
||||
install:
|
||||
- if [ -n "$PPA" ]; then travis_retry sudo add-apt-repository "$PPA" -y; fi
|
||||
- if [ -n "$DPKG_ADD_ARCH" ]; then sudo dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
|
||||
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
|
||||
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
|
||||
before_script:
|
||||
- unset CC; unset CXX
|
||||
- if [ "$CHECK_DOC" = 1 ]; then contrib/devtools/check-doc.py; fi
|
||||
- mkdir -p depends/SDKs depends/sdk-sources
|
||||
- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/install-deps.sh; fi
|
||||
- if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
|
||||
- if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
|
||||
- make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
|
||||
script:
|
||||
- if [ "$RUN_TESTS" = "true" -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi
|
||||
- if [ "$RUN_TESTS" = "true" -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then git fetch --unshallow; fi
|
||||
- if [ "$RUN_TESTS" = "true" -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then contrib/verify-commits/verify-commits.sh; fi
|
||||
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
|
||||
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
|
||||
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
|
||||
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
|
||||
- depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
|
||||
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
|
||||
- mkdir build && cd build
|
||||
- ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
|
||||
- make distdir VERSION=$HOST
|
||||
- cd dogecoin-$HOST
|
||||
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
|
||||
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
|
||||
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
|
||||
- if [ "$RUN_TESTS" = "true" ]; then make $MAKEJOBS check VERBOSE=1; fi
|
||||
- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/rpc-tests.py --coverage; fi
|
||||
after_script:
|
||||
- echo $TRAVIS_COMMIT_RANGE
|
||||
- echo $TRAVIS_COMMIT_LOG
|
223
CONTRIBUTING.md
223
CONTRIBUTING.md
|
@ -1,22 +1,22 @@
|
|||
Contributing to Bitcoin Core
|
||||
============================
|
||||
# Contributing to Dogecoin Core
|
||||
|
||||
The Bitcoin Core project operates an open contributor model where anyone is
|
||||
welcome to contribute towards development in the form of peer review, testing
|
||||
and patches. This document explains the practical process and guidelines for
|
||||
contributing.
|
||||
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:
|
||||
|
||||
Firstly in terms of structure, there is no particular concept of "Core
|
||||
developers" in the sense of privileged people. Open source often naturally
|
||||
revolves around meritocracy where longer term contributors gain more trust from
|
||||
the developer community. However, some hierarchy is necessary for practical
|
||||
purposes. As such there are repository "maintainers" who are responsible for
|
||||
merging pull requests as well as a "lead maintainer" who is responsible for the
|
||||
release cycle, overall merging, moderation and appointment of maintainers.
|
||||
* [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
|
||||
|
||||
Contributor Workflow
|
||||
--------------------
|
||||
Dogecoin Core's default branch is intentionally a stable release, so that anyone
|
||||
downloading the code and compiling it gets a stable release. Active development
|
||||
occurs on branches named after the version they are targeting, for example the
|
||||
1.14.4 branch is named `1.14.4-dev`. When raising PRs, please raise against the
|
||||
relevant development branch and **not** against the `master` branch.
|
||||
|
||||
## Contributor Workflow
|
||||
|
||||
The codebase is maintained using the "contributor workflow" where everyone
|
||||
without exception contributes patch proposals using "pull requests". This
|
||||
|
@ -24,12 +24,15 @@ facilitates social contribution, easy testing and peer review.
|
|||
|
||||
To contribute a patch, the workflow is as follows:
|
||||
|
||||
- Fork repository
|
||||
- Create topic branch
|
||||
- Commit patches
|
||||
- Fork the repository in GitHub, and clone it your development machine.
|
||||
- Create a topic branch from the relevant development branch.
|
||||
- Commit changes to the branch.
|
||||
- Test your changes, which **must** include the unit and RPC tests passing.
|
||||
- Push topic branch to your copy of the repository.
|
||||
- Raise a Pull Request via GitHub.
|
||||
|
||||
The project coding conventions in the [developer notes](doc/developer-notes.md)
|
||||
must be adhered to.
|
||||
The coding conventions in the [developer notes](doc/developer-notes.md) must be
|
||||
adhered to.
|
||||
|
||||
In general [commits should be atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention)
|
||||
and diffs should be easy to read. For this reason do not mix any formatting
|
||||
|
@ -42,60 +45,19 @@ in init.cpp") then a single title line is sufficient. Commit messages should be
|
|||
helpful to people reading your code in the future, so explain the reasoning for
|
||||
your decisions. Further explanation [here](http://chris.beams.io/posts/git-commit/).
|
||||
|
||||
If a particular commit references another issue, please add the reference, for
|
||||
example `refs #1234`, or `fixes #4321`. Using the `fixes` or `closes` keywords
|
||||
will cause the corresponding issue to be closed when the pull request is merged.
|
||||
|
||||
Please refer to the [Git manual](https://git-scm.com/doc) for more information
|
||||
about Git.
|
||||
|
||||
- Push changes to your fork
|
||||
- Create pull request
|
||||
|
||||
The title of the pull request should be prefixed by the component or area that
|
||||
the pull request affects. Valid areas as:
|
||||
|
||||
- *Consensus* for changes to consensus critical code
|
||||
- *Docs* for changes to the documentation
|
||||
- *Qt* for changes to bitcoin-qt
|
||||
- *Mining* for changes to the mining code
|
||||
- *Net* or *P2P* for changes to the peer-to-peer network code
|
||||
- *RPC/REST/ZMQ* for changes to the RPC, REST or ZMQ APIs
|
||||
- *Scripts and tools* for changes to the scripts and tools
|
||||
- *Tests* for changes to the bitcoin unit tests or QA tests
|
||||
- *Trivial* should **only** be used for PRs that do not change generated
|
||||
executable code. Notably, refactors (change of function arguments and code
|
||||
reorganization) and changes in behavior should **not** be marked as trivial.
|
||||
Examples of trivial PRs are changes to:
|
||||
- comments
|
||||
- whitespace
|
||||
- variable names
|
||||
- logging and messages
|
||||
- *Utils and libraries* for changes to the utils and libraries
|
||||
- *Wallet* for changes to the wallet code
|
||||
|
||||
Examples:
|
||||
|
||||
Consensus: Add new opcode for BIP-XXXX OP_CHECKAWESOMESIG
|
||||
Net: Automatically create hidden service, listen on Tor
|
||||
Qt: Add feed bump button
|
||||
Trivial: Fix typo in init.cpp
|
||||
|
||||
If a pull request is specifically not to be considered for merging (yet) please
|
||||
prefix the title with [WIP] or use [Tasks Lists](https://help.github.com/articles/basic-writing-and-formatting-syntax/#task-lists)
|
||||
in the body of the pull request to indicate tasks are pending.
|
||||
|
||||
The body of the pull request should contain enough description about what the
|
||||
patch does together with any justification/reasoning. You should include
|
||||
references to any discussions (for example other tickets or mailing list
|
||||
discussions).
|
||||
discussions). At this stage one should expect comments and review from other
|
||||
contributors. You can add more commits to your pull request by committing them
|
||||
locally and pushing to your fork until you have satisfied feedback.
|
||||
|
||||
At this stage one should expect comments and review from other contributors. You
|
||||
can add more commits to your pull request by committing them locally and pushing
|
||||
to your fork until you have satisfied all feedback.
|
||||
|
||||
Squashing Commits
|
||||
---------------------------
|
||||
## Squashing Commits
|
||||
|
||||
If your pull request is accepted for merging, you may be asked by a maintainer
|
||||
to squash and or [rebase](https://git-scm.com/docs/git-rebase) your commits
|
||||
before it will be merged. The basic squashing workflow is shown below.
|
||||
|
@ -117,122 +79,97 @@ Use the pull request that is already open (or was created earlier) to amend
|
|||
changes. This preserves the discussion and review that happened earlier for
|
||||
the respective change set.
|
||||
|
||||
The length of time required for peer review is unpredictable and will vary from
|
||||
pull request to pull request.
|
||||
The length of time required for peer review is unpredictable and will vary
|
||||
between pull requests.
|
||||
|
||||
|
||||
Pull Request Philosophy
|
||||
-----------------------
|
||||
## Pull Request Philosophy
|
||||
|
||||
Patchsets should always be focused. For example, a pull request could add a
|
||||
feature, fix a bug, or refactor code; but not a mixture. Please also avoid super
|
||||
pull requests which attempt to do too much, are overly large, or overly complex
|
||||
Pull Requests should always be focused. For example, a pull request could add a
|
||||
feature, fix a bug, or refactor code; but not a mixture. Please avoid submitting
|
||||
pull requests that attempt to do too much, are overly large, or overly complex
|
||||
as this makes review difficult.
|
||||
|
||||
|
||||
###Features
|
||||
### Features
|
||||
|
||||
When adding a new feature, thought must be given to the long term technical debt
|
||||
and maintenance that feature may require after inclusion. Before proposing a new
|
||||
feature that will require maintenance, please consider if you are willing to
|
||||
maintain it (including bug fixing). If features get orphaned with no maintainer
|
||||
in the future, they may be removed by the Repository Maintainer.
|
||||
in the future, they may be removed.
|
||||
|
||||
|
||||
###Refactoring
|
||||
### Refactoring
|
||||
|
||||
Refactoring is a necessary part of any software project's evolution. The
|
||||
following guidelines cover refactoring pull requests for the project.
|
||||
Dogecoin Core is a direct fork of Bitcoin Core and therefore benefits from as
|
||||
little refactoring as possible on code that is created upstream. If you see any
|
||||
structural issues with upstream code, please propose these fixes for
|
||||
[bitcoin/bitcoin](https://github.com/bitcoin/bitcoin) and future Dogecoin Core
|
||||
releases will automatically benefit from these.
|
||||
|
||||
There are three categories of refactoring, code only moves, code style fixes,
|
||||
code refactoring. In general refactoring pull requests should not mix these
|
||||
three kinds of activity in order to make refactoring pull requests easy to
|
||||
review and uncontroversial. In all cases, refactoring PRs must not change the
|
||||
behaviour of code within the pull request (bugs must be preserved as is).
|
||||
|
||||
Project maintainers aim for a quick turnaround on refactoring pull requests, so
|
||||
where possible keep them short, uncomplex and easy to verify.
|
||||
When refactoring Dogecoin-specific code, please keep refactoring requests short,
|
||||
low complexity and easy to verify.
|
||||
|
||||
|
||||
"Decision Making" Process
|
||||
-------------------------
|
||||
## "Decision Making" Process
|
||||
|
||||
The following applies to code changes to the Bitcoin Core project (and related
|
||||
projects such as libsecp256k1), and is not to be confused with overall Bitcoin
|
||||
Network Protocol consensus changes.
|
||||
The following applies to code changes to Dogecoin Core, and is not to be
|
||||
confused with overall Dogecoin Network Protocol consensus changes. All consensus
|
||||
changes **must** be ratified by miners; a proposal to implement protocol changes
|
||||
does not guarantee activation on the mainnet, not even when a binary gets
|
||||
released by maintainers.
|
||||
|
||||
Whether a pull request is merged into Bitcoin Core rests with the project merge
|
||||
maintainers and ultimately the project lead.
|
||||
Whether a pull request is merged into Dogecoin Core rests with the repository
|
||||
maintainers.
|
||||
|
||||
Maintainers will take into consideration if a patch is in line with the general
|
||||
principles of the project; meets the minimum standards for inclusion; and will
|
||||
judge the general consensus of contributors.
|
||||
principles of Dogecoin; meets the minimum standards for inclusion; and will
|
||||
take into account the consensus among frequent contributors.
|
||||
|
||||
In general, all pull requests must:
|
||||
|
||||
- have a clear use case, fix a demonstrable bug or serve the greater good of
|
||||
the project (for example refactoring for modularisation);
|
||||
- be well peer reviewed;
|
||||
- have unit tests and functional tests where appropriate;
|
||||
Dogecoin;
|
||||
- be peer reviewed;
|
||||
- have unit tests and functional tests;
|
||||
- follow code style guidelines;
|
||||
- not break the existing test suite;
|
||||
- where bugs are fixed, where possible, there should be unit tests
|
||||
demonstrating the bug and also proving the fix. This helps prevent regression.
|
||||
demonstrating the bug and also proving the fix. This helps prevent
|
||||
regressions.
|
||||
|
||||
Patches that change Bitcoin consensus rules are considerably more involved than
|
||||
normal because they affect the entire ecosystem and so must be preceded by
|
||||
extensive mailing list discussions and have a numbered BIP. While each case will
|
||||
be different, one should be prepared to expend more time and effort than for
|
||||
other kinds of patches because of increased peer review and consensus building
|
||||
requirements.
|
||||
The following patch types are expected to have significant discussion before
|
||||
approval and merge:
|
||||
|
||||
- Consensus rule changes (through softfork or otherwise)
|
||||
- Policy changes
|
||||
|
||||
While each case will be different, one should be prepared to expend more time
|
||||
and effort than for other kinds of patches because of increased peer review
|
||||
and consensus building requirements.
|
||||
|
||||
|
||||
###Peer Review
|
||||
### Peer Review
|
||||
|
||||
Anyone may participate in peer review which is expressed by comments in the pull
|
||||
request. Typically reviewers will review the code for obvious errors, as well as
|
||||
test out the patch set and opine on the technical merits of the patch. Project
|
||||
maintainers take into account the peer review when determining if there is
|
||||
consensus to merge a pull request (remember that discussions may have been
|
||||
spread out over GitHub, mailing list and IRC discussions). The following
|
||||
language is used within pull-request comments:
|
||||
request. Typically, reviewers will review the code for obvious errors, as well as
|
||||
test out the patch set and opine on the technical merits of the patch.
|
||||
Repository maintainers take into account the peer review when determining if
|
||||
there is consensus to merge a pull request.
|
||||
|
||||
- ACK means "I have tested the code and I agree it should be merged";
|
||||
- NACK means "I disagree this should be merged", and must be accompanied by
|
||||
sound technical justification (or in certain cases of copyright/patent/licensing
|
||||
issues, legal justification). NACKs without accompanying reasoning may be
|
||||
disregarded;
|
||||
- utACK means "I have not tested the code, but I have reviewed it and it looks
|
||||
OK, I agree it can be merged";
|
||||
- Concept ACK means "I agree in the general principle of this pull request";
|
||||
- Nit refers to trivial, often non-blocking issues.
|
||||
|
||||
Reviewers should include the commit hash which they reviewed in their comments.
|
||||
|
||||
Project maintainers reserve the right to weigh the opinions of peer reviewers
|
||||
Maintainers reserve the right to weigh the opinions of peer reviewers
|
||||
using common sense judgement and also may weight based on meritocracy: Those
|
||||
that have demonstrated a deeper commitment and understanding towards the project
|
||||
that have demonstrated a deeper commitment and understanding towards Dogecoin
|
||||
(over time) or have clear domain expertise may naturally have more weight, as
|
||||
one would expect in all walks of life.
|
||||
|
||||
Where a patch set affects consensus critical code, the bar will be set much
|
||||
higher in terms of discussion and peer review requirements, keeping in mind that
|
||||
mistakes could be very costly to the wider community. This includes refactoring
|
||||
of consensus critical code.
|
||||
Where a patch set proposes to change the Dogecoin consensus, it must have been
|
||||
discussed extensively, be accompanied by widely discussed documentation and have
|
||||
a generally widely perceived technical consensus of being a worthwhile change,
|
||||
based on the judgement of the maintainers.
|
||||
|
||||
Where a patch set proposes to change the Bitcoin consensus, it must have been
|
||||
discussed extensively on the mailing list and IRC, be accompanied by a widely
|
||||
discussed BIP and have a generally widely perceived technical consensus of being
|
||||
a worthwhile change based on the judgement of the maintainers.
|
||||
|
||||
|
||||
Release Policy
|
||||
--------------
|
||||
|
||||
The project leader is the release manager for each Bitcoin Core release.
|
||||
|
||||
Copyright
|
||||
---------
|
||||
## Copyright
|
||||
|
||||
By contributing to this repository, you agree to license your work under the
|
||||
MIT license unless specified otherwise in `contrib/debian/copyright` or at
|
||||
|
|
1
COPYING
1
COPYING
|
@ -1,6 +1,7 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2009-2017 The Bitcoin Core developers
|
||||
Copyright (c) 2013-2021 The Dogecoin Core developers
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
83
INSTALL.md
83
INSTALL.md
|
@ -1,5 +1,80 @@
|
|||
Building Bitcoin
|
||||
================
|
||||
# Installing Dogecoin Core
|
||||
|
||||
See doc/build-*.md for instructions on building the various
|
||||
elements of the Bitcoin Core reference implementation of Bitcoin.
|
||||
### Pre-compiled binaries
|
||||
|
||||
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.
|
||||
|
|
10
Makefile.am
10
Makefile.am
|
@ -34,7 +34,7 @@ OSX_BACKGROUND_IMAGE_DPIS=36 72
|
|||
OSX_DSSTORE_GEN=$(top_srcdir)/contrib/macdeploy/custom_dsstore.py
|
||||
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
|
||||
OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist
|
||||
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
|
||||
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/dogecoin.icns
|
||||
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
|
||||
OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW
|
||||
|
||||
|
@ -48,7 +48,7 @@ DIST_CONTRIB = $(top_srcdir)/contrib/dogecoin-cli.bash-completion \
|
|||
BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \
|
||||
$(top_srcdir)/contrib/devtools/security-check.py
|
||||
|
||||
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
|
||||
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/dogecoin.ico \
|
||||
$(top_srcdir)/share/pixmaps/nsis-header.bmp \
|
||||
$(top_srcdir)/share/pixmaps/nsis-wizard.bmp \
|
||||
$(top_srcdir)/doc/README_windows.txt
|
||||
|
@ -82,13 +82,13 @@ $(OSX_APP)/Contents/PkgInfo:
|
|||
|
||||
$(OSX_APP)/Contents/Resources/empty.lproj:
|
||||
$(MKDIR_P) $(@D)
|
||||
@touch $@
|
||||
@touch $@
|
||||
|
||||
$(OSX_APP)/Contents/Info.plist: $(OSX_PLIST)
|
||||
$(MKDIR_P) $(@D)
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
$(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS)
|
||||
$(OSX_APP)/Contents/Resources/dogecoin.icns: $(OSX_INSTALLER_ICONS)
|
||||
$(MKDIR_P) $(@D)
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
|
@ -101,7 +101,7 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings:
|
|||
echo '{ CFBundleDisplayName = "$(PACKAGE_NAME)"; CFBundleName = "$(PACKAGE_NAME)"; }' > $@
|
||||
|
||||
OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \
|
||||
$(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \
|
||||
$(OSX_APP)/Contents/Resources/dogecoin.icns $(OSX_APP)/Contents/Info.plist \
|
||||
$(OSX_APP)/Contents/MacOS/Dogecoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
|
||||
|
||||
osx_volname:
|
||||
|
|
194
README.md
194
README.md
|
@ -1,139 +1,105 @@
|
|||
# Dogecoin Core [DOGE, Ð]
|
||||
==========================
|
||||
<h1 align="center">
|
||||
Dogecoin Core [DOGE, Ð]
|
||||
<br/><br/>
|
||||
<img src="https://static.tumblr.com/ppdj5y9/Ae9mxmxtp/300coin.png" alt="Dogecoin" width="300"/>
|
||||
</h1>
|
||||
|
||||
![Dogecoin](http://static.tumblr.com/ppdj5y9/Ae9mxmxtp/300coin.png)
|
||||
<div align="center">
|
||||
|
||||
[![Build Status](https://travis-ci.org/dogecoin/dogecoin.svg?branch=1.14-dev)](https://travis-ci.org/dogecoin/dogecoin) [![tip for next commit](https://tip4commit.com/projects/702.svg)](https://tip4commit.com/github/dogecoin/dogecoin)
|
||||
[![DogecoinBadge](https://img.shields.io/badge/Doge-Coin-yellow.svg)](https://dogecoin.com)
|
||||
[![MuchWow](https://img.shields.io/badge/Much-Wow-yellow.svg)](https://dogecoin.com)
|
||||
|
||||
## What is Dogecoin? – Such coin
|
||||
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, Dogecoin currently employs a simplified variant of scrypt.
|
||||
</div>
|
||||
|
||||
http://dogecoin.com/
|
||||
Select language: EN | [CN](./README_zh_CN.md)
|
||||
|
||||
## License – Much license
|
||||
Dogecoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more
|
||||
information or see https://opensource.org/licenses/MIT.
|
||||
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.
|
||||
|
||||
## 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.
|
||||
For information about the default fees used on the Dogecoin network, please
|
||||
refer to the [fee recommendation](doc/fee-recommendation.md).
|
||||
|
||||
#### Version strategy
|
||||
**Website:** [dogecoin.com](https://dogecoin.com)
|
||||
|
||||
## Usage 💻
|
||||
|
||||
To start your journey with Dogecoin Core, see the [installation guide](INSTALL.md) and the [getting started](doc/getting-started.md) 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](https://developer.bitcoin.org/reference/rpc/) - 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](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.
|
||||
|
||||
#### Branches
|
||||
### 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.*
|
||||
*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
|
||||
## Contributing 🤝
|
||||
|
||||
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).
|
||||
If you find a bug or experience issues with this software, please report it
|
||||
using the [issue system](https://github.com/dogecoin/dogecoin/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5Bbug%5D+).
|
||||
|
||||
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`
|
||||
Please see [the contribution guide](CONTRIBUTING.md) to see how you can
|
||||
participate in the development of Dogecoin Core. There are often
|
||||
[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
|
||||
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.
|
||||
## Communities 🚀🍾
|
||||
|
||||
## Very Much Frequently Asked Questions
|
||||
You can join the communities on different social media.
|
||||
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.
|
||||
|
||||
### How much doge can exist? – So many puppies!
|
||||
Early 2015 (approximately a year and a half after release) there will be 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.
|
||||
Here are some places to visit:
|
||||
|
||||
### How to get doge? – To the moon!
|
||||
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 paid.
|
||||
* [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)
|
||||
|
||||
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.
|
||||
## Very Much Frequently Asked Questions ❓
|
||||
|
||||
The current block reward schedule:
|
||||
Do you have a question regarding Dogecoin? An answer is perhaps already in the
|
||||
[FAQ](doc/FAQ.md) or the
|
||||
[Q&A section](https://github.com/dogecoin/dogecoin/discussions/categories/q-a)
|
||||
of the discussion board!
|
||||
|
||||
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
|
||||
|
||||
The original block reward schedule, with one-minute block targets and four-hour difficulty readjustment:
|
||||
|
||||
1–99,999: 0–1,000,000 Dogecoin
|
||||
|
||||
100,000–199,999: 0–500,000 Dogecoin
|
||||
|
||||
200,000–299,999: 0–250,000 Dogecoin
|
||||
|
||||
300,000–399,999: 0–125,000 Dogecoin
|
||||
|
||||
400,000–499,999: 0–62,500 Dogecoin
|
||||
|
||||
500,000–599,999: 0–31,250 Dogecoin
|
||||
|
||||
600,000+: 10,000 Dogecoin
|
||||
|
||||
### 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-msw.md)
|
||||
|
||||
### Such ports
|
||||
RPC 22555
|
||||
P2P 22556
|
||||
|
||||
![](http://dogesay.com/wow//////such/coin)
|
||||
|
||||
## 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.
|
||||
## 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)
|
||||
|
|
125
README_zh_CN.md
Normal file
125
README_zh_CN.md
Normal file
|
@ -0,0 +1,125 @@
|
|||
# 狗狗币核心 (Dogecoin Core) [DOGE, Ð]
|
||||
|
||||
![Dogecoin](https://static.tumblr.com/ppdj5y9/Ae9mxmxtp/300coin.png)
|
||||
|
||||
[![Build Status](https://travis-ci.com/dogecoin/dogecoin.svg?branch=master)](https://travis-ci.com/dogecoin/dogecoin)
|
||||
|
||||
选择文档语言: [英文](../README.md) | 简体中文 | [其他语言...](./README_zh_CN.md)
|
||||
|
||||
尽管狗狗币不使用SHA256作为它的工作量证明(POW),狗狗币也是一款类似Bitcoin的加密货币。受到Tenebrix和Litecoin的影响,狗狗币目前采用一种更简洁的加密方式。
|
||||
- **网址:** [dogecoin.com.](https://dogecoin.com)
|
||||
|
||||
## 证书 – 炫酷的证书 ⚖️
|
||||
狗狗币在MIT liscence的条款下发行。详情请参见
|
||||
[COPYING](COPYING) 或者
|
||||
[opensource.org](https://opensource.org/licenses/MIT)。
|
||||
|
||||
## 开发和贡献 – omg 开发者
|
||||
目前的研发还在进行中,开发团队以及其他志愿者可以随意通过自己的代码库分支发布pull request。
|
||||
|
||||
#### 版本说明
|
||||
版本号码遵循以下语法:```major.minor.patch```。
|
||||
|
||||
#### 代码库分支(branch)
|
||||
本代码库有3个branch:
|
||||
|
||||
- **master(主代码库):** 稳定。包含最新版本的release,以*major.minor*形式呈现。
|
||||
- **maintenance(维护代码库):** 稳定。包含正在维护中的上一个release的最新版本。格式: ```<version>-maint```
|
||||
- **development(正在开发代码库):** 不稳定。包含下一个release的最新代码。格式: ```<version>-dev```
|
||||
|
||||
*Master 和 maintenance 互不干扰。最新release永远包含一个development分支。新的 pull request 应该发布于此。Maintenance 分支**只能用于调试程序**。请将新开发的功能发布在 development 分支的最高版本。*
|
||||
|
||||
#### 贡献 ✍️
|
||||
|
||||
鼓励开发者为新代码来创建自己的[单元测试](src/test/README.md),或者为旧代码发布新的单元测试。用如下指令编译并运行单元测试(仅限于单元测试在配置中没有被禁用):`make check`。更多关于运行和开发单元测试的信息请查看:[/src/test/README.md](/src/test/README.md).
|
||||
|
||||
RPC界面上还有由Python编写的[回归和整合测试(regression and integration tests)](/qa) ,可以在build服务器上自动运行。这些测试还可以通过以下指令来运行:`qa/pull-tester/rpc-tests.py`(前提是已经安装了[测试依赖文件(test dependencies)](/qa))。
|
||||
|
||||
代码的改变还应该由除开发者之外的其他人员进行测试。这一点对于大段改动和高危变化尤其重要。建议在pull request的描述中加入测试文档(test plan),如果测试方式并不很直接。
|
||||
|
||||
## 灰常常见的问题 ❓
|
||||
|
||||
### 到底一共可以有多少狗狗币? – 狗狗多多! 🐕
|
||||
截至2015年初(大概发行一年半的时间)会有100,000,000,000狗狗币。
|
||||
之后的每个区块(block)将会带来10,000狗狗币来激励矿工们持续输出,增加挖矿的安全性并且对因丢失的钱包、硬盘、手机、密码等而丢失的狗狗币做出相应弥补。
|
||||
|
||||
### 挖矿须知 ⛏
|
||||
|
||||
狗狗币采用一种简化版的密钥派生函数作为它的工作量证明。目标时间为每分钟产出一个区块,每产出一个区块后都会进行难度值调整。区块奖励是固定的,且每产出100,000个区块就会减半。从第600,000个区块开始,每产出一个区块的奖励会固定在10,000个狗狗币。
|
||||
|
||||
起初,我们设想了一种不同的支付方式,由Mersenne Twister伪随机数生成器在0到区块计划相应的最大区块奖励中生成一个随机数作为区块奖励。
|
||||
|
||||
然而在第145,000区块上,为了防止大矿池钻空子只挖高奖励的区块,这种方案就不适用了。与此同时,难度值调整也从每4小时变为每个区块产生(每分钟)更改一次,使用的是DigiByte Coin开发团队的一个算法,以减少狗狗币网络中哈希率突然增大或减少带来的影响。
|
||||
|
||||
**目前的区块奖励机制:**
|
||||
|
||||
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
|
||||
|
||||
**原先的区块奖励机制(一分钟区块和四小时难度调整):**
|
||||
|
||||
1–99,999: 0–1,000,000 Dogecoin
|
||||
|
||||
100,000–199,999: 0–500,000 Dogecoin
|
||||
|
||||
200,000–299,999: 0–250,000 Dogecoin
|
||||
|
||||
300,000–399,999: 0–125,000 Dogecoin
|
||||
|
||||
400,000–499,999: 0–62,500 Dogecoin
|
||||
|
||||
500,000–599,999: 0–31,250 Dogecoin
|
||||
|
||||
600,000+: 10,000 Dogecoin
|
||||
|
||||
### 请编译我吧 / Wow plz make dogecoind/dogecoin-cli/dogecoin-qt
|
||||
|
||||
以下是开发者的笔记,教你如何在你自己的平台上搭建狗狗币。这些不是什么权威指南,但包含了必要的libary, 编译flag 等等。
|
||||
|
||||
- [OSX Build Notes](doc/build-osx.md)
|
||||
- [Unix Build Notes](doc/build-unix.md)
|
||||
- [Windows Build Notes](doc/build-windows.md)
|
||||
|
||||
### 端口们
|
||||
|
||||
- RPC 22555
|
||||
- P2P 22556
|
||||
|
||||
## 开发贴士与技巧
|
||||
|
||||
**调试编译**
|
||||
|
||||
运行 `configure`, 应用 `--enable-debug` 选项, 然后 `make`. 或者运行 `configure` 应用
|
||||
`CXXFLAGS="-g -ggdb -O0"` 或者其他你需要的flag。
|
||||
|
||||
**debug.log**
|
||||
|
||||
如果代码表现得很诡异,看一眼data路径下的debug.log;错误信息和调试消息都在这里。
|
||||
|
||||
`-debug=...`这个选项代表调试模式;带着这个flag去运行会打开所有的类别(并输出一个非常大的debug.log文件)。
|
||||
|
||||
Qt代码把 `qDebug()` 放到qt类别下的debug.log文件里;使用方式`-debug=qt`。
|
||||
|
||||
**测试链(testnet)和私有网络(regtest)模式**
|
||||
|
||||
如果你在通过因特网测试跨机代码,在测试链上运行`-testnet`来运行“开始使用狗狗币”。
|
||||
|
||||
如果你在测试单机代码,用`-regtest`运行。
|
||||
在回归测试模式下,区块可以随时被按需制造出来;参见qa/rpc-tests/。
|
||||
|
||||
**DEBUG_LOCKORDER**
|
||||
|
||||
狗狗币核心是一个多线程应用,碰到死锁和其他多线程问题都会很难找到原因。如果在代码中发现了不一致的地方,使用-DDEBUG_LOCKORDER编译 (configure CXXFLAGS="-DDEBUG_LOCKORDER -g")会在运行时插入检查语句来检测哪些进程被锁定,并把警告加入debug.log文件中。
|
|
@ -1,11 +1,11 @@
|
|||
AC_DEFUN([BITCOIN_FIND_BDB51],[
|
||||
AC_DEFUN([BITCOIN_FIND_BDB53],[
|
||||
AC_MSG_CHECKING([for Berkeley DB C++ headers])
|
||||
BDB_CPPFLAGS=
|
||||
BDB_LIBS=
|
||||
bdbpath=X
|
||||
bdb51path=X
|
||||
bdb53path=X
|
||||
bdbdirlist=
|
||||
for _vn in 5.1 51 5 ''; do
|
||||
for _vn in 5.3 53 5 ''; do
|
||||
for _pfx in b lib ''; do
|
||||
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
|
||||
done
|
||||
|
@ -15,8 +15,8 @@ AC_DEFUN([BITCOIN_FIND_BDB51],[
|
|||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <${searchpath}db_cxx.h>
|
||||
]],[[
|
||||
#if !((DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR > 5)
|
||||
#error "failed to find bdb 5.1+"
|
||||
#if !((DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR >= 3) || DB_VERSION_MAJOR > 5)
|
||||
#error "failed to find bdb 5.3+"
|
||||
#endif
|
||||
]])],[
|
||||
if test "x$bdbpath" = "xX"; then
|
||||
|
@ -28,32 +28,32 @@ AC_DEFUN([BITCOIN_FIND_BDB51],[
|
|||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <${searchpath}db_cxx.h>
|
||||
]],[[
|
||||
#if !(DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR == 1)
|
||||
#error "failed to find bdb 5.1"
|
||||
#if !(DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR == 3)
|
||||
#error "failed to find bdb 5.3"
|
||||
#endif
|
||||
]])],[
|
||||
bdb51path="${searchpath}"
|
||||
bdb53path="${searchpath}"
|
||||
break
|
||||
],[])
|
||||
done
|
||||
if test "x$bdbpath" = "xX"; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([libdb_cxx headers missing, Dogecoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality)])
|
||||
elif test "x$bdb51path" = "xX"; then
|
||||
elif test "x$bdb53path" = "xX"; then
|
||||
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdbpath}],db_cxx)
|
||||
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 4.8])],[
|
||||
AC_MSG_WARN([Found Berkeley DB other than 5.1; wallets opened by this build will not be portable!])
|
||||
AC_MSG_WARN([Found Berkeley DB other than 5.3; wallets opened by this build will not be portable!])
|
||||
],[
|
||||
AC_MSG_ERROR([Found Berkeley DB other than 5.1, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)])
|
||||
AC_MSG_ERROR([Found Berkeley DB other than 5.3, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)])
|
||||
])
|
||||
else
|
||||
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb51path}],db_cxx)
|
||||
bdbpath="${bdb51path}"
|
||||
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb53path}],db_cxx)
|
||||
bdbpath="${bdb53path}"
|
||||
fi
|
||||
AC_SUBST(BDB_CPPFLAGS)
|
||||
|
||||
# TODO: Ideally this could find the library version and make sure it matches the headers being used
|
||||
for searchlib in db_cxx-5.1 db_cxx; do
|
||||
for searchlib in db_cxx-5.3 db_cxx; do
|
||||
AC_CHECK_LIB([$searchlib],[main],[
|
||||
BDB_LIBS="-l${searchlib}"
|
||||
break
|
27
configure.ac
27
configure.ac
|
@ -2,10 +2,10 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
|||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 1)
|
||||
define(_CLIENT_VERSION_MINOR, 14)
|
||||
define(_CLIENT_VERSION_REVISION, 0)
|
||||
define(_CLIENT_VERSION_REVISION, 5)
|
||||
define(_CLIENT_VERSION_BUILD, 0)
|
||||
define(_CLIENT_VERSION_IS_RELEASE, true)
|
||||
define(_COPYRIGHT_YEAR, 2019)
|
||||
define(_COPYRIGHT_YEAR, 2021)
|
||||
define(_COPYRIGHT_HOLDERS,[The %s developers])
|
||||
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core and Dogecoin Core]])
|
||||
AC_INIT([Dogecoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/dogecoin/dogecoin/issues],[dogecoin],[https://dogecoin.com/])
|
||||
|
@ -177,6 +177,12 @@ AC_ARG_ENABLE([zmq],
|
|||
[use_zmq=$enableval],
|
||||
[use_zmq=yes])
|
||||
|
||||
AC_ARG_WITH([intel-avx2],
|
||||
[AS_HELP_STRING([--with-intel-avx2],
|
||||
[Build with intel avx2 (default is no)])],
|
||||
[intel_avx2=$withval],
|
||||
[intel_avx2=no])
|
||||
|
||||
AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], [])
|
||||
|
||||
AC_ARG_ENABLE(man,
|
||||
|
@ -383,7 +389,7 @@ case $host in
|
|||
fi
|
||||
|
||||
AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
|
||||
CPPFLAGS="$CPPFLAGS -DMAC_OSX"
|
||||
CPPFLAGS="$CPPFLAGS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0"
|
||||
OBJCXXFLAGS="$CXXFLAGS"
|
||||
;;
|
||||
*linux*)
|
||||
|
@ -487,6 +493,8 @@ if test x$use_glibc_compat != xno; then
|
|||
[ fdelt_type="long int"])
|
||||
AC_MSG_RESULT($fdelt_type)
|
||||
AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
|
||||
AX_CHECK_LINK_FLAG([[-Wl,--wrap=__divmoddi4]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=__divmoddi4"])
|
||||
AX_CHECK_LINK_FLAG([[-Wl,--wrap=log2f]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=log2f"])
|
||||
else
|
||||
AC_SEARCH_LIBS([clock_gettime],[rt])
|
||||
fi
|
||||
|
@ -597,7 +605,7 @@ AC_SUBST(LIBMEMENV)
|
|||
|
||||
if test x$enable_wallet != xno; then
|
||||
dnl Check for libdb_cxx only if wallet enabled
|
||||
BITCOIN_FIND_BDB51
|
||||
BITCOIN_FIND_BDB53
|
||||
fi
|
||||
|
||||
dnl Check for libminiupnpc (optional)
|
||||
|
@ -785,6 +793,16 @@ fi
|
|||
|
||||
fi
|
||||
|
||||
if test x$intel_avx2 = xyes; then
|
||||
case $host in
|
||||
x86_64-*-linux*)
|
||||
AC_CHECK_LIB([IPSec_MB],[sha1_one_block_avx2],LIBS=-lIPSec_MB, AC_MSG_ERROR(IPSec_MB missing))
|
||||
AC_CHECK_LIB([IPSec_MB],[sha256_one_block_avx2],LIBS=-lIPSec_MB, AC_MSG_ERROR(IPSec_MB missing))
|
||||
AC_CHECK_LIB([IPSec_MB],[sha512_one_block_avx2],LIBS=-lIPSec_MB, AC_MSG_ERROR(IPSec_MB missing))
|
||||
AC_DEFINE(USE_AVX2, 1, [Define this symbol if intel axv2 works])
|
||||
esac
|
||||
fi
|
||||
|
||||
if test x$use_pkgconfig = xyes; then
|
||||
: dnl
|
||||
m4_ifdef(
|
||||
|
@ -1090,6 +1108,7 @@ AC_SUBST(BITCOIN_CLI_NAME)
|
|||
AC_SUBST(BITCOIN_TX_NAME)
|
||||
|
||||
AC_SUBST(RELDFLAGS)
|
||||
AC_SUBST(COMPAT_LDFLAGS)
|
||||
AC_SUBST(ERROR_CXXFLAGS)
|
||||
AC_SUBST(HARDENED_CXXFLAGS)
|
||||
AC_SUBST(HARDENED_CPPFLAGS)
|
||||
|
|
|
@ -13,7 +13,7 @@ Construct a linear, no-fork, best version of the blockchain.
|
|||
|
||||
### [Qos](/contrib/qos) ###
|
||||
|
||||
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it.
|
||||
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Dogecoin network. This means one can have an always-on dogecoind instance running, and another local dogecoind/dogecoin-qt instance which connects to this node and receives blocks from it.
|
||||
|
||||
### [Seeds](/contrib/seeds) ###
|
||||
Utility to generate the pnSeed[] array that is compiled into the client.
|
||||
|
@ -22,29 +22,32 @@ Build Tools and Keys
|
|||
---------------------
|
||||
|
||||
### [Debian](/contrib/debian) ###
|
||||
Contains files used to package bitcoind/bitcoin-qt
|
||||
for Debian-based Linux systems. If you compile bitcoind/bitcoin-qt yourself, there are some useful files here.
|
||||
Contains files used to package dogecoind/dogecoin-qt
|
||||
for Debian-based Linux systems. If you compile dogecoind/dogecoin-qt yourself, there are some useful files here.
|
||||
|
||||
### [Gitian-descriptors](/contrib/gitian-descriptors) ###
|
||||
Notes on getting Gitian builds up and running using KVM.
|
||||
|
||||
### [Gitian-keys](/contrib/gitian-keys)
|
||||
PGP keys used for signing Bitcoin Core [Gitian release](/doc/release-process.md) results.
|
||||
PGP keys used for signing Dogecoin Core [Gitian release](/doc/release-process.md) results.
|
||||
|
||||
### [MacDeploy](/contrib/macdeploy) ###
|
||||
Scripts and notes for Mac builds.
|
||||
Scripts and notes for Mac builds.
|
||||
|
||||
### [RPM](/contrib/rpm) ###
|
||||
RPM spec file for building bitcoin-core on RPM based distributions
|
||||
RPM spec file for building dogecoin-core on RPM based distributions
|
||||
|
||||
### [Gitian-build](/contrib/gitian-build.sh) ###
|
||||
Script for running full Gitian builds.
|
||||
|
||||
Test and Verify Tools
|
||||
### [Snap](/contrib/snap) ###
|
||||
snapcraft.yaml file for building and distributing dogecoin-core with Snapcraft.
|
||||
|
||||
Test and Verify Tools
|
||||
---------------------
|
||||
|
||||
### [TestGen](/contrib/testgen) ###
|
||||
Utilities to generate test vectors for the data-driven Bitcoin tests.
|
||||
Utilities to generate test vectors for the data-driven Dogecoin tests.
|
||||
|
||||
### [Verify Binaries](/contrib/verifybinaries) ###
|
||||
This script attempts to download and verify the signature file SHA256SUMS.asc from bitcoin.org.
|
||||
This script attempts to download and verify the signature file SHA256SUMS.asc from dogecoin.com.
|
||||
|
|
|
@ -5,6 +5,7 @@ FORMS += \
|
|||
../src/qt/forms/coincontroldialog.ui \
|
||||
../src/qt/forms/editaddressdialog.ui \
|
||||
../src/qt/forms/helpmessagedialog.ui \
|
||||
../src/qt/forms/importkeysdialog.ui \
|
||||
../src/qt/forms/intro.ui \
|
||||
../src/qt/forms/openuridialog.ui \
|
||||
../src/qt/forms/optionsdialog.ui \
|
||||
|
|
|
@ -15,7 +15,7 @@ To install:
|
|||
|
||||
If you build yourself, you will either need to modify the paths in
|
||||
the .desktop file or copy or symlink your dogecoin-qt binary to `/usr/bin`
|
||||
and the `../../share/pixmaps/bitcoin128.png` to `/usr/share/pixmaps`
|
||||
and the `../../share/pixmaps/dogecoin128.png` to `/usr/share/pixmaps`
|
||||
|
||||
dogecoin-qt.protocol (KDE)
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Dogecoin Core
|
||||
Comment=Connect to the Dogecoin P2P Network
|
||||
Comment[de]=Verbinde mit dem Dogecoin peer-to-peer Netzwerk
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
usr/local/bin/dogecoin-qt usr/bin
|
||||
share/pixmaps/bitcoin32.xpm usr/share/pixmaps
|
||||
share/pixmaps/bitcoin16.xpm usr/share/pixmaps
|
||||
share/pixmaps/bitcoin128.png usr/share/pixmaps
|
||||
share/pixmaps/dogecoin32.xpm usr/share/pixmaps
|
||||
share/pixmaps/dogecoin16.xpm usr/share/pixmaps
|
||||
share/pixmaps/dogecoin128.png usr/share/pixmaps
|
||||
debian/dogecoin-qt.desktop usr/share/applications
|
||||
debian/dogecoin-qt.protocol usr/share/kde4/services/
|
||||
debian/dogecoin-qt.protocol usr/share/kde4/services/
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
#!/usr/bin/make -f
|
||||
# -*- mode: makefile; coding: utf-8 -*-
|
||||
|
||||
|
|
47
contrib/devtools/commit-script-check.sh
Executable file
47
contrib/devtools/commit-script-check.sh
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh
|
||||
# Copyright (c) 2017-2020 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
# This simple script checks for commits beginning with: scripted-diff:
|
||||
# If found, looks for a script between the lines -BEGIN VERIFY SCRIPT- and
|
||||
# -END VERIFY SCRIPT-. If no ending is found, it reads until the end of the
|
||||
# commit message.
|
||||
|
||||
# The resulting script should exactly transform the previous commit into the current
|
||||
# one. Any remaining diff signals an error.
|
||||
|
||||
export LC_ALL=C
|
||||
if test -z $1; then
|
||||
echo "Usage: $0 <commit>..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RET=0
|
||||
PREV_BRANCH=$(git name-rev --name-only HEAD)
|
||||
PREV_HEAD=$(git rev-parse HEAD)
|
||||
for commit in $(git rev-list --reverse $1); do
|
||||
if git rev-list -n 1 --pretty="%s" $commit | grep -q "^scripted-diff:"; then
|
||||
git checkout --quiet $commit^ || exit
|
||||
SCRIPT="$(git rev-list --format=%b -n1 $commit | sed '/^-BEGIN VERIFY SCRIPT-$/,/^-END VERIFY SCRIPT-$/{//!b};d')"
|
||||
if test -z "$SCRIPT"; then
|
||||
echo "Error: missing script for: $commit"
|
||||
echo "Failed"
|
||||
RET=1
|
||||
else
|
||||
echo "Running script for: $commit"
|
||||
echo "$SCRIPT"
|
||||
(eval "$SCRIPT")
|
||||
git --no-pager diff --exit-code $commit && echo "OK" || (echo "Failed"; false) || RET=1
|
||||
fi
|
||||
git reset --quiet --hard HEAD
|
||||
else
|
||||
if git rev-list "--format=%b" -n1 $commit | grep -q '^-\(BEGIN\|END\)[ a-zA-Z]*-$'; then
|
||||
echo "Error: script block marker but no scripted-diff in title of commit $commit"
|
||||
echo "Failed"
|
||||
RET=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
git checkout --quiet $PREV_BRANCH 2>/dev/null || git checkout --quiet $PREV_HEAD
|
||||
exit $RET
|
|
@ -40,14 +40,16 @@ MAX_VERSIONS = {
|
|||
'GCC': (4,4,0),
|
||||
'CXXABI': (1,3,3),
|
||||
'GLIBCXX': (3,4,13),
|
||||
'GLIBC': (2,11)
|
||||
'GLIBC': (2,11),
|
||||
'V': (0,5,0) # xkb (qt only)
|
||||
}
|
||||
# See here for a description of _IO_stdin_used:
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261#109
|
||||
|
||||
# Ignore symbols that are exported as part of every executable
|
||||
IGNORE_EXPORTS = {
|
||||
b'_edata', b'_end', b'_init', b'__bss_start', b'_fini', b'_IO_stdin_used'
|
||||
b'_edata', b'_end', b'_init', b'__bss_start', b'_fini', b'_IO_stdin_used',
|
||||
b'stdin', b'stdout', b'stderr'
|
||||
}
|
||||
READELF_CMD = os.getenv('READELF', '/usr/bin/readelf')
|
||||
CPPFILT_CMD = os.getenv('CPPFILT', '/usr/bin/c++filt')
|
||||
|
@ -66,6 +68,8 @@ b'ld-linux.so.2', # 32-bit dynamic linker
|
|||
b'libX11-xcb.so.1', # part of X11
|
||||
b'libX11.so.6', # part of X11
|
||||
b'libxcb.so.1', # part of X11
|
||||
b'libxkbcommon.so.0', # keyboard keymapping
|
||||
b'libxkbcommon-x11.so.0', # keyboard keymapping
|
||||
b'libfontconfig.so.1', # font support
|
||||
b'libfreetype.so.6', # font parsing
|
||||
b'libdl.so.2' # programming interface to dynamic linker
|
||||
|
@ -160,5 +164,3 @@ if __name__ == '__main__':
|
|||
retval = 1
|
||||
|
||||
exit(retval)
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
# Copyright (c) 2016 The Bitcoin Core developers
|
||||
# Copyright (c) 2021 The Dogecoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -17,11 +18,11 @@ osx=true
|
|||
SIGNER=
|
||||
VERSION=
|
||||
commit=false
|
||||
url=https://github.com/bitcoin/bitcoin
|
||||
url=https://github.com/dogecoin/dogecoin
|
||||
proc=2
|
||||
mem=2000
|
||||
lxc=true
|
||||
osslTarUrl=http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
|
||||
osslTarUrl=https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/osslsigncode/1.7.1-1/osslsigncode_1.7.1.orig.tar.gz
|
||||
osslPatchUrl=https://bitcoincore.org/cfields/osslsigncode-Backports-to-1.7.1.patch
|
||||
scriptName=$(basename -- "$0")
|
||||
signProg="gpg --detach-sign"
|
||||
|
@ -31,7 +32,7 @@ commitFiles=true
|
|||
read -d '' usage <<- EOF
|
||||
Usage: $scriptName [-c|u|v|b|s|B|o|h|j|m|] signer version
|
||||
|
||||
Run this script from the directory containing the bitcoin, gitian-builder, gitian.sigs, and bitcoin-detached-sigs.
|
||||
Run this script from the directory containing the dogecoin, gitian-builder, gitian.sigs, and dogecoin-detached-sigs.
|
||||
|
||||
Arguments:
|
||||
signer GPG signer to sign each build assert file
|
||||
|
@ -39,7 +40,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/bitcoin/bitcoin
|
||||
-u|--url Specify the URL of the repository. Default is https://github.com/dogecoin/dogecoin
|
||||
-v|--verify Verify the gitian build
|
||||
-b|--build Do a gitian build
|
||||
-s|--sign Make signed binaries for Windows and Mac OSX
|
||||
|
@ -179,8 +180,7 @@ done
|
|||
if [[ $lxc = true ]]
|
||||
then
|
||||
export USE_LXC=1
|
||||
export LXC_BRIDGE=lxcbr0
|
||||
sudo ifconfig lxcbr0 up 10.0.2.2
|
||||
export LXC_BRIDGE=br0
|
||||
fi
|
||||
|
||||
# Check for OSX SDK
|
||||
|
@ -232,8 +232,22 @@ 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/bitcoin-core/gitian.sigs.git
|
||||
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
|
||||
# GIT --date=format-local support
|
||||
MIN_GIT_VERSION=2.7.0
|
||||
LASTEST_GIT_VERSION=2.32.0
|
||||
if ! (echo a version ${MIN_GIT_VERSION}; git --version) | sort -Vk3 | tail -1 | grep -q git; then
|
||||
sudo apt-get install build-essential make libssl-dev libghc-zlib-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip
|
||||
wget https://github.com/git/git/archive/v${LASTEST_GIT_VERSION}.zip -O v${LASTEST_GIT_VERSION}.zip
|
||||
unzip v${LASTEST_GIT_VERSION}.zip
|
||||
pushd ./git-${LASTEST_GIT_VERSION}
|
||||
make -j "${proc}" prefix=/usr/local all
|
||||
make -j "${proc}" prefix=/usr/local install
|
||||
popd
|
||||
fi
|
||||
|
||||
# GIT CLONE
|
||||
git clone https://github.com/dogecoin/gitian.sigs.git
|
||||
git clone https://github.com/dogecoin/dogecoin-detached-sigs.git
|
||||
git clone https://github.com/devrandom/gitian-builder.git
|
||||
pushd ./gitian-builder
|
||||
if [[ -n "$USE_LXC" ]]
|
||||
|
@ -247,7 +261,7 @@ then
|
|||
fi
|
||||
|
||||
# Set up build
|
||||
pushd ./bitcoin
|
||||
pushd ./dogecoin
|
||||
git fetch
|
||||
git checkout ${COMMIT}
|
||||
popd
|
||||
|
@ -256,7 +270,7 @@ popd
|
|||
if [[ $build = true ]]
|
||||
then
|
||||
# Make output folder
|
||||
mkdir -p ./bitcoin-binaries/${VERSION}
|
||||
mkdir -p ./dogecoin-binaries/${VERSION}
|
||||
|
||||
# Build Dependencies
|
||||
echo ""
|
||||
|
@ -266,7 +280,7 @@ then
|
|||
mkdir -p inputs
|
||||
wget -N -P inputs $osslPatchUrl
|
||||
wget -N -P inputs $osslTarUrl
|
||||
make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common
|
||||
make -j "${proc}" -C ../dogecoin/depends download SOURCES_PATH=`pwd`/cache/common
|
||||
|
||||
# Linux
|
||||
if [[ $linux = true ]]
|
||||
|
@ -274,9 +288,9 @@ then
|
|||
echo ""
|
||||
echo "Compiling ${VERSION} Linux"
|
||||
echo ""
|
||||
./bin/gbuild -j ${proc} -m ${mem} --commit bitcoin=${COMMIT} --url bitcoin=${url} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../bitcoin-binaries/${VERSION}
|
||||
./bin/gbuild -j ${proc} -m ${mem} --commit dogecoin=${COMMIT} --url dogecoin=${url} ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
mv build/out/dogecoin-*.tar.gz build/out/src/dogecoin-*.tar.gz ../dogecoin-binaries/${VERSION}
|
||||
fi
|
||||
# Windows
|
||||
if [[ $windows = true ]]
|
||||
|
@ -284,10 +298,10 @@ then
|
|||
echo ""
|
||||
echo "Compiling ${VERSION} Windows"
|
||||
echo ""
|
||||
./bin/gbuild -j ${proc} -m ${mem} --commit bitcoin=${COMMIT} --url bitcoin=${url} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
mv build/out/bitcoin-*-win-unsigned.tar.gz inputs/bitcoin-win-unsigned.tar.gz
|
||||
mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../bitcoin-binaries/${VERSION}
|
||||
./bin/gbuild -j ${proc} -m ${mem} --commit dogecoin=${COMMIT} --url dogecoin=${url} ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
mv build/out/dogecoin-*-win-unsigned.tar.gz inputs/dogecoin-win-unsigned.tar.gz
|
||||
mv build/out/dogecoin-*.zip build/out/dogecoin-*.exe ../dogecoin-binaries/${VERSION}
|
||||
fi
|
||||
# Mac OSX
|
||||
if [[ $osx = true ]]
|
||||
|
@ -295,10 +309,10 @@ then
|
|||
echo ""
|
||||
echo "Compiling ${VERSION} Mac OSX"
|
||||
echo ""
|
||||
./bin/gbuild -j ${proc} -m ${mem} --commit bitcoin=${COMMIT} --url bitcoin=${url} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
mv build/out/bitcoin-*-osx-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
|
||||
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../bitcoin-binaries/${VERSION}
|
||||
./bin/gbuild -j ${proc} -m ${mem} --commit dogecoin=${COMMIT} --url dogecoin=${url} ../dogecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
mv build/out/dogecoin-*-osx-unsigned.tar.gz inputs/dogecoin-osx-unsigned.tar.gz
|
||||
mv build/out/dogecoin-*.tar.gz build/out/dogecoin-*.dmg ../dogecoin-binaries/${VERSION}
|
||||
fi
|
||||
popd
|
||||
|
||||
|
@ -325,27 +339,27 @@ then
|
|||
echo ""
|
||||
echo "Verifying v${VERSION} Linux"
|
||||
echo ""
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||
# Windows
|
||||
echo ""
|
||||
echo "Verifying v${VERSION} Windows"
|
||||
echo ""
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||
# Mac OSX
|
||||
echo ""
|
||||
echo "Verifying v${VERSION} Mac OSX"
|
||||
echo ""
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../dogecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||
# Signed Windows
|
||||
echo ""
|
||||
echo "Verifying v${VERSION} Signed Windows"
|
||||
echo ""
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
# Signed Mac OSX
|
||||
echo ""
|
||||
echo "Verifying v${VERSION} Signed Mac OSX"
|
||||
echo ""
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
popd
|
||||
fi
|
||||
|
||||
|
@ -360,10 +374,10 @@ then
|
|||
echo ""
|
||||
echo "Signing ${VERSION} Windows"
|
||||
echo ""
|
||||
./bin/gbuild -i --commit signature=${COMMIT} ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
mv build/out/bitcoin-*win64-setup.exe ../bitcoin-binaries/${VERSION}
|
||||
mv build/out/bitcoin-*win32-setup.exe ../bitcoin-binaries/${VERSION}
|
||||
./bin/gbuild -i --commit signature=${COMMIT} ../dogecoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||
mv build/out/dogecoin-*win64-setup.exe ../dogecoin-binaries/${VERSION}
|
||||
mv build/out/dogecoin-*win32-setup.exe ../dogecoin-binaries/${VERSION}
|
||||
fi
|
||||
# Sign Mac OSX
|
||||
if [[ $osx = true ]]
|
||||
|
@ -371,9 +385,9 @@ then
|
|||
echo ""
|
||||
echo "Signing ${VERSION} Mac OSX"
|
||||
echo ""
|
||||
./bin/gbuild -i --commit signature=${COMMIT} ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
mv build/out/bitcoin-osx-signed.dmg ../bitcoin-binaries/${VERSION}/bitcoin-${VERSION}-osx.dmg
|
||||
./bin/gbuild -i --commit signature=${COMMIT} ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
||||
mv build/out/dogecoin-osx-signed.dmg ../dogecoin-binaries/${VERSION}/dogecoin-${VERSION}-osx.dmg
|
||||
fi
|
||||
popd
|
||||
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
name: "dogecoin-linux-1.14"
|
||||
enable_cache: true
|
||||
suites:
|
||||
- "trusty"
|
||||
- "bionic"
|
||||
architectures:
|
||||
- "amd64"
|
||||
packages:
|
||||
- "curl"
|
||||
- "g++-aarch64-linux-gnu"
|
||||
- "g++-4.8-aarch64-linux-gnu"
|
||||
- "gcc-4.8-aarch64-linux-gnu"
|
||||
- "g++-7-aarch64-linux-gnu"
|
||||
- "gcc-7-aarch64-linux-gnu"
|
||||
- "binutils-aarch64-linux-gnu"
|
||||
- "g++-arm-linux-gnueabihf"
|
||||
- "g++-4.8-arm-linux-gnueabihf"
|
||||
- "gcc-4.8-arm-linux-gnueabihf"
|
||||
- "g++-7-arm-linux-gnueabihf"
|
||||
- "gcc-7-arm-linux-gnueabihf"
|
||||
- "binutils-arm-linux-gnueabihf"
|
||||
- "g++-4.8-multilib"
|
||||
- "gcc-4.8-multilib"
|
||||
- "g++-7-multilib"
|
||||
- "gcc-7-multilib"
|
||||
- "binutils-gold"
|
||||
- "git-core"
|
||||
- "pkg-config"
|
||||
|
@ -24,6 +24,7 @@ packages:
|
|||
- "libtool"
|
||||
- "automake"
|
||||
- "faketime"
|
||||
- "bison"
|
||||
- "bsdmainutils"
|
||||
- "ca-certificates"
|
||||
- "python"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: "dogecoin-dmg-signer"
|
||||
suites:
|
||||
- "trusty"
|
||||
- "bionic"
|
||||
architectures:
|
||||
- "amd64"
|
||||
packages:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
name: "dogecoin-osx-1.14"
|
||||
enable_cache: true
|
||||
suites:
|
||||
- "trusty"
|
||||
- "bionic"
|
||||
architectures:
|
||||
- "amd64"
|
||||
packages:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: "dogecoin-win-signer"
|
||||
suites:
|
||||
- "trusty"
|
||||
- "bionic"
|
||||
architectures:
|
||||
- "amd64"
|
||||
packages:
|
||||
|
@ -11,7 +11,7 @@ remotes:
|
|||
- "url": "https://github.com/dogecoin/dogecoin-detached-sigs.git"
|
||||
"dir": "signature"
|
||||
files:
|
||||
- "osslsigncode-1.7.1.tar.gz"
|
||||
- "osslsigncode_1.7.1.orig.tar.gz"
|
||||
- "osslsigncode-Backports-to-1.7.1.patch"
|
||||
- "dogecoin-win-unsigned.tar.gz"
|
||||
script: |
|
||||
|
@ -19,13 +19,13 @@ script: |
|
|||
SIGDIR=${BUILD_DIR}/signature/win
|
||||
UNSIGNED_DIR=${BUILD_DIR}/unsigned
|
||||
|
||||
echo "f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9 osslsigncode-1.7.1.tar.gz" | sha256sum -c
|
||||
echo "f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9 osslsigncode_1.7.1.orig.tar.gz" | sha256sum -c
|
||||
echo "a8c4e9cafba922f89de0df1f2152e7be286aba73f78505169bc351a7938dd911 osslsigncode-Backports-to-1.7.1.patch" | sha256sum -c
|
||||
|
||||
mkdir -p ${UNSIGNED_DIR}
|
||||
tar -C ${UNSIGNED_DIR} -xf dogecoin-win-unsigned.tar.gz
|
||||
|
||||
tar xf osslsigncode-1.7.1.tar.gz
|
||||
tar xf osslsigncode_1.7.1.orig.tar.gz
|
||||
cd osslsigncode-1.7.1
|
||||
patch -p1 < ${BUILD_DIR}/osslsigncode-Backports-to-1.7.1.patch
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
name: "dogecoin-win-1.14"
|
||||
enable_cache: true
|
||||
suites:
|
||||
- "trusty"
|
||||
- "bionic"
|
||||
architectures:
|
||||
- "amd64"
|
||||
packages:
|
||||
|
@ -21,6 +21,7 @@ packages:
|
|||
- "zip"
|
||||
- "ca-certificates"
|
||||
- "python"
|
||||
- "rename"
|
||||
remotes:
|
||||
- "url": "https://github.com/dogecoin/dogecoin.git"
|
||||
"dir": "dogecoin"
|
||||
|
@ -29,7 +30,7 @@ script: |
|
|||
WRAP_DIR=$HOME/wrapped
|
||||
HOSTS="i686-w64-mingw32 x86_64-w64-mingw32"
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests"
|
||||
FAKETIME_HOST_PROGS="g++ ar ranlib nm windres strip objcopy"
|
||||
FAKETIME_HOST_PROGS="ar ranlib nm windres strip objcopy"
|
||||
FAKETIME_PROGS="date makensis zip"
|
||||
HOST_CFLAGS="-O2 -g"
|
||||
HOST_CXXFLAGS="-O2 -g"
|
||||
|
@ -70,21 +71,13 @@ script: |
|
|||
done
|
||||
}
|
||||
|
||||
function create_per-host_linker_wrapper {
|
||||
# This is only needed for trusty, as the mingw linker leaks a few bytes of
|
||||
# heap, causing non-determinism. See discussion in https://github.com/bitcoin/bitcoin/pull/6900
|
||||
function create_per-host_compiler_wrapper {
|
||||
# -posix variant is required for c++11 threading.
|
||||
for i in $HOSTS; do
|
||||
mkdir -p ${WRAP_DIR}/${i}
|
||||
for prog in collect2; do
|
||||
echo '#!/bin/bash' > ${WRAP_DIR}/${i}/${prog}
|
||||
REAL=$(${i}-gcc -print-prog-name=${prog})
|
||||
echo "export MALLOC_PERTURB_=255" >> ${WRAP_DIR}/${i}/${prog}
|
||||
echo "${REAL} \$@" >> $WRAP_DIR/${i}/${prog}
|
||||
chmod +x ${WRAP_DIR}/${i}/${prog}
|
||||
done
|
||||
for prog in gcc g++; do
|
||||
echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog}
|
||||
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
|
||||
echo "REAL=\`which -a ${i}-${prog}-posix | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
|
||||
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
|
||||
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
|
||||
echo "export COMPILER_PATH=${WRAP_DIR}/${i}" >> ${WRAP_DIR}/${i}-${prog}
|
||||
|
@ -98,7 +91,7 @@ script: |
|
|||
export PATH_orig=${PATH}
|
||||
create_global_faketime_wrappers "2000-01-01 12:00:00"
|
||||
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
|
||||
create_per-host_linker_wrapper "2000-01-01 12:00:00"
|
||||
create_per-host_compiler_wrapper "2000-01-01 12:00:00"
|
||||
export PATH=${WRAP_DIR}:${PATH}
|
||||
|
||||
cd dogecoin
|
||||
|
@ -112,7 +105,7 @@ script: |
|
|||
export PATH=${PATH_orig}
|
||||
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
|
||||
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
|
||||
create_per-host_linker_wrapper "${REFERENCE_DATETIME}"
|
||||
create_per-host_compiler_wrapper "${REFERENCE_DATETIME}"
|
||||
export PATH=${WRAP_DIR}:${PATH}
|
||||
|
||||
# Create the release tarball using (arbitrarily) the first host
|
||||
|
|
53
contrib/gitian-keys/michilumin-key.pgp
Normal file
53
contrib/gitian-keys/michilumin-key.pgp
Normal file
|
@ -0,0 +1,53 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: Keybase OpenPGP JS 0.0.1
|
||||
Comment: https://keybase.io/crypto
|
||||
|
||||
xsFNBFMO4sgBEAChyAICcaqIBhR0uych9PUiruFtARUZgmmgeB66DHESLjm/Lbb1
|
||||
vjUT1GF00jd5Sb8ue4H/GL8q+Ngn9fiR5NtxfKY4+/5+RGbyl7y3SxvKSt09oilu
|
||||
L4VyeB95OnoFNfLDzRMNfMEYbCWkJM9B+d1koE2R8Ehly45DuBn4OvnNWKu70Hyk
|
||||
TozhCkpA9KiBXxOGyUiu3bhFQtchBaf9vaVUoxkv70iqZImtJlhqWJI52RauSck+
|
||||
9mKURe7uH9JfdL6V2VcY2Mkz2xFPIXB1LkRhNZoUDtyYmwfUFYiz4qh/WoAogFw8
|
||||
woEHySEpRxKw3ibMlRU7JYW+JHZf5mKzKpZT7ge6Tlv1fqAlLC0MaWCzSNev0nZ7
|
||||
IOSELSJBZEpF9sknWSbL7RKwqMPRWby7LBSd1VsPzfJZevIraMHWWVPq78iU38k1
|
||||
3wLwMaJrLvNkMz+5AZT7JPtvzzY5EPNTGdN9gI1G6Tb12BxkaYBpO/zLUCSRoNRi
|
||||
bP63FvYHd2yIIMqXDVPwg4ckA6t2KIuzjif8wc0yOEK1t/dTjgEdxP0o73RFsqxN
|
||||
lNaHFkwd+aOdLbBkHQN/e6D5ZqQT/Hy7U+cY8lor4RKrec+mnnBNOTdGTu7cCFyh
|
||||
7cuOVKJlfKgXXQExBA1gxFTJvUiCyvfEfbWht7xCZvlY6mxl53n2ZMZ8SwARAQAB
|
||||
zSxrZXliYXNlLmlvL21pY2hpICh2MC4wLjEpIDxtaWNoaUBrZXliYXNlLmlvPsLB
|
||||
cwQQAQoAHQUCUw7iyAIbLwUJEswDAAMLCQcDFQoIAh4BAheAAAoJEFILU64p6Yhh
|
||||
0sQP/17gVfuKU7Axwm5TxCcK4PLseqY3uqnc1ueERV7fCI56xIcqLgxUx8TD2jkQ
|
||||
TL3s9a8l0y7TI8SbTjfYDsnV2oMeJ3qzZogMMIRf5zorwQmsfvJS2vggMYldCZ6T
|
||||
Op05oVti6w3cIhU9P9Xaxsh/0Qf9SxB28HZnNOorMq8BlS/R3dI8evZ32jK4KxHt
|
||||
JNyNNFGEPXrYOEuL/rxyYd81ODHsAO+xMGZV7H1D9ttfrQEA0sdpiE6KrxAH9ls8
|
||||
KjP9TcJe8dggjmt5EAhsSDtExftu8xUUEVC7Q03GkfHg+LfHSAqK79FI39++coSf
|
||||
QcKAgjReE5uYmqeMCrbcr4VXAAuo+3hMlH5JHIwfnv19KuVZz6xkUcD/BrrCU3Vn
|
||||
IegO4yH1wdhqwnBzsqsmm2Ue1RaG9iXRxILyOPi3hIGXi4LlvZzxL0vGWMPKytlN
|
||||
3AlZhrAY6SvtXbPFuU96xvnohvRVnnNPAYggBPCXv10QCL234DJvXtBEel6izEDl
|
||||
gUtYASrwkyLp3m0DySoBavctntKFucv7x9jalsDOvRwCW7N7c0LfAd8RxiUdfmko
|
||||
b5kw4jwdec6uHsvBVAb+xmx3KmSBfgDkoizCZvLaXBrxK9Kr1vkxPBI9fInqGCKa
|
||||
0PCE3BrcBVaWSMTnIP5hDZfF2OmYpUxAJhOvhEH6E8VvnrswzsBNBFMO4sgBCACa
|
||||
DB0nw4byoiMwUs9BkmV90n0hCWG20xlX0NKZFhIVewRVhVPeUWRSB4jhVJ78q4M6
|
||||
lVidEBHwKpqDS2XcxRu3lUIWH2kQurVVfYakEtH+WO9IvB9y+5lMDswETkDSChH9
|
||||
iFRuVwxDbo9knQBbmvzDMH1VtVy5YuJUlElxPgPb9a05/5EDs+T14gCEbiA7cGfD
|
||||
ZRb5/siE6kNopJeMDaa8t+g7R5SlucQasYIchq6lIA03x66P7KcpI8z0WiH/4bqk
|
||||
Qg+7uDcd0Hy681QES3XE0mlzcbpDLDDSP8EnXldq0aJRz7eI2WvBASehZebfFuru
|
||||
3BICsCMkVuDnTIWhCKLJABEBAAHCwoQEGAEKAA8FAlMO4sgFCQHhM4ACGy4BKQkQ
|
||||
UgtTrinpiGHAXSAEGQEKAAYFAlMO4sgACgkQ3A8+xoA/tFySegf/XwFCj8vsrliO
|
||||
cNDEHwM/LBteipctcHg0imMuXSjnhwW2Wq8E+W8NfEKftxg+1o24GppYUoEDWSYM
|
||||
jvy+G5woEYRGLDzI0s92Cx408yJbwQaNE4cp5przvfJ5IjV6f5NxizZ71byRRtd8
|
||||
8MGFIUCtegX4nBwVhGhDj9Y27R4XxAzZR178yTGBSZ59rICAzHkT5Jaohr7K0XB2
|
||||
iUyR6/cAxxEtu/+cbAQgQ+qYxW4/amOcuV63t6tB3nejAbP1PQDJdgzxGfCO7PX9
|
||||
imsODNouDjfRfJoodS5aCp2DO4EYpGEtGYap0K1SIXSzIUs8vOyrxdK56BHPxDDQ
|
||||
OXanAkmFq+UkD/4splgdyKgRqpQiZSdWJH7KBlaZQ3hQPHLqmo8uevvK7tVNvaqR
|
||||
3c53QrWyFaWOIkRRufjkA31QQVANLI2vum606PquLzxtrqqddXKv1APlFs+Vryio
|
||||
RXOUutgI4p0xizo/wx0M6hRKM72Fqp24Vb3HB04QzdDsB6AReOQbb0/avWU6wyTJ
|
||||
IqDagzPZWdgPM2FnJjKwE0DMjbiUjYExKofuNlyCO4/16Q92HKRgNGy9hkYi1B6D
|
||||
wf2LznY11T9O+PjIWwlx6RyMpY/NYDKP010Wp62o0/S48yVu7LE/0riyX0JT7hGt
|
||||
fWK1+0HO6jlNZ8T3PgPQcJ24fyJTRc8jXoi8AUUyKm/IFIBsZndxUt34tA4IDh+r
|
||||
e9sGOj3yU+OaKMdhy3qLz2qEdPO8fQB7XrmZLYvU9eLypK0for09ZNsmR8V6SIGy
|
||||
49z+4K4bxS9+o5t0w8MWZ/d6UB/WO8+XzwGrMA4gWbc6DRo302oJA8YISN9fH123
|
||||
Wr6XsokZYmdnr4FM+u3Bembn5E8vj2Va8hnqj6+Q+W8tA0t+r+FxMBRK3sQ7g7RN
|
||||
2/6rBOkjI3bu3GJiytITP/QISicquVSJk/9GRDVJpAYbqiLuVWTi5cWTv7hbU6nJ
|
||||
d19adzzCJGwf9fIpFhu5IoUdwcYaEnZHGvfOGRBYBToI3w+y50H3S1asCg==
|
||||
=xHA/
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -1,38 +1,31 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
mQENBFObDPcBCADjZ5or5/p72Scw8n2znFaZT5W9vz9IcCT13fZGlN3QpNnHu772
|
||||
obv6OrDpiLA7ltshD0RjebSYGlSWYG0UXiN13KM/BPiFdZx/lkS6NPEm78t9NQ36
|
||||
IuqVXL8A4K+A2ihB92mfS+oaim8HmO/GmJm6dDgQlwadNBaPnLezBHNf5msoym0a
|
||||
1x8hfY+3Fi7Kwz4hf8njO7cUze/av/7fGFzMCUc5aQpD2SNGNDt20EBjW8z3MCeL
|
||||
6rCn2NYmDHrHgY3yBHQBkOWmZli6NEENCmbyr9Ab20GTeom4yq7enJ7lN/vmM3Cm
|
||||
e060xH6/R2iEXrapQ8s90OtsoocZBtbc8v2NABEBAAG0QWdpdGh1Yi5jb20vcGF0
|
||||
cmlja2xvZGRlciA8cGF0cmlja2xvZGRlckB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5j
|
||||
b20+iQE+BBMBAgAoBQJTnUu7AhsjBQkJZgGABgsJCAcDAgYVCAIJCgsEFgIDAQIe
|
||||
AQIXgAAKCRCxxgpl5eZNe1PZB/sGobt+xHMIj5yBFUesSjNHrJL/cnuQAN+2cl2Z
|
||||
Y/zBo2iuVLfoC3TQohICVZjd4rh98yeim2ODZekb1HE9muXBblLSIK2QV1zwWNCX
|
||||
beEJlXh7tNqjDpLSrhoyjPRBKuqYqnZJpdMLr/4CiT3Cit0AenCYH+rpHEcQVcYj
|
||||
NWc92lCux7TPn9QYEdUO00hhQwh3SlSFMItGRkhplPuWwHbm4JEBw5Wah4tac+f8
|
||||
MR4MEfwwY9Q4MbJNzYgtou2dIJrtIYrQz9NxKYM0MvBNpk8IdZ7T7aLKBC32e02r
|
||||
243Mz/nTq75Ks0+lnqjoH3ihTIUoJhBFcVFJ9Nt21nRSLFtNtB1QYXRyaWNrIExv
|
||||
ZGRlciA8cGF0QHBsZGRyLmV1PokBQQQTAQIAKwIbIwUJCWYBgAYLCQgHAwIGFQgC
|
||||
CQoLBBYCAwECHgECF4AFAlOdS8oCGQEACgkQscYKZeXmTXue+wf5AQgW7rAO/0UO
|
||||
1b+8CJIpmOdnAcTetR+1x3xTwnAIfrMIzKelLq4ddEy/dyRcTeYcHJENBztKqi+S
|
||||
oGbE+FzwMabPdl3XerdU9l9mhjN6xO62NIjD/lrpv4i8Ce32mswYFCcQn0SgAw66
|
||||
zisBTEff3XGcZgTZreEUdIIBijlRR5okbuOKmtLSSyc7mZ+2PsGnZ3x6sutWpPFb
|
||||
xg/TY56JXOVG4pVXPmZ2SF2CYPFmK2hoGX17WCpU39HCKE0GdLGcTw2bmO3loE6y
|
||||
Jlvmpaa/jjmGuWvTvGd571KFYsbW5nD32shoq1ejZqhvQLmFgAUC4YfyZ6MsiXO/
|
||||
DWpOOa7zR7kBDQRTmwz3AQgA7E2xHtwG4oCWy1b1pDGrwn1NlyBSXq68pNGE3rsX
|
||||
N7os84mzikBQFyLKJg1pjoTSkab/zXL6JC6YNO9/2mmTytsR57ICP0vCJ9Hm/dBp
|
||||
plngVPS7Q1CbaNz6zAsOl61gb5lsYUIiqr0AZ7YcJy1rb9cg3b8q81OiRPlsFu0E
|
||||
DejmKifvr2re59EuM61lHUQgeI8pJaja6wcY0lIJZqR/OHwWe7+/hr1zfEx2V7P6
|
||||
J3/52RYmK6F6hkknHdh9aJwADa8XM+w9iDSXha95isg4Oe14TWMbE6bBwuqnOYR8
|
||||
l5FfWrb5/KQrSiA0ngSAndkeX7K13GuuMqmKqQXlPpEBFQARAQABiQElBBgBAgAP
|
||||
BQJTmwz3AhsMBQkJZgGAAAoJELHGCmXl5k17L2MIANjbWb2K+81Uganw/Iwp4Mgt
|
||||
dtCXlw6F+fISFybGzvBOiKuHUyclcpzydsUqRb7yWGOkNvpTrtdFigU7wbqg5+Hr
|
||||
xfJYjECjFmOIZjoLu0zAMtKcIEwj2B1GaU34xLgM6BaCj3NUSB8MFeXmkXfbF8Zd
|
||||
iysI5sheancm/qbODka9wVeCdHxiGMpaZdOAoSP9IHIN5dcNiaaWCghT/jwnFlUR
|
||||
UXUePECFVgVhHugLPsYwzF7YlObck7rRZoRUD6F8LRmgG3ORB+x1Tcml0oLySm9/
|
||||
vH10auHHAmPGB2TPF2hSB/zlyblt/XQKj6pKdqWZN7AKACAbjc+uLw1tcF39Cyk=
|
||||
=MdkT
|
||||
mQENBF8V/EkBCAC8YTo6YJLNY0To+25b+dcSRcMCo/g9TJlraoJagO9Hr0Njbryg
|
||||
jG5iptxi6UjDD+8xPK7YYRhaKyzJq1yTjGe5u5WEEtMfNaiVgA6dSEOXTdH4xT6q
|
||||
v3VundebzZ7TFue7kj7fzEh7t9x2k5+RI2RvOs26ANEBKgJliQIZDXKOLcQuW7k9
|
||||
9pWvqMWqRyn8WVGNf/UGBoFDcXQ1wo3h6m/LMJIO5L2IGlQWPmc8WT3uHJ/X/5Ln
|
||||
slQ1ml7h+JjNwN0rAY/ZaJHSEi2y0RtLRzISP0EsA6EbqvJNGI8jqs5rpImgUn9U
|
||||
8Q8Xz6hLPAiVTmteF63LlKo03wRcH8d/FVSvABEBAAG0N1BhdHJpY2sgTG9kZGVy
|
||||
IDxwYXRyaWNrbG9kZGVyQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT6JAVQEEwEI
|
||||
AD4WIQTcbvSov58bHk3h7lItOjRbmNDcHwUCXxX8SQIbAwUJA8JnAAULCQgHAgYV
|
||||
CgkICwIEFgIDAQIeAQIXgAAKCRAtOjRbmNDcHwHQB/9mzj5kuBwPqTT93iec/zKM
|
||||
5yRo3oINJOdXW1Mix3HI2xO0t/NnQFRkLxM/aAcsCFVm+ODcG+FBlcvy87MrEh9M
|
||||
RTMDEx8K5WOK+pSMcEgWqXQb4P0QrEAcNQmdyUswnVyUU8DryB4zp0KwXTgrg8AR
|
||||
V+6ebmMnXiAbTJkCvItJrA/JJpRa5hk5nl6ED4SRBrUiEOeFFrnTq8NlMgoRldyB
|
||||
Mx7v5pSamUZh+ZLpEU7lWvOA5C/zo3iVF2ruZnyZPozP1hFORNuUbxnZEaBpwQKi
|
||||
i1SMC3HOzh8EzatohbOW1rH8iki7IlG6a76kWNJABrsYBmDSOnj9crgvVNxNNHNt
|
||||
uQENBF8V/EkBCADN8eWUf0OtQdthNoWhRgotz/EzLI9r3sVv2SqbA++rHW9TC7mB
|
||||
Wl/3e5emXWgKI1EK1Poz5HeKnL3SRx3xizgBTK6+RNQK6svvaLwcx06y8pZP9RqX
|
||||
jLaRR67fXZCL+ulPtTcbt/JwlaTaokwWsgfy3UZRcK33llLbvWFjht2OGfx8B6Z9
|
||||
UFRxW4sP0HuE3RrnMATGymWvOZlwYDr73HltksnOEFkz4lVP5VK9kdbndQjIB3Cf
|
||||
zw/waTqjX+xXjJsFMYZhEDARhP5BQIoQvEv8KRtptNoLJGFZ9RGf+fIHiar2GAZL
|
||||
4WZbZ0IuGLj419TkgvsUkI83Bx97DkS5Xa+jABEBAAGJATwEGAEIACYWIQTcbvSo
|
||||
v58bHk3h7lItOjRbmNDcHwUCXxX8SQIbDAUJA8JnAAAKCRAtOjRbmNDcH4iPCACB
|
||||
3qf7roCdadPSQNRdt1z/97wjbAC9IUC0WPQMU8gsmF2AeFD6O7gM+vMYhOdkpk0l
|
||||
86FsqgMpZ81mpkitY6XsXgaZmPCfDbe2ou1WuXGGv4TAk0TOOCzJptsoLhxF2sZK
|
||||
hncnhcx3BxYLQd5YbA5bJRUFfLcY1aMx16NPMkiVyCqvtrg3h3ZsMm3sDPJXih5l
|
||||
QeqBN6W9CeTaqQC2pv0vqBEFrBIRy38lr2tJTW+LGEjAHk2uZ5bXW0CXRQksfRVy
|
||||
qGKl8R/YFYzOxElPomFm3bcAYC538E9vWCofiTaDJ72XMLG3nIGNPZz9RJuFvxs0
|
||||
7E2Vs0AwJc9ZDM4fVMV4
|
||||
=n+nj
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
|
73
contrib/init/dogecoind.local.service
Normal file
73
contrib/init/dogecoind.local.service
Normal file
|
@ -0,0 +1,73 @@
|
|||
# This variant of the unit file is for local installations that are installed with `make install`.
|
||||
#
|
||||
# The relevant paths are:
|
||||
#
|
||||
#/usr/local/bin/dogecoind
|
||||
#/usr/local/etc/dogecoin/
|
||||
#/var/local/dogecoin/
|
||||
|
||||
[Unit]
|
||||
Description=Dogecoin's distributed currency daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/dogecoind -conf=/usr/local/etc/dogecoin/dogecoin.conf -datadir=/var/local/dogecoin
|
||||
|
||||
KillSignal=SIGINT
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
TimeoutStopSec=60
|
||||
TimeoutStartSec=5
|
||||
StartLimitIntervalSec=120
|
||||
StartLimitBurst=5
|
||||
|
||||
User=dogecoin
|
||||
Group=dogecoin
|
||||
|
||||
### Restrict resource consumption
|
||||
MemoryAccounting=yes
|
||||
MemoryLimit=3g
|
||||
|
||||
### Restrict access to host file system.
|
||||
#
|
||||
# Hide the entire root file system by default, and *only* mount in exactly what is needed.
|
||||
#
|
||||
|
||||
TemporaryFileSystem=/:ro
|
||||
|
||||
# Add core dependencies
|
||||
BindReadOnlyPaths=/etc/ /lib/ /lib64/
|
||||
|
||||
# Add daemon paths
|
||||
BindReadOnlyPaths=/usr/local/bin/dogecoind /usr/local/etc/dogecoin/
|
||||
BindPaths=/var/local/dogecoin/
|
||||
|
||||
### Restrict access to system.
|
||||
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
PrivateDevices=true
|
||||
PrivateUsers=true
|
||||
DevicePolicy=closed
|
||||
ProtectHome=true
|
||||
ProtectHostname=true
|
||||
ProtectControlGroups=true
|
||||
ProtectClock=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelLogs=true
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
|
||||
RestrictNamespaces=true
|
||||
RestrictRealtime=true
|
||||
RestrictSUIDSGID=true
|
||||
MemoryDenyWriteExecute=true
|
||||
LockPersonality=true
|
||||
|
||||
# ProtectSystem=strict would normally be used, however it nullifies TemporaryFileSystem,
|
||||
# since it remounts root as read only over the top.
|
||||
# In this case, do not enable ProtectSystem.
|
||||
#ProtectSystem=strict
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
74
contrib/init/dogecoind.opt.service
Normal file
74
contrib/init/dogecoind.opt.service
Normal file
|
@ -0,0 +1,74 @@
|
|||
# This variant of the unit file is for "opt" add-on installations that do not form part of the default installation.
|
||||
# (i.e. out of band installations by the user, not installed by a system package manager like "apt")
|
||||
#
|
||||
# The relevant paths are:
|
||||
#
|
||||
#/opt/dogecoin/dogecoind
|
||||
#/etc/opt/dogecoin/
|
||||
#/var/opt/dogecoin/
|
||||
|
||||
[Unit]
|
||||
Description=Dogecoin's distributed currency daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/opt/dogecoin/bin/dogecoind -conf=/etc/opt/dogecoin/dogecoin.conf -datadir=/var/opt/dogecoin
|
||||
|
||||
KillSignal=SIGINT
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
TimeoutStopSec=60
|
||||
TimeoutStartSec=5
|
||||
StartLimitIntervalSec=120
|
||||
StartLimitBurst=5
|
||||
|
||||
User=dogecoin
|
||||
Group=dogecoin
|
||||
|
||||
### Restrict resource consumption
|
||||
MemoryAccounting=yes
|
||||
MemoryLimit=3g
|
||||
|
||||
### Restrict access to host file system.
|
||||
#
|
||||
# Hide the entire root file system by default, and *only* mount in exactly what is needed.
|
||||
#
|
||||
|
||||
TemporaryFileSystem=/:ro
|
||||
|
||||
# Add core dependencies
|
||||
BindReadOnlyPaths=/etc/ /lib/ /lib64/
|
||||
|
||||
# Add daemon paths
|
||||
BindReadOnlyPaths=/opt/dogecoin/ /etc/opt/dogecoin/
|
||||
BindPaths=/var/opt/dogecoin/
|
||||
|
||||
### Restrict access to system.
|
||||
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
PrivateDevices=true
|
||||
PrivateUsers=true
|
||||
DevicePolicy=closed
|
||||
ProtectHome=true
|
||||
ProtectHostname=true
|
||||
ProtectControlGroups=true
|
||||
ProtectClock=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelLogs=true
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
|
||||
RestrictNamespaces=true
|
||||
RestrictRealtime=true
|
||||
RestrictSUIDSGID=true
|
||||
MemoryDenyWriteExecute=true
|
||||
LockPersonality=true
|
||||
|
||||
# ProtectSystem=strict would normally be used, however it nullifies TemporaryFileSystem,
|
||||
# since it remounts root as read only over the top.
|
||||
# In this case, do not enable ProtectSystem.
|
||||
#ProtectSystem=strict
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -1,22 +1,73 @@
|
|||
# This variant of the unit file is for package installations.
|
||||
#
|
||||
# The relevant paths are:
|
||||
#
|
||||
#/usr/bin/dogecoind
|
||||
#/etc/dogecoin/
|
||||
#/var/lib/dogecoin/
|
||||
|
||||
[Unit]
|
||||
Description=Dogecoin's distributed currency daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/dogecoind -conf=/etc/dogecoin/dogecoin.conf -datadir=/var/lib/dogecoin
|
||||
|
||||
KillSignal=SIGINT
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
TimeoutStopSec=60
|
||||
TimeoutStartSec=5
|
||||
StartLimitIntervalSec=120
|
||||
StartLimitBurst=5
|
||||
|
||||
User=dogecoin
|
||||
Group=dogecoin
|
||||
|
||||
Type=forking
|
||||
PIDFile=/var/lib/dogecoind/dogecoind.pid
|
||||
ExecStart=/usr/bin/dogecoind -daemon -pid=/var/lib/dogecoind/dogecoind.pid \
|
||||
-conf=/etc/dogecoin/dogecoin.conf -datadir=/var/lib/dogecoind -disablewallet
|
||||
### Restrict resource consumption
|
||||
MemoryAccounting=yes
|
||||
MemoryLimit=3g
|
||||
|
||||
Restart=always
|
||||
### Restrict access to host file system.
|
||||
#
|
||||
# Hide the entire root file system by default, and *only* mount in exactly what is needed.
|
||||
#
|
||||
|
||||
TemporaryFileSystem=/:ro
|
||||
|
||||
# Add core dependencies
|
||||
BindReadOnlyPaths=/etc/ /lib/ /lib64/
|
||||
|
||||
# Add daemon paths
|
||||
BindReadOnlyPaths=/usr/bin/dogecoind /etc/dogecoin/
|
||||
BindPaths=/var/lib/dogecoin
|
||||
|
||||
### Restrict access to system.
|
||||
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
TimeoutStopSec=60s
|
||||
TimeoutStartSec=2s
|
||||
StartLimitInterval=120s
|
||||
StartLimitBurst=5
|
||||
PrivateDevices=true
|
||||
PrivateUsers=true
|
||||
DevicePolicy=closed
|
||||
ProtectHome=true
|
||||
ProtectHostname=true
|
||||
ProtectControlGroups=true
|
||||
ProtectClock=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelLogs=true
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
|
||||
RestrictNamespaces=true
|
||||
RestrictRealtime=true
|
||||
RestrictSUIDSGID=true
|
||||
MemoryDenyWriteExecute=true
|
||||
LockPersonality=true
|
||||
|
||||
# ProtectSystem=strict would normally be used, however it nullifies TemporaryFileSystem,
|
||||
# since it remounts root as read only over the top.
|
||||
# In this case, do not enable ProtectSystem.
|
||||
#ProtectSystem=strict
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Linearize
|
||||
Construct a linear, no-fork, best version of the Bitcoin blockchain. The scripts
|
||||
Construct a linear, no-fork, best version of the Dogecoin blockchain. The scripts
|
||||
run using Python 3 but are compatible with Python 2.
|
||||
|
||||
## Step 1: Download hash list
|
||||
|
@ -11,7 +11,7 @@ Required configuration file settings for linearize-hashes:
|
|||
|
||||
Optional config file setting for linearize-hashes:
|
||||
* RPC: `host` (Default: `127.0.0.1`)
|
||||
* RPC: `port` (Default: `8332`)
|
||||
* RPC: `port` (Default: `22555`)
|
||||
* Blockchain: `min_height`, `max_height`
|
||||
* `rev_hash_bytes`: If true, the written block hash list will be
|
||||
byte-reversed. (In other words, the hash returned by getblockhash will have its
|
||||
|
@ -20,7 +20,7 @@ standalone hash lists but safe to use with linearize-data.py, which will output
|
|||
the same data no matter which byte format is chosen.
|
||||
|
||||
The `linearize-hashes` script requires a connection, local or remote, to a
|
||||
JSON-RPC server. Running `bitcoind` or `bitcoin-qt -server` will be sufficient.
|
||||
JSON-RPC server. Running `dogecoind` or `dogecoin-qt -server` will be sufficient.
|
||||
|
||||
## Step 2: Copy local block data
|
||||
|
||||
|
@ -38,7 +38,7 @@ will be printed.
|
|||
respectively, to the current time and to the timestamp of the most recent block
|
||||
written to the script's blockchain.
|
||||
* `genesis`: The hash of the genesis block in the blockchain.
|
||||
* `input`: bitcoind blocks/ directory containing blkNNNNN.dat
|
||||
* `input`: dogecoind blocks/ directory containing blkNNNNN.dat
|
||||
* `hashlist`: text file containing list of block hashes created by
|
||||
linearize-hashes.py.
|
||||
* `max_out_sz`: Maximum size for files created by the `output_file` option.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# bitcoind RPC settings (linearize-hashes)
|
||||
# dogecoind RPC settings (linearize-hashes)
|
||||
rpcuser=someuser
|
||||
rpcpassword=somepassword
|
||||
host=127.0.0.1
|
||||
port=8332
|
||||
#port=18332
|
||||
port=22555
|
||||
#port=44555
|
||||
|
||||
# bootstrap.dat hashlist settings (linearize-hashes)
|
||||
max_height=313000
|
||||
|
@ -11,14 +11,14 @@ max_height=313000
|
|||
# bootstrap.dat input/output settings (linearize-data)
|
||||
|
||||
# mainnet
|
||||
netmagic=f9beb4d9
|
||||
genesis=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
|
||||
input=/home/example/.bitcoin/blocks
|
||||
netmagic=c0c0c0c0
|
||||
genesis=1a91e3dace36e2be3bf030a65679fe821aa1d6ef92e7c9902eb318182c355691
|
||||
input=/home/example/.dogecoin/blocks
|
||||
|
||||
# testnet
|
||||
#netmagic=0b110907
|
||||
#genesis=000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943
|
||||
#input=/home/example/.bitcoin/testnet3/blocks
|
||||
#genesis=bb0a78264637406b6360aad926284d544d7049f45189db5664f3c4d07350559e
|
||||
#input=/home/example/.dogecoin/testnet3/blocks
|
||||
|
||||
# "output" option causes blockchain files to be written to the given location,
|
||||
# with "output_file" ignored. If not used, "output_file" is used instead.
|
||||
|
|
|
@ -283,9 +283,9 @@ if __name__ == '__main__':
|
|||
settings['rev_hash_bytes'] = settings['rev_hash_bytes'].lower()
|
||||
|
||||
if 'netmagic' not in settings:
|
||||
settings['netmagic'] = 'f9beb4d9'
|
||||
settings['netmagic'] = 'c0c0c0c0'
|
||||
if 'genesis' not in settings:
|
||||
settings['genesis'] = '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f'
|
||||
settings['genesis'] = '1a91e3dace36e2be3bf030a65679fe821aa1d6ef92e7c9902eb318182c355691'
|
||||
if 'input' not in settings:
|
||||
settings['input'] = 'input'
|
||||
if 'hashlist' not in settings:
|
||||
|
|
|
@ -115,7 +115,7 @@ if __name__ == '__main__':
|
|||
if 'host' not in settings:
|
||||
settings['host'] = '127.0.0.1'
|
||||
if 'port' not in settings:
|
||||
settings['port'] = 8332
|
||||
settings['port'] = 22555
|
||||
if 'min_height' not in settings:
|
||||
settings['min_height'] = 0
|
||||
if 'max_height' not in settings:
|
||||
|
|
|
@ -11,5 +11,5 @@ This script should not be run manually, instead, after building as usual:
|
|||
During the process, the disk image window will pop up briefly where the fancy
|
||||
settings are applied. This is normal, please do not interfere.
|
||||
|
||||
When finished, it will produce `Bitcoin-Core.dmg`.
|
||||
When finished, it will produce `Dogecoin-Core.dmg`.
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
set -e
|
||||
|
||||
ROOTDIR=dist
|
||||
BUNDLE="${ROOTDIR}/Bitcoin-Qt.app"
|
||||
BUNDLE="${ROOTDIR}/Dogecoin-Qt.app"
|
||||
CODESIGN=codesign
|
||||
TEMPDIR=sign.temp
|
||||
TEMPLIST=${TEMPDIR}/signatures.txt
|
||||
|
|
18
contrib/nixos/shell.nix
Normal file
18
contrib/nixos/shell.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ pkgs ? import <nixpkgs> { } }:
|
||||
with pkgs;
|
||||
mkShell {
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoreconfHook
|
||||
openssl
|
||||
db5
|
||||
util-linux
|
||||
boost
|
||||
zlib
|
||||
libevent
|
||||
miniupnpc
|
||||
qt4
|
||||
protobuf
|
||||
qrencode
|
||||
];
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
### QoS (Quality of service) ###
|
||||
|
||||
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. It limits outbound TCP traffic with a source or destination port of 8333, but not if the destination IP is within a LAN.
|
||||
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Dogecoin network. It limits outbound TCP traffic with a source or destination port of 22556, but not if the destination IP is within a LAN.
|
||||
|
||||
This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it.
|
||||
This means one can have an always-on dogecoind instance running, and another local dogecoind/dogecoin-qt instance which connects to this node and receives blocks from it.
|
||||
|
|
|
@ -44,16 +44,16 @@ fi
|
|||
# ret=$?
|
||||
#done
|
||||
|
||||
#limit outgoing traffic to and from port 8333. but not when dealing with a host on the local network
|
||||
#limit outgoing traffic to and from port 22556. but not when dealing with a host on the local network
|
||||
# (defined by $LOCALNET_V4 and $LOCALNET_V6)
|
||||
# --set-mark marks packages matching these criteria with the number "2" (v4)
|
||||
# --set-mark marks packages matching these criteria with the number "4" (v6)
|
||||
# these packets are filtered by the tc filter with "handle 2"
|
||||
# this filter sends the packages into the 1:11 class, and this class is limited to ${LIMIT}
|
||||
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 8333 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
|
||||
iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 8333 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
|
||||
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 22556 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
|
||||
iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 22556 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
|
||||
|
||||
if [ ! -z "${LOCALNET_V6}" ] ; then
|
||||
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --dport 8333 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
|
||||
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --sport 8333 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
|
||||
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --dport 22556 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
|
||||
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --sport 22556 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
|
||||
fi
|
||||
|
|
|
@ -243,20 +243,20 @@ done
|
|||
|
||||
%if %{_buildqt}
|
||||
# qt icons
|
||||
install -D -p share/pixmaps/bitcoin.ico %{buildroot}%{_datadir}/pixmaps/bitcoin.ico
|
||||
install -D -p share/pixmaps/dogecoin.ico %{buildroot}%{_datadir}/pixmaps/dogecoin.ico
|
||||
install -p share/pixmaps/nsis-header.bmp %{buildroot}%{_datadir}/pixmaps/
|
||||
install -p share/pixmaps/nsis-wizard.bmp %{buildroot}%{_datadir}/pixmaps/
|
||||
install -p %{SOURCE100} %{buildroot}%{_datadir}/pixmaps/bitcoin.svg
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin16.png -w16 -h16
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin32.png -w32 -h32
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin64.png -w64 -h64
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin128.png -w128 -h128
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin256.png -w256 -h256
|
||||
%{_bindir}/convert -resize 16x16 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin16.xpm
|
||||
%{_bindir}/convert -resize 32x32 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin32.xpm
|
||||
%{_bindir}/convert -resize 64x64 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin64.xpm
|
||||
%{_bindir}/convert -resize 128x128 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin128.xpm
|
||||
%{_bindir}/convert %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin256.xpm
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin16.png -w16 -h16
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin32.png -w32 -h32
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin64.png -w64 -h64
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin128.png -w128 -h128
|
||||
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin256.png -w256 -h256
|
||||
%{_bindir}/convert -resize 16x16 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin16.xpm
|
||||
%{_bindir}/convert -resize 32x32 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin32.xpm
|
||||
%{_bindir}/convert -resize 64x64 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin64.xpm
|
||||
%{_bindir}/convert -resize 128x128 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin128.xpm
|
||||
%{_bindir}/convert %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin256.xpm
|
||||
touch %{buildroot}%{_datadir}/pixmaps/*.png -r %{SOURCE100}
|
||||
touch %{buildroot}%{_datadir}/pixmaps/*.xpm -r %{SOURCE100}
|
||||
|
||||
|
|
|
@ -127,10 +127,10 @@ def main():
|
|||
g.write(' * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.\n')
|
||||
g.write(' */\n')
|
||||
with open(os.path.join(indir,'nodes_main.txt'),'r') as f:
|
||||
process_nodes(g, f, 'pnSeed6_main', 8333)
|
||||
process_nodes(g, f, 'pnSeed6_main', 22556)
|
||||
g.write('\n')
|
||||
with open(os.path.join(indir,'nodes_test.txt'),'r') as f:
|
||||
process_nodes(g, f, 'pnSeed6_test', 18333)
|
||||
process_nodes(g, f, 'pnSeed6_test', 44556)
|
||||
g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n')
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
24
contrib/snap/README.md
Normal file
24
contrib/snap/README.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
All the commands I used for building and pushing to Snapcraft. I've only tested the amd64 .snap package, but anyone on amd64, arm64, or i686 should be able to build and/or install it for themselves with these instructions.
|
||||
|
||||
---
|
||||
|
||||
## Building Locally
|
||||
|
||||
```
|
||||
sudo apt install snapd
|
||||
sudo snap install --classic snapcraft
|
||||
snapcraft
|
||||
```
|
||||
|
||||
### To Install Locally
|
||||
```
|
||||
snap install \*.snap --devmode
|
||||
```
|
||||
|
||||
### To Push to Snapcraft
|
||||
```
|
||||
snapcraft login
|
||||
snapcraft register dogecoin-core
|
||||
snapcraft push \*.snap --release=edge
|
||||
sudo snap install dogecoin-core --channel=edge
|
||||
```
|
75
contrib/snap/snapcraft.yaml
Normal file
75
contrib/snap/snapcraft.yaml
Normal file
|
@ -0,0 +1,75 @@
|
|||
name: dogecoin-core # you probably want to 'snapcraft register <name>'
|
||||
version: '1.14.5'
|
||||
summary: Reference client of Dogecoin, a peer-to-peer digital currency like Bitcoin.
|
||||
description: |
|
||||
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, Dogecoin currently employs a simplified variant of scrypt. MIT licenced.
|
||||
|
||||
base: core18
|
||||
grade: stable
|
||||
confinement: strict
|
||||
architectures:
|
||||
- build-on: [amd64, i386, arm64]
|
||||
|
||||
apps:
|
||||
d:
|
||||
command: dogecoind
|
||||
plugs: [home, removable-media, network, network-bind]
|
||||
environment:
|
||||
# Override HOME so the datadir is located at ~/snap/dogecoin-core/common/.dogecoin/ instead of ~/snap/dogecoin-core/current/.dogecoin/, and each new version of the snap won't have a different data directory: https://docs.snapcraft.io/environment-variables/7983
|
||||
HOME: $SNAP_USER_COMMON
|
||||
qt:
|
||||
command: qt4-launch dogecoin-qt
|
||||
plugs: [home, removable-media, network, network-bind, desktop, x11, unity7]
|
||||
environment:
|
||||
HOME: $SNAP_USER_COMMON
|
||||
DISABLE_WAYLAND: 1
|
||||
cli:
|
||||
command: dogecoin-cli
|
||||
plugs: [home, removable-media, network]
|
||||
environment:
|
||||
HOME: $SNAP_USER_COMMON
|
||||
|
||||
parts:
|
||||
dogecoin-core:
|
||||
plugin: nil
|
||||
override-build: |
|
||||
echo "Downloading files..."
|
||||
wget https://github.com/dogecoin/dogecoin/releases/download/v${SNAPCRAFT_PROJECT_VERSION}/dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz
|
||||
wget https://github.com/dogecoin/gitian.sigs/archive/refs/heads/master.zip
|
||||
unzip master.zip
|
||||
echo "Verifying secure hash matches signed values..."
|
||||
checksum=$(sha256sum dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz)
|
||||
if ! (grep -r $checksum * | grep dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz); then
|
||||
echo "Secure hash not verified."
|
||||
return
|
||||
else
|
||||
echo "Secure hash verified."
|
||||
fi
|
||||
tar -xvf dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz
|
||||
echo "Running tests..."
|
||||
if ! (dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/test_dogecoin); then
|
||||
echo "Dogecoin tests failed."
|
||||
return
|
||||
else
|
||||
echo "Dogecoin tests passed."
|
||||
fi
|
||||
echo "Installing Dogecoin..."
|
||||
install -m 0755 -D -t $SNAPCRAFT_PART_INSTALL/bin dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/dogecoind
|
||||
install -m 0755 -D -t $SNAPCRAFT_PART_INSTALL/bin dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/dogecoin-qt
|
||||
install -m 0755 -D -t $SNAPCRAFT_PART_INSTALL/bin dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/dogecoin-cli
|
||||
wget https://raw.githubusercontent.com/dogecoin/dogecoin/master/share/pixmaps/dogecoin128.png
|
||||
install -m 0644 -D -t $SNAPCRAFT_PART_INSTALL/share/pixmaps dogecoin128.png
|
||||
build-packages:
|
||||
- unzip
|
||||
- wget
|
||||
stage-packages:
|
||||
- libfreetype6
|
||||
- libpng16-16
|
||||
- libx11-xcb1
|
||||
- libx11-6
|
||||
- libfontconfig
|
||||
qt4conf:
|
||||
build-packages:
|
||||
- dpkg-dev
|
||||
plugin: make
|
||||
source: https://github.com/kyrofa/qt4conf.git
|
|
@ -19,11 +19,11 @@ from binascii import b2a_hex
|
|||
|
||||
# key types
|
||||
PUBKEY_ADDRESS = 30
|
||||
SCRIPT_ADDRESS = 5
|
||||
PUBKEY_ADDRESS_TEST = 111
|
||||
SCRIPT_ADDRESS = 22
|
||||
PUBKEY_ADDRESS_TEST = 113
|
||||
SCRIPT_ADDRESS_TEST = 196
|
||||
PRIVKEY = 158
|
||||
PRIVKEY_TEST = 239
|
||||
PRIVKEY_TEST = 241
|
||||
|
||||
metadata_keys = ['isPrivkey', 'isTestnet', 'addrType', 'isCompressed']
|
||||
# templates for valid sequences
|
||||
|
|
|
@ -6,6 +6,7 @@ SDK_PATH ?= $(BASEDIR)/SDKs
|
|||
NO_QT ?=
|
||||
NO_WALLET ?=
|
||||
NO_UPNP ?=
|
||||
AVX2 ?=
|
||||
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
|
||||
|
||||
BUILD = $(shell ./config.guess)
|
||||
|
@ -92,14 +93,19 @@ $(host_arch)_$(host_os)_id_string+=$(shell $(host_STRIP) --version 2>/dev/null)
|
|||
qt_packages_$(NO_QT) = $(qt_packages) $(qt_$(host_os)_packages) $(qt_$(host_arch)_$(host_os)_packages)
|
||||
wallet_packages_$(NO_WALLET) = $(wallet_packages)
|
||||
upnp_packages_$(NO_UPNP) = $(upnp_packages)
|
||||
avx2_packages_$(AVX2) = $(avx2_$(host_arch)_$(host_os)_packages)
|
||||
|
||||
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(qt_packages_) $(wallet_packages_) $(upnp_packages_)
|
||||
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(avx2_packages_1) $(qt_packages_) $(wallet_packages_) $(upnp_packages_)
|
||||
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
|
||||
|
||||
ifneq ($(qt_packages_),)
|
||||
native_packages += $(qt_native_packages)
|
||||
endif
|
||||
|
||||
ifneq ($(avx2_packages_1),)
|
||||
native_packages += $(avx2_native_packages)
|
||||
endif
|
||||
|
||||
all_packages = $(packages) $(native_packages)
|
||||
|
||||
meta_depends = Makefile funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
|
||||
|
@ -119,11 +125,35 @@ $(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
|
|||
$(AT)cd $(@D); $(foreach package,$^, tar xf $($(package)_cached); )
|
||||
$(AT)touch $@
|
||||
|
||||
# $PATH is not preserved between ./configure and make by convention. Its
|
||||
# modification and overriding at ./configure time is (as I understand it)
|
||||
# supposed to be captured by the AC_{PROG_{,OBJ}CXX,PATH_{PROG,TOOL}} macros,
|
||||
# which will expand the program names to their full absolute paths. The notable
|
||||
# exception is command line overriding: ./configure CC=clang, which skips the
|
||||
# program name expansion step, and works because the user implicitly indicates
|
||||
# with CC=clang that clang will be available in $PATH at all times, and is most
|
||||
# likely part of the user's system.
|
||||
#
|
||||
# Therefore, when we "seed the autoconf cache"/"override well-known program
|
||||
# vars" by setting AR=<blah> in our config.site, either one of two things needs
|
||||
# to be true for the build system to work correctly:
|
||||
#
|
||||
# 1. If we refer to the program by name (e.g. AR=riscv64-gnu-linux-ar), the
|
||||
# tool needs to be available in $PATH at all times.
|
||||
#
|
||||
# 2. If the tool is _**not**_ expected to be available in $PATH at all times
|
||||
# (such as is the case for our native_cctools binutils tools), it needs to
|
||||
# be referred to by its absolute path, such as would be output by the
|
||||
# AC_PATH_{PROG,TOOL} macros.
|
||||
#
|
||||
# Minor note: it is also okay to refer to tools by their absolute path even if
|
||||
# we expect them to be available in $PATH at all times, more specificity does
|
||||
# not hurt.
|
||||
$(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_build_id)
|
||||
$(AT)@mkdir -p $(@D)
|
||||
$(AT)sed -e 's|@HOST@|$(host)|' \
|
||||
-e 's|@CC@|$(toolchain_path)$(host_CC)|' \
|
||||
-e 's|@CXX@|$(toolchain_path)$(host_CXX)|' \
|
||||
-e 's|@CC@|$(host_CC)|' \
|
||||
-e 's|@CXX@|$(host_CXX)|' \
|
||||
-e 's|@AR@|$(toolchain_path)$(host_AR)|' \
|
||||
-e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
|
||||
-e 's|@NM@|$(toolchain_path)$(host_NM)|' \
|
||||
|
|
|
@ -1,3 +1,51 @@
|
|||
### Prerequisites
|
||||
|
||||
The depends system is maintained and tested using Ubuntu Bionic. Both generic
|
||||
apt packages, and packages specific to the target architecture are required to
|
||||
successfully compile all dependencies. Listed packages are tested and known to
|
||||
work.
|
||||
|
||||
#### Generic packages
|
||||
|
||||
```
|
||||
sudo apt-get install autoconf automake binutils-gold ca-certificates curl \
|
||||
faketime git-core libtool pkg-config python bison
|
||||
```
|
||||
|
||||
#### Generic linux: i686-pc-linux-gnu and x86_64-linux-gnu
|
||||
|
||||
```
|
||||
sudo apt-get install g++-7-multilib gcc-7-multilib
|
||||
```
|
||||
|
||||
#### ARM7 32bit: arm-linux-gnueabihf
|
||||
|
||||
```
|
||||
sudo apt-get install g++-arm-linux-gnueabihf g++-7-arm-linux-gnueabihf \
|
||||
gcc-7-arm-linux-gnueabihf binutils-arm-linux-gnueabihf
|
||||
```
|
||||
|
||||
#### ARM 64bit: aarch64-linux-gnu
|
||||
|
||||
```
|
||||
sudo apt-get install g++-aarch64-linux-gnu g++-7-aarch64-linux-gnu \
|
||||
gcc-7-aarch64-linux-gnu binutils-aarch64-linux-gnu
|
||||
```
|
||||
|
||||
#### Windows: i686-w64-mingw32 and x86_64-w64-mingw32
|
||||
|
||||
```
|
||||
sudo apt-get install g++ g++-mingw-w64 mingw-w64 nsis zip
|
||||
```
|
||||
|
||||
#### macOS (Intel): x86_64-apple-darwin11
|
||||
|
||||
```
|
||||
sudo apt-get install g++ cmake imagemagick fonts-tuffy libz-dev libbz2-dev \
|
||||
libcap-dev librsvg2-bin libtiff-tools python python-dev \
|
||||
python-setuptools
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
To build dependencies for the current arch+OS:
|
||||
|
@ -56,4 +104,3 @@ Additional targets:
|
|||
|
||||
- [description.md](description.md): General description of the depends system
|
||||
- [packages.md](packages.md): Steps for adding packages
|
||||
|
||||
|
|
|
@ -2,8 +2,12 @@ OSX_MIN_VERSION=10.8
|
|||
OSX_SDK_VERSION=10.11
|
||||
OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
|
||||
LD64_VERSION=253.9
|
||||
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
|
||||
|
||||
clang_prog=$(build_prefix)/bin/clang
|
||||
clangxx_prog=$(clang_prog)++
|
||||
|
||||
darwin_CC=$(build_prefix)/bin/clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||
darwin_CXX=$(clang_prog)++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
|
||||
|
||||
darwin_CFLAGS=-pipe
|
||||
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=bdb
|
||||
$(package)_version=5.1.29
|
||||
$(package)_version=5.3.28
|
||||
$(package)_download_path=http://download.oracle.com/berkeley-db
|
||||
$(package)_file_name=db-$($(package)_version).NC.tar.gz
|
||||
$(package)_sha256_hash=08238e59736d1aacdd47cfb8e68684c695516c37f4fbe1b8267dde58dc3a576c
|
||||
$(package)_sha256_hash=76a25560d9e52a198d37a31440fd07632b5f1f8f9f2b6d5438f4bc3e7c9013ef
|
||||
$(package)_build_subdir=build_unix
|
||||
|
||||
define $(package)_set_vars
|
||||
|
@ -24,7 +24,7 @@ define $(package)_config_cmds
|
|||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) libdb_cxx-5.1.a libdb-5.1.a
|
||||
$(MAKE) libdb_cxx-5.3.a libdb-5.3.a
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
|
|
|
@ -5,7 +5,7 @@ $(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
|||
$(package)_sha256_hash=3a3bb2c4e15ffb433f2032f50a5b5a92558206822e22bfe8cbe339af4aa82f88
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--without-zlib --without-png --disable-static
|
||||
$(package)_config_opts=--without-zlib --without-png --without-harfbuzz --without-bzip2 --disable-static
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
endef
|
||||
|
||||
|
|
19
depends/packages/intel-ipsec-mb.mk
Normal file
19
depends/packages/intel-ipsec-mb.mk
Normal file
|
@ -0,0 +1,19 @@
|
|||
package=intel-ipsec-mb
|
||||
$(package)_version=1.0
|
||||
$(package)_download_path=https://github.com/intel/intel-ipsec-mb/archive/refs/tags
|
||||
$(package)_file_name=v$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=03501aea472d3c8fdf8f1f207816eefeaf5e4ebbdc71d88dcb26b2519841bb74
|
||||
$(package)_patches=remove_digest_init.patch
|
||||
$(package)_dependencies=native_nasm
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/remove_digest_init.patch
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) NASM=$(build_prefix)/bin/nasm
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) NASM=$(build_prefix)/bin/nasm PREFIX=$($(package)_staging_prefix_dir) SHARED=n NOLDCONFIG=y install
|
||||
endef
|
|
@ -1,15 +1,15 @@
|
|||
package=libevent
|
||||
$(package)_version=2.1.7
|
||||
$(package)_version=2.1.11-stable
|
||||
$(package)_download_path=https://github.com/libevent/libevent/archive/
|
||||
$(package)_file_name=release-$($(package)_version)-rc.tar.gz
|
||||
$(package)_sha256_hash=548362d202e22fe24d4c3fad38287b4f6d683e6c21503341373b89785fa6f991
|
||||
$(package)_file_name=release-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=229393ab2bf0dc94694f21836846b424f3532585bac3468738b7bf752c03901e
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
./autogen.sh
|
||||
endef
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --disable-openssl --disable-libevent-regress
|
||||
$(package)_config_opts=--disable-shared --disable-openssl --disable-libevent-regress --disable-samples
|
||||
$(package)_config_opts_release=--disable-debug-mode
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
endef
|
||||
|
|
31
depends/packages/libxkbcommon.mk
Normal file
31
depends/packages/libxkbcommon.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=libxkbcommon
|
||||
$(package)_version=0.8.4
|
||||
$(package)_download_path=https://xkbcommon.org/download/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b
|
||||
$(package)_dependencies=libxcb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts = --enable-option-checking --disable-dependency-tracking
|
||||
$(package)_config_opts += --disable-static --disable-docs
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf lib/*.la
|
||||
endef
|
|
@ -1,9 +1,8 @@
|
|||
package=native_ds_store
|
||||
$(package)_version=1.1.0
|
||||
$(package)_download_path=https://bitbucket.org/al45tair/ds_store/get
|
||||
$(package)_download_file=v$($(package)_version).tar.bz2
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=921596764d71d1bbd3297a90ef6d286f718794d667e4f81d91d14053525d64c1
|
||||
$(package)_download_path=https://github.com/al45tair/ds_store/archive/
|
||||
$(package)_file_name=v$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=a9f4c0755c6be7224ff7029e188dd262e830bb81e801424841db9eb0780ec8ed
|
||||
$(package)_install_libdir=$(build_prefix)/lib/python/dist-packages
|
||||
$(package)_dependencies=native_biplist
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=native_mac_alias
|
||||
$(package)_version=1.1.0
|
||||
$(package)_download_path=https://bitbucket.org/al45tair/mac_alias/get
|
||||
$(package)_download_file=v$($(package)_version).tar.bz2
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=87ad827e66790028361e43fc754f68ed041a9bdb214cca03c853f079b04fb120
|
||||
$(package)_download_path=https://github.com/al45tair/mac_alias/archive/
|
||||
$(package)_download_file=v$($(package)_version).tar.gz
|
||||
$(package)_file_name=mac_alias-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=b10cb44ecb64fc25283fae7a9cf365d2829377d84e37b9c21100aca8757509be
|
||||
$(package)_install_libdir=$(build_prefix)/lib/python/dist-packages
|
||||
$(package)_patches=python3.patch
|
||||
|
||||
|
|
21
depends/packages/native_nasm.mk
Normal file
21
depends/packages/native_nasm.mk
Normal file
|
@ -0,0 +1,21 @@
|
|||
package=native_nasm
|
||||
$(package)_version=2.15.05
|
||||
$(package)_download_path=http://nasm.us/pub/nasm/releasebuilds/$($(package)_version)
|
||||
$(package)_file_name=nasm-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=3c4b8339e5ab54b1bcb2316101f8985a5da50a3f9e504d43fa6f35668bee2fd0
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share
|
||||
endef
|
|
@ -1,8 +1,10 @@
|
|||
package=openssl
|
||||
$(package)_version=1.0.1l
|
||||
$(package)_download_path=https://www.openssl.org/source
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=b2cf4d48fe5d49f240c61c9e624193a6f232b5ed0baf010681e725963c40d1d4
|
||||
$(package)_version=1.0.2
|
||||
$(package)_version_suffix=u
|
||||
$(package)_download_path=https://www.openssl.org/source/old/$($(package)_version)
|
||||
$(package)_file_name=$(package)-$($(package)_version)$($(package)_version_suffix).tar.gz
|
||||
$(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16
|
||||
$(package)_patches=secure_getenv.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"
|
||||
|
@ -57,12 +59,14 @@ $(package)_config_opts_i686_mingw32=mingw
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \
|
||||
sed -i.old "/define DATE/d" util/mkbuildinf.pl && \
|
||||
sed -i.old "s|engines apps test|engines|" Makefile.org
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
./Configure $($(package)_config_opts)
|
||||
./Configure $($(package)_config_opts) && \
|
||||
make depend
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
|
|
|
@ -4,7 +4,7 @@ native_packages := native_ccache
|
|||
qt_native_packages = native_protobuf
|
||||
qt_packages = qrencode protobuf zlib
|
||||
|
||||
qt_x86_64_linux_packages:=qt expat dbus libxcb xcb_proto libXau xproto freetype fontconfig libX11 xextproto libXext xtrans
|
||||
qt_x86_64_linux_packages:=qt expat dbus libxcb xcb_proto libXau xproto freetype fontconfig libX11 xextproto libXext xtrans libxkbcommon
|
||||
qt_i686_linux_packages:=$(qt_x86_64_linux_packages)
|
||||
|
||||
qt_darwin_packages=qt
|
||||
|
@ -14,6 +14,9 @@ wallet_packages=bdb
|
|||
|
||||
upnp_packages=miniupnpc
|
||||
|
||||
avx2_native_packages:=native_nasm
|
||||
avx2_x86_64_linux_packages:=intel-ipsec-mb
|
||||
|
||||
darwin_native_packages = native_biplist native_ds_store native_mac_alias
|
||||
|
||||
ifneq ($(build_os),darwin)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
PACKAGE=qt
|
||||
$(package)_version=5.7.1
|
||||
$(package)_download_path=http://download.qt.io/official_releases/qt/5.7/$($(package)_version)/submodules
|
||||
$(package)_download_path=http://download.qt.io/new_archive/qt/5.7/$($(package)_version)/submodules
|
||||
$(package)_suffix=opensource-src-$($(package)_version).tar.gz
|
||||
$(package)_file_name=qtbase-$($(package)_suffix)
|
||||
$(package)_sha256_hash=95f83e532d23b3ddbde7973f380ecae1bac13230340557276f75f2e37984e410
|
||||
$(package)_dependencies=openssl zlib
|
||||
$(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext
|
||||
$(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext libxkbcommon
|
||||
$(package)_build_subdir=qtbase
|
||||
$(package)_qt_libs=corelib network widgets gui plugins testlib printsupport
|
||||
$(package)_patches=mac-qmake.conf mingw-uuidof.patch pidlist_absolute.patch fix-xcb-include-order.patch fix_qt_pkgconfig.patch
|
||||
|
@ -73,6 +73,7 @@ $(package)_config_opts += -prefix $(host_prefix)
|
|||
$(package)_config_opts += -qt-libpng
|
||||
$(package)_config_opts += -qt-libjpeg
|
||||
$(package)_config_opts += -qt-pcre
|
||||
$(package)_config_opts += -qt-harfbuzz
|
||||
$(package)_config_opts += -system-zlib
|
||||
$(package)_config_opts += -reduce-exports
|
||||
$(package)_config_opts += -static
|
||||
|
@ -89,8 +90,7 @@ $(package)_config_opts_darwin += -device-option MAC_TARGET=$(host)
|
|||
$(package)_config_opts_darwin += -device-option MAC_LD64_VERSION=$(LD64_VERSION)
|
||||
endif
|
||||
|
||||
$(package)_config_opts_linux = -qt-xkbcommon
|
||||
$(package)_config_opts_linux += -qt-xcb
|
||||
$(package)_config_opts_linux = -qt-xcb
|
||||
$(package)_config_opts_linux += -system-freetype
|
||||
$(package)_config_opts_linux += -no-sm
|
||||
$(package)_config_opts_linux += -fontconfig
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=zeromq
|
||||
$(package)_version=4.1.5
|
||||
$(package)_download_path=https://github.com/zeromq/zeromq4-1/releases/download/v$($(package)_version)/
|
||||
$(package)_version=4.3.4
|
||||
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=04aac57f081ffa3a2ee5ed04887be9e205df3a7ddade0027460b8042432bdbcf
|
||||
$(package)_patches=9114d3957725acd34aa8b8d011585812f3369411.patch 9e6745c12e0b100cd38acecc16ce7db02905e27c.patch
|
||||
$(package)_sha256_hash=c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5
|
||||
$(package)_patches=remove_libstd_link.patch clock-unused-nsecs.patch 0002-disable-pthread_set_name_np.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--without-documentation --disable-shared --without-libsodium --disable-curve
|
||||
|
@ -12,9 +12,10 @@ define $(package)_set_vars
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/9114d3957725acd34aa8b8d011585812f3369411.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/9e6745c12e0b100cd38acecc16ce7db02905e27c.patch && \
|
||||
./autogen.sh
|
||||
patch -p1 < $($(package)_patch_dir)/clock-unused-nsecs.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/remove_libstd_link.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/0002-disable-pthread_set_name_np.patch && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub config
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
@ -22,7 +23,7 @@ define $(package)_config_cmds
|
|||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) libzmq.la
|
||||
$(MAKE) ./src/libzmq.la
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
|
@ -30,5 +31,5 @@ define $(package)_stage_cmds
|
|||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf bin share
|
||||
rm -rf bin share lib/*.la
|
||||
endef
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
These patches are to allow bdb-5.1.29 to compile using clang / c++11 under later MacOSX versions (Sierra+).
|
||||
These patches must be applied to the bdb-5.1.29 source from Oracle, and then compiled, for the Mac client to build.
|
||||
|
||||
Note some of these exist in bdb.mk but we don't want to use the -stdlib=libstd++ flag that's indicated in there on OSX.
|
|
@ -1,38 +0,0 @@
|
|||
--- old-bdb/src/dbinc/atomic.h 2011-10-25 14:39:34.000000000 -0600
|
||||
+++ new-bdb/src/dbinc/atomic.h 2018-06-01 19:59:37.000000000 -0600
|
||||
@@ -70,7 +70,7 @@
|
||||
* These have no memory barriers; the caller must include them when necessary.
|
||||
*/
|
||||
#define atomic_read(p) ((p)->value)
|
||||
-#define atomic_init(p, val) ((p)->value = (val))
|
||||
+#define atomic_init_db(p, val) ((p)->value = (val))
|
||||
|
||||
#ifdef HAVE_ATOMIC_SUPPORT
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
#define atomic_inc(env, p) __atomic_inc(p)
|
||||
#define atomic_dec(env, p) __atomic_dec(p)
|
||||
#define atomic_compare_exchange(env, p, o, n) \
|
||||
- __atomic_compare_exchange((p), (o), (n))
|
||||
+ __atomic_compare_exchange_db((p), (o), (n))
|
||||
static inline int __atomic_inc(db_atomic_t *p)
|
||||
{
|
||||
int temp;
|
||||
@@ -176,7 +176,7 @@
|
||||
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
|
||||
* which configure could be changed to use.
|
||||
*/
|
||||
-static inline int __atomic_compare_exchange(
|
||||
+static inline int __atomic_compare_exchange_db(
|
||||
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
|
||||
{
|
||||
atomic_value_t was;
|
||||
@@ -206,7 +206,7 @@
|
||||
#define atomic_dec(env, p) (--(p)->value)
|
||||
#define atomic_compare_exchange(env, p, oldval, newval) \
|
||||
(DB_ASSERT(env, atomic_read(p) == (oldval)), \
|
||||
- atomic_init(p, (newval)), 1)
|
||||
+ atomic_init_db(p, (newval)), 1)
|
||||
#else
|
||||
#define atomic_inc(env, p) __atomic_inc(env, p)
|
||||
#define atomic_dec(env, p) __atomic_dec(env, p)
|
|
@ -1,20 +0,0 @@
|
|||
--- old-bdb/src/mp/mp_fget.c 2011-10-25 14:39:35.000000000 -0600
|
||||
+++ new-bdb/src/mp/mp_fget.c 2018-06-01 20:01:48.000000000 -0600
|
||||
@@ -629,7 +629,7 @@
|
||||
|
||||
/* Initialize enough so we can call __memp_bhfree. */
|
||||
alloc_bhp->flags = 0;
|
||||
- atomic_init(&alloc_bhp->ref, 1);
|
||||
+ atomic_init_db(&alloc_bhp->ref, 1);
|
||||
#ifdef DIAGNOSTIC
|
||||
if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) {
|
||||
__db_errx(env,
|
||||
@@ -931,7 +931,7 @@
|
||||
MVCC_MPROTECT(bhp->buf, mfp->pagesize,
|
||||
PROT_READ);
|
||||
|
||||
- atomic_init(&alloc_bhp->ref, 1);
|
||||
+ atomic_init_db(&alloc_bhp->ref, 1);
|
||||
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
|
||||
alloc_bhp->priority = bhp->priority;
|
||||
alloc_bhp->pgno = bhp->pgno;
|
|
@ -1,20 +0,0 @@
|
|||
--- old-bdb/src/mp/mp_mvcc.c 2011-10-25 14:39:35.000000000 -0600
|
||||
+++ new-bdb/src/mp/mp_mvcc.c 2018-06-01 20:02:45.000000000 -0600
|
||||
@@ -276,7 +276,7 @@
|
||||
#else
|
||||
memcpy(frozen_bhp, bhp, SSZA(BH, buf));
|
||||
#endif
|
||||
- atomic_init(&frozen_bhp->ref, 0);
|
||||
+ atomic_init_db(&frozen_bhp->ref, 0);
|
||||
if (mutex != MUTEX_INVALID)
|
||||
frozen_bhp->mtx_buf = mutex;
|
||||
else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH,
|
||||
@@ -428,7 +428,7 @@
|
||||
#endif
|
||||
alloc_bhp->mtx_buf = mutex;
|
||||
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
|
||||
- atomic_init(&alloc_bhp->ref, 1);
|
||||
+ atomic_init_db(&alloc_bhp->ref, 1);
|
||||
F_CLR(alloc_bhp, BH_FROZEN);
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
--- old-bdb/src/mp/mp_region.c 2011-10-25 14:39:35.000000000 -0600
|
||||
+++ new-bdb/src/mp/mp_region.c 2018-06-01 20:03:28.000000000 -0600
|
||||
@@ -229,7 +229,7 @@
|
||||
MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0)
|
||||
return (ret);
|
||||
SH_TAILQ_INIT(&htab[i].hash_bucket);
|
||||
- atomic_init(&htab[i].hash_page_dirty, 0);
|
||||
+ atomic_init_db(&htab[i].hash_page_dirty, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -275,7 +275,7 @@
|
||||
hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID :
|
||||
mtx_base + (i % dbenv->mp_mtxcount);
|
||||
SH_TAILQ_INIT(&hp->hash_bucket);
|
||||
- atomic_init(&hp->hash_page_dirty, 0);
|
||||
+ atomic_init_db(&hp->hash_page_dirty, 0);
|
||||
#ifdef HAVE_STATISTICS
|
||||
hp->hash_io_wait = 0;
|
||||
hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0;
|
|
@ -1,11 +0,0 @@
|
|||
--- old-bdb/src/mutex/mut_method.c 2011-10-25 14:39:35.000000000 -0600
|
||||
+++ new-bdb/src/mutex/mut_method.c 2018-06-01 20:04:05.000000000 -0600
|
||||
@@ -428,7 +428,7 @@
|
||||
MUTEX_LOCK(env, mtx);
|
||||
ret = atomic_read(v) == oldval;
|
||||
if (ret)
|
||||
- atomic_init(v, newval);
|
||||
+ atomic_init_db(v, newval);
|
||||
MUTEX_UNLOCK(env, mtx);
|
||||
|
||||
return (ret);
|
|
@ -1,20 +0,0 @@
|
|||
--- old-bdb/src/mutex/mut_tas.c 2011-10-25 14:39:35.000000000 -0600
|
||||
+++ new-bdb/src/mutex/mut_tas.c 2018-06-01 20:04:25.000000000 -0600
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
#ifdef HAVE_SHARED_LATCHES
|
||||
if (F_ISSET(mutexp, DB_MUTEX_SHARED))
|
||||
- atomic_init(&mutexp->sharecount, 0);
|
||||
+ atomic_init_db(&mutexp->sharecount, 0);
|
||||
else
|
||||
#endif
|
||||
if (MUTEX_INIT(&mutexp->tas)) {
|
||||
@@ -521,7 +521,7 @@
|
||||
F_CLR(mutexp, DB_MUTEX_LOCKED);
|
||||
/* Flush flag update before zeroing count */
|
||||
MEMBAR_EXIT();
|
||||
- atomic_init(&mutexp->sharecount, 0);
|
||||
+ atomic_init_db(&mutexp->sharecount, 0);
|
||||
} else {
|
||||
DB_ASSERT(env, sharecount > 0);
|
||||
MEMBAR_EXIT();
|
13
depends/patches/intel-ipsec-mb/remove_digest_init.patch
Normal file
13
depends/patches/intel-ipsec-mb/remove_digest_init.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff -dur a/lib/include/sha_generic.h b/lib/include/sha_generic.h
|
||||
index 3752546..77efd91 100644
|
||||
--- a/lib/include/sha_generic.h
|
||||
+++ b/lib/include/sha_generic.h
|
||||
@@ -308,7 +308,7 @@ void sha_generic_1block(const void *data, void *digest,
|
||||
if (data == NULL || digest == NULL)
|
||||
return;
|
||||
#endif
|
||||
- sha_generic_init(digest, sha_type);
|
||||
+// sha_generic_init(digest, sha_type);
|
||||
sha_generic_one_block(data, digest, is_avx, sha_type);
|
||||
#ifdef SAFE_DATA
|
||||
clear_scratch_gps();
|
37
depends/patches/openssl/secure_getenv.patch
Normal file
37
depends/patches/openssl/secure_getenv.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
Solves export of glibc 2.17 secure_getenv because we support down to 2.11
|
||||
|
||||
Patches openssl 1.0.2's usage of secure_getenv from glibc 2.17 to instead
|
||||
always use the fallback OPENSSL_issetugid(), which essentially does the
|
||||
same thing on linux, with the only difference that the glibc version makes
|
||||
decisions on startup, whereas the openssl version does the same check each
|
||||
time the environment is read.
|
||||
|
||||
glibc check: https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/enbl-secure.c;h=9e47526bd3e444e1a19a8ea9fd310b6f47c4db52;hb=HEAD
|
||||
glibc implementation: https://sourceware.org/git/?p=glibc.git;a=blob;f=stdlib/secure-getenv.c;h=a394eebcf794c1279d66e5bcb71d4b15725e6e5a;hb=HEAD
|
||||
|
||||
openssl check: https://github.com/openssl/openssl/blob/OpenSSL_1_0_2u/crypto/uid.c
|
||||
|
||||
This patch can be removed when glibc 2.17 is the minimum version supported
|
||||
|
||||
Author: Patrick Lodder <patricklodder@users.noreply.github.com>
|
||||
|
||||
diff -dur a/crypto/getenv.c b/crypto/getenv.c
|
||||
--- a/crypto/getenv.c 2019-12-20 13:02:41.000000000 +0000
|
||||
+++ b/crypto/getenv.c 2021-09-20 03:02:04.125747397 +0000
|
||||
@@ -16,16 +16,7 @@
|
||||
|
||||
char *ossl_safe_getenv(const char *name)
|
||||
{
|
||||
-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
||||
-# if __GLIBC_PREREQ(2, 17)
|
||||
-# define SECURE_GETENV
|
||||
- return secure_getenv(name);
|
||||
-# endif
|
||||
-#endif
|
||||
-
|
||||
-#ifndef SECURE_GETENV
|
||||
if (OPENSSL_issetugid())
|
||||
return NULL;
|
||||
return getenv(name);
|
||||
-#endif
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
From 6e6b47d5ab381c3df3b30bb0b0a6cf210dfb1eba Mon Sep 17 00:00:00 2001
|
||||
From: Cory Fields <cory-nospam-@coryfields.com>
|
||||
Date: Mon, 5 Mar 2018 14:22:05 -0500
|
||||
Subject: [PATCH] disable pthread_set_name_np
|
||||
|
||||
pthread_set_name_np adds a Glibc requirement on >= 2.12.
|
||||
---
|
||||
src/thread.cpp | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
--- zeromq-4.3.4-orig/src/thread.cpp 2021-01-03 21:46:01.000000000 +0000
|
||||
+++ zeromq-4.3.4/src/thread.cpp 2021-07-01 22:42:49.850117319 +0100
|
||||
@@ -393,6 +393,7 @@
|
||||
return;
|
||||
#endif
|
||||
|
||||
+#if 0
|
||||
#if defined(ZMQ_HAVE_PTHREAD_SETNAME_1)
|
||||
int rc = pthread_setname_np (_name);
|
||||
if (rc)
|
||||
@@ -408,6 +409,8 @@
|
||||
#elif defined(ZMQ_HAVE_PTHREAD_SET_NAME)
|
||||
pthread_set_name_np (pthread_self (), _name);
|
||||
#endif
|
||||
+#endif
|
||||
+ return;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,22 +0,0 @@
|
|||
From 9114d3957725acd34aa8b8d011585812f3369411 Mon Sep 17 00:00:00 2001
|
||||
From: Jeroen Ooms <jeroenooms@gmail.com>
|
||||
Date: Tue, 20 Oct 2015 13:10:38 +0200
|
||||
Subject: [PATCH] enable static libraries on mingw
|
||||
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 393505b..e92131a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -265,7 +265,7 @@ case "${host_os}" in
|
||||
libzmq_dso_visibility="no"
|
||||
|
||||
if test "x$enable_static" = "xyes"; then
|
||||
- AC_MSG_ERROR([Building static libraries is not supported under MinGW32])
|
||||
+ CPPFLAGS="-DZMQ_STATIC"
|
||||
fi
|
||||
|
||||
# Set FD_SETSIZE to 1024
|
|
@ -1,22 +0,0 @@
|
|||
From 9e6745c12e0b100cd38acecc16ce7db02905e27c Mon Sep 17 00:00:00 2001
|
||||
From: David Millard <dmillard10@gmail.com>
|
||||
Date: Tue, 10 May 2016 13:53:53 -0700
|
||||
Subject: [PATCH] Fix autotools for static MinGW builds
|
||||
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 5a0fa14..def6ea7 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -259,7 +259,7 @@ case "${host_os}" in
|
||||
libzmq_dso_visibility="no"
|
||||
|
||||
if test "x$enable_static" = "xyes"; then
|
||||
- CPPFLAGS="-DZMQ_STATIC"
|
||||
+ CPPFLAGS="-DZMQ_STATIC $CPPFLAGS"
|
||||
fi
|
||||
|
||||
# Set FD_SETSIZE to 1024
|
11
depends/patches/zeromq/clock-unused-nsecs.patch
Normal file
11
depends/patches/zeromq/clock-unused-nsecs.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
diff -dur a/src/clock.cpp b/src/clock.cpp
|
||||
--- a/src/clock.cpp 2021-07-12 21:15:35.111146311 +0000
|
||||
+++ b/src/clock.cpp 2021-07-12 21:22:09.059753013 +0000
|
||||
@@ -194,6 +194,7 @@
|
||||
#else
|
||||
|
||||
// Use POSIX gettimeofday function to get precise time.
|
||||
+ LIBZMQ_UNUSED (nsecs_per_usec);
|
||||
struct timeval tv;
|
||||
int rc = gettimeofday (&tv, NULL);
|
||||
errno_assert (rc == 0);
|
25
depends/patches/zeromq/remove_libstd_link.patch
Normal file
25
depends/patches/zeromq/remove_libstd_link.patch
Normal file
|
@ -0,0 +1,25 @@
|
|||
commit 47d4cd12a2c051815ddda78adebdb3923b260d8a
|
||||
Author: fanquake <fanquake@gmail.com>
|
||||
Date: Tue Aug 18 14:45:40 2020 +0800
|
||||
|
||||
Remove needless linking against libstdc++
|
||||
|
||||
This is broken for a number of reasons, including:
|
||||
- g++ understands "static-libstdc++ -lstdc++" to mean "link against
|
||||
whatever libstdc++ exists, probably shared", which in itself is buggy.
|
||||
- another stdlib (libc++ for example) may be in use
|
||||
|
||||
See #11981.
|
||||
|
||||
diff --git a/src/libzmq.pc.in b/src/libzmq.pc.in
|
||||
index 233bc3a..3c2bf0d 100644
|
||||
--- a/src/libzmq.pc.in
|
||||
+++ b/src/libzmq.pc.in
|
||||
@@ -7,6 +7,6 @@ Name: libzmq
|
||||
Description: 0MQ c++ library
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lzmq
|
||||
-Libs.private: -lstdc++ @pkg_config_libs_private@
|
||||
+Libs.private: @pkg_config_libs_private@
|
||||
Requires.private: @pkg_config_names_private@
|
||||
Cflags: -I${includedir} @pkg_config_defines@
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Note that this requires changes made by michilumin on the 1.14-dev branch as well as some changes to BDB.
|
||||
|
||||
Tested on OSX 10.11 El Capitan and 10.13 High Sierra.
|
||||
Tested on OSX 10.11 El Capitan, 10.13 High Sierra and 11.1 Big Sur.
|
||||
|
||||
**Paper wallet printing support seems to work fine through this method as well.**
|
||||
|
||||
|
@ -25,7 +25,7 @@ Make sure frameworks dir is properly owned...
|
|||
$sudo mkdir /usr/local/Frameworks
|
||||
$sudo chown $(whoami):admin /usr/local/Frameworks
|
||||
|
||||
Install Brew.
|
||||
Install Brew. (If you already have Brew installed, perform a 'brew update'.)
|
||||
|
||||
$/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
|
||||
|
@ -40,43 +40,37 @@ Install Boost lib via Brew from source, and link it to be sure:
|
|||
$brew install boost --build-from-source --HEAD
|
||||
$brew link boost167
|
||||
|
||||
### Get, Patch And Compile BDB 5.1 ###
|
||||
### Get, Patch And Compile BDB 5.3 ###
|
||||
|
||||
Download bdb 5.1.29 source from Oracle.
|
||||
Download bdb 5.3.28 source from Oracle.
|
||||
|
||||
$curl -o db-5.1.29.tar.gz http://download.oracle.com/berkeley-db/db-5.1.29.tar.gz
|
||||
$tar xvfz db-5.1.29.tar.gz
|
||||
$cd db-5.1.29
|
||||
$curl -o db-5.3.28.tar.gz http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz
|
||||
$tar xvfz db-5.3.28.tar.gz
|
||||
$cd db-5.3.28
|
||||
|
||||
Patch bdb 5.1.29 from our patchfiles
|
||||
|
||||
$cd src
|
||||
$cd dbinc
|
||||
$patch -b atomic.h ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/atomic.h.patch
|
||||
$cd ..
|
||||
$cd mp
|
||||
$patch -b mp_fget.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mp_fget.c.patch
|
||||
$patch -b mp_mvcc.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mp_mvcc.c.patch
|
||||
$patch -b mp_region.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mp_region.c.patch
|
||||
$cd ..
|
||||
$cd mutex
|
||||
$patch -b mut_method.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mut_method.c.patch
|
||||
$patch -b mut_tas.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mut_tas.c.patch
|
||||
|
||||
Build BDB 5.1.29
|
||||
Build BDB 5.3.28
|
||||
|
||||
$cd ../..
|
||||
$cd build_unix
|
||||
$../dist/configure CXX=clang++ --enable-cxx
|
||||
$make
|
||||
$sudo mkdir /usr/local/BerkeleyDB.5.1
|
||||
$sudo chown $(whoami):admin /usr/local/BerkeleyDB.5.1
|
||||
$sudo mkdir /usr/local/BerkeleyDB.5.3
|
||||
$sudo chown $(whoami):admin /usr/local/BerkeleyDB.5.3
|
||||
$sudo make install
|
||||
|
||||
### Set some environment variables and links for bdb and openssl ###
|
||||
|
||||
$export LDFLAGS=-L/usr/local/BerkeleyDB.5.1/lib
|
||||
$export CPPFLAGS=-I/usr/local/BerkeleyDB.5.1/include
|
||||
$export LDFLAGS=-L/usr/local/BerkeleyDB.5.3/lib
|
||||
$export CPPFLAGS=-I/usr/local/BerkeleyDB.5.3/include
|
||||
|
||||
_**NOTE:** for MacOS BigSur (11.1) or later, and possibly Catalina (10.15) you will also have to include the "OBJC_OLD_DISPATCH_PROTOTYPES=1" flag._
|
||||
|
||||
_So in this case you want the above export to be:_
|
||||
|
||||
$export CPPFLAGS="-I/usr/local/BerkeleyDB.5.3/include -DOBJC_OLD_DISPATCH_PROTOTYPES=1"
|
||||
|
||||
_(Note that the quotes are required.)_
|
||||
|
||||
$export INCPATHS=-I/usr/local/opt/openssl/include
|
||||
$export LIBPATHS=-L/usr/local/opt/openssl/lib
|
||||
$cd /usr/local/include
|
||||
|
|
|
@ -51,7 +51,7 @@ PROJECT_BRIEF = "P2P Digital Currency"
|
|||
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
|
||||
# the logo to the output directory.
|
||||
|
||||
PROJECT_LOGO = doc/bitcoin_logo_doxygen.png
|
||||
PROJECT_LOGO = doc/dogecoin_logo_doxygen.png
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
|
||||
# into which the generated documentation will be written. If a relative path is
|
||||
|
|
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 |
|
|
@ -1,46 +1,6 @@
|
|||
Dogecoin Core 0.14.2
|
||||
=====================
|
||||
|
||||
Setup
|
||||
---------------------
|
||||
[Dogecoin Core](http://dogecoin.com/) is the reference Dogecoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
|
||||
|
||||
Running
|
||||
---------------------
|
||||
The following are some helpful notes on how to run Dogecoin on your native platform.
|
||||
|
||||
### Unix
|
||||
|
||||
Unpack the files into a directory and run:
|
||||
|
||||
- `bin/dogecoin-qt` (GUI) or
|
||||
- `bin/dogecoind` (headless)
|
||||
|
||||
### Windows
|
||||
|
||||
Unpack the files into a directory, and then run dogecoin-qt.exe.
|
||||
|
||||
### OS X
|
||||
|
||||
Drag Dogecoin-Core to your applications folder, and then run Dogecoin-Core.
|
||||
|
||||
### Need Help?
|
||||
|
||||
* See the documentation at the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page)
|
||||
for help and more information.
|
||||
* Ask for help on [#dogecoin](http://webchat.freenode.net?channels=dogecoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=dogecoin).
|
||||
* Ask for help on the [BitcoinTalk](https://bitcointalk.org/) forums, in the [Dogecoin thread](https://bitcointalk.org/index.php?topic=361813.0).
|
||||
|
||||
Building
|
||||
---------------------
|
||||
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.
|
||||
|
||||
- [OS X Build Notes](build-osx.md)
|
||||
- [Unix Build Notes](build-unix.md)
|
||||
- [Windows Build Notes](build-windows.md)
|
||||
- [OpenBSD Build Notes](build-openbsd.md)
|
||||
- [Gitian Building Guide](gitian-building.md)
|
||||
|
||||
Development
|
||||
---------------------
|
||||
The Dogecoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
|
||||
|
|
|
@ -92,6 +92,6 @@ build process to remain somewhat deterministic. Here's how it works:
|
|||
that have been previously (deterministically) built in order to create a
|
||||
final dmg.
|
||||
- The Apple keyholder uses this unsigned app to create a detached signature,
|
||||
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/bitcoin-core/bitcoin-detached-sigs).
|
||||
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/dogecoin/dogecoin-detached-sigs).
|
||||
- Builders feed the unsigned app + detached signature back into Gitian. It
|
||||
uses the pre-built tools to recombine the pieces into a deterministic dmg.
|
||||
|
|
|
@ -48,9 +48,9 @@ Other
|
|||
### Assets Used
|
||||
src/qt/res/icons/about.png
|
||||
src/qt/res/icons/about_qt.png,
|
||||
src/qt/res/icons/bitcoin.icns
|
||||
src/qt/res/icons/bitcoin.ico,
|
||||
src/qt/res/icons/bitcoin.png
|
||||
src/qt/res/icons/dogecoin.icns
|
||||
src/qt/res/icons/dogecoin.ico,
|
||||
src/qt/res/icons/dogecoin.png
|
||||
src/qt/res/icons/clock*.png,
|
||||
src/qt/res/icons/connect*.png
|
||||
src/qt/res/icons/eye_minus.png,
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 3.2 KiB |
20
doc/build-archlinux.md
Normal file
20
doc/build-archlinux.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
Arch Linux build guide
|
||||
-----------------------------------
|
||||
|
||||
***NOTE: This documentation is outdated and needs to be updated***
|
||||
|
||||
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
|
||||
|
||||
pacman -S git base-devel boost libevent python
|
||||
git clone https://github.com/bitcoin/bitcoin.git
|
||||
cd bitcoin/
|
||||
./autogen.sh
|
||||
./configure --disable-wallet --without-gui --without-miniupnpc
|
||||
make check
|
||||
|
||||
Note:
|
||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
||||
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
|
||||
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Dogecoin Core distributions and independently built
|
||||
node software is desired, Berkeley DB 4.8 must be used.
|
20
doc/build-fedora.md
Normal file
20
doc/build-fedora.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
Fedora build dependencies
|
||||
--------------------------
|
||||
|
||||
***NOTE: This documentation is outdated and needs to be updated***
|
||||
|
||||
Build requirements:
|
||||
|
||||
sudo dnf install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
|
||||
|
||||
Optional:
|
||||
|
||||
sudo dnf install miniupnpc-devel
|
||||
|
||||
To build with Qt 5 (recommended) you need the following:
|
||||
|
||||
sudo dnf install qt5-qttools-devel qt5-qtbase-devel protobuf-devel
|
||||
|
||||
libqrencode (optional) can be installed with:
|
||||
|
||||
sudo dnf install qrencode-devel
|
37
doc/build-freebsd.md
Normal file
37
doc/build-freebsd.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
Building on FreeBSD
|
||||
--------------------
|
||||
|
||||
**Last tested with:** 1.14.5-dev (as of 18dbe32)
|
||||
**Tested on:** FreeBSD 11.4
|
||||
|
||||
Clang is installed by default as `cc` compiler, this makes it easier to get
|
||||
started than on other distros. Installing dependencies:
|
||||
|
||||
pkg install autoconf automake libtool pkgconf
|
||||
pkg install boost-libs openssl libevent
|
||||
pkg install gmake
|
||||
|
||||
You need to use GNU make (`gmake`) instead of `make`.
|
||||
(`libressl` instead of `openssl` will also work)
|
||||
|
||||
For the wallet (optional):
|
||||
|
||||
pkg install db5
|
||||
|
||||
As of writing, the default hardening routines will fail on the scrypt code, so
|
||||
currently, no hardened executables can be built, and the `--disable-hardening`
|
||||
flag is needed for successful compilation.
|
||||
|
||||
Then build using:
|
||||
|
||||
```bash
|
||||
./autogen.sh
|
||||
./configure --disable-hardening MAKE="gmake" \
|
||||
CFLAGS="-I/usr/local/include" CXXFLAGS="-I/usr/local/include -I/usr/local/include/db5" \
|
||||
LDFLAGS="-L/usr/local/lib -L/usr/local/lib/db5"
|
||||
gmake
|
||||
```
|
||||
|
||||
*Note on debugging*: The version of `gdb` installed by default is [ancient and considered harmful](https://wiki.freebsd.org/GdbRetirement).
|
||||
It is not suitable for debugging a multi-threaded C++ program, not even for getting backtraces. Please install the package `gdb` and
|
||||
use the versioned gdb command e.g. `gdb7111`.
|
23
doc/build-nixos.md
Normal file
23
doc/build-nixos.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
NixOS build guide
|
||||
------------------------------
|
||||
This guide lists the steps necessary to setup and build a full GUI distribution
|
||||
of the latest changes on NixOS.
|
||||
|
||||
Clone and enter the repo:
|
||||
|
||||
$ git clone https://github.com/dogecoin/dogecoin
|
||||
$ cd dogecoin
|
||||
|
||||
Enter the `nix-shell` environment with all the Dogecoin dependencies present:
|
||||
|
||||
$ nix-shell ./contrib/nixos/shell.nix
|
||||
|
||||
Run the build steps with flags necessary for NixOS:
|
||||
|
||||
$ ./autogen.sh
|
||||
$ ./configure --with-incompatible-bdb --with-boost-libdir="$(nix eval --raw nixpkgs.boost.out)/lib" --with-gui
|
||||
$ make
|
||||
|
||||
Start the GUI!
|
||||
|
||||
$ ./src/qt/dogecoin-qt
|
|
@ -1,5 +1,8 @@
|
|||
OpenBSD build guide
|
||||
======================
|
||||
|
||||
***NOTE: This documentation is outdated and needs to be updated***
|
||||
|
||||
(updated for OpenBSD 6.0)
|
||||
|
||||
This guide describes how to build dogecoind and command-line utilities on OpenBSD.
|
||||
|
@ -18,7 +21,7 @@ pkg_add automake # (select highest version, e.g. 1.15)
|
|||
pkg_add python # (select highest version, e.g. 3.5)
|
||||
```
|
||||
|
||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Dogecoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||
|
||||
GCC
|
||||
-------
|
||||
|
@ -39,7 +42,7 @@ Do not use `pkg_add boost`! The boost version installed thus is compiled using t
|
|||
...
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
This makes it necessary to build boost, or at least the parts used by Bitcoin Core, manually:
|
||||
This makes it necessary to build boost, or at least the parts used by Dogecoin Core, manually:
|
||||
|
||||
```
|
||||
# Pick some path to install boost to, here we create a directory within the dogecoin directory
|
||||
|
@ -108,7 +111,7 @@ The change will only affect the current shell and processes spawned by it. To
|
|||
make the change system-wide, change `datasize-cur` and `datasize-max` in
|
||||
`/etc/login.conf`, and reboot.
|
||||
|
||||
### Building Bitcoin Core
|
||||
### Building Dogecoin Core
|
||||
|
||||
**Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ Then install [Homebrew](https://brew.sh).
|
|||
Dependencies
|
||||
----------------------
|
||||
|
||||
brew install automake libtool boost --c++11 miniupnpc openssl pkg-config protobuf --c++11 qt5 libevent
|
||||
brew install berkeley-db # You need to make sure you install a version >= 5.1.29, but as close to 5.1.29 as possible. Check the homebrew docs to find out how to install older versions.
|
||||
brew install automake libtool boost miniupnpc openssl pkg-config protobuf qt5 libevent
|
||||
brew install berkeley-db # You need to make sure you install a version >= 5.3.28, but as close to 5.3.28 as possible. Check the homebrew docs to find out how to install older versions.
|
||||
|
||||
If you want to build the disk image with `make deploy` (.dmg / optional), you need RSVG
|
||||
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
UNIX BUILD NOTES
|
||||
====================
|
||||
Some notes on how to build Dogecoin Core in Unix.
|
||||
# Unix Build of Dogecoin Core
|
||||
|
||||
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
|
||||
This installation guide serves as a basis for all UNIX and UNIX-like operating
|
||||
systems. All examples in this guide are illustrated using an Ubuntu/Debian OS,
|
||||
and guides for different OSs can be found in separate documentation, as listed
|
||||
below.
|
||||
|
||||
Note
|
||||
---------------------
|
||||
Always use absolute paths to configure and compile Dogecoin and the dependencies,
|
||||
for example, when specifying the path of the dependency:
|
||||
1. [Install dependencies](#install-dependencies)
|
||||
* [Using packaged dependencies](#using-packaged-dependencies)
|
||||
* [Ubuntu & Debian example](#ubuntu--debian-example)
|
||||
2. [Build steps](#build-steps)
|
||||
3. [Build configuration](#build-configuration)
|
||||
* [Enable Qt GUI](#enable-qt-gui)
|
||||
* [Wallet](#wallet)
|
||||
* [Disable-wallet mode](#disable-wallet-mode)
|
||||
* [Miniupnpc](#miniupnpc)
|
||||
* [Security](#security)
|
||||
* [Memory requirements](#memory-requirements)
|
||||
4. [ARM Cross-compilation](#arm-cross-compilation)
|
||||
5. OS-specific documentation:
|
||||
* [Archlinux](build-archlinux.md)
|
||||
* [Fedora](build-fedora.md)
|
||||
* [FreeBSD](build-freebsd.md)
|
||||
* [NixOs](build-nixos.md)
|
||||
* [OpenBSD](build-openbsd.md)
|
||||
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||
## Install dependencies
|
||||
|
||||
Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures
|
||||
the usage of the absolute path.
|
||||
You must install required dependencies to build a basic Dogecoin daemon, optional dependencies may vary according to your requirements.
|
||||
|
||||
To Build
|
||||
---------------------
|
||||
Wallet is optional to run a node, see [Wallet](#wallet) section to enable them.
|
||||
|
||||
```bash
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
make install # optional
|
||||
```
|
||||
|
||||
This will build Dogecoin-Qt as well if the dependencies are met.
|
||||
|
||||
Dependencies
|
||||
---------------------
|
||||
|
||||
These dependencies are required:
|
||||
**Required dependencies :**
|
||||
|
||||
Library | Purpose | Description
|
||||
------------|------------------|----------------------
|
||||
|
@ -37,12 +38,12 @@ These dependencies are required:
|
|||
libboost | Utility | Library for threading, data structures, etc
|
||||
libevent | Networking | OS independent asynchronous networking
|
||||
|
||||
Optional dependencies:
|
||||
**Optional dependencies:**
|
||||
|
||||
Library | Purpose | Description
|
||||
------------|------------------|----------------------
|
||||
miniupnpc | UPnP Support | Firewall-jumping support
|
||||
libdb5.1 | Berkeley DB | Wallet storage (only needed when wallet enabled)
|
||||
libdb5.3 | Berkeley DB | Wallet storage (only needed when wallet enabled)
|
||||
qt | GUI | GUI toolkit (only needed when GUI enabled)
|
||||
protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when GUI enabled)
|
||||
libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled)
|
||||
|
@ -51,165 +52,127 @@ Optional dependencies:
|
|||
|
||||
For the versions used in the release, see [release-process.md](release-process.md) under *Fetch and build inputs*.
|
||||
|
||||
Memory Requirements
|
||||
--------------------
|
||||
### Using packaged dependencies
|
||||
|
||||
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
|
||||
memory available when compiling Dogecoin Core. On systems with less, gcc can be
|
||||
tuned to conserve memory with additional CXXFLAGS:
|
||||
Dogecoin Core's released binaries are built using the "depends system", which
|
||||
contains exact, tested versions of all dependencies. To create binaries that are
|
||||
using only fully tested dependencies, see the documentation in the
|
||||
[depends directory](../depends/README.md) and the
|
||||
[Release process documentation](release-process.md).
|
||||
|
||||
./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
|
||||
### Ubuntu & Debian example
|
||||
|
||||
Dependency Build Instructions: Ubuntu & Debian
|
||||
----------------------------------------------
|
||||
Build requirements:
|
||||
**Required dependencies** :
|
||||
```bash
|
||||
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
|
||||
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
|
||||
```
|
||||
|
||||
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
|
||||
**Optional dependencies** :
|
||||
```bash
|
||||
# Qt (required for dogecoin-qt GUI)
|
||||
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev
|
||||
|
||||
Options when installing required Boost library files:
|
||||
# BerkeleyDB (version 5.3)
|
||||
sudo apt install libdb5.3++-dev libdb5.3++ libdb5.3-dev
|
||||
|
||||
1. On at least Ubuntu 14.04+ and Debian 7+ there are generic names for the
|
||||
individual boost development packages, so the following can be used to only
|
||||
install necessary parts of boost:
|
||||
# ZMQ (provides ZMQ API 4.x)
|
||||
sudo apt-get install libzmq3-dev
|
||||
|
||||
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
|
||||
# Miniupnpc
|
||||
sudo apt-get install libminiupnpc-dev
|
||||
```
|
||||
|
||||
2. If that doesn't work, you can install all boost development packages with:
|
||||
## Build steps
|
||||
|
||||
sudo apt-get install libboost-all-dev
|
||||
According to installed dependencies, the following steps will compile `dogecoind`, `dogecoin-cli` and `dogecoin-qt`.
|
||||
|
||||
BerkeleyDB is required for the wallet.
|
||||
```bash
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
make install # optional
|
||||
```
|
||||
See [Build configuration](#build-configuration) for extra settings.
|
||||
|
||||
sudo apt-get install libdb5.1-dev libdb5.1++-dev
|
||||
## Build configuration
|
||||
|
||||
Note that if you have Berkeley DB 4.8 packages installed (i.e. for other
|
||||
wallet software), they are incompatible with the packages for 5.1. You
|
||||
will have to manually download 5.1 from
|
||||
http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz and compile
|
||||
it, install it to /usr/local where the configure script should locate it
|
||||
automatically.
|
||||
Configurations are done during the `./configure` step. Use `--help` to see all available options.
|
||||
|
||||
#### Enable Qt GUI
|
||||
Create `dogecoin-qt`, the core wallet GUI.
|
||||
```bash
|
||||
./configure --with-gui
|
||||
```
|
||||
|
||||
See the section "Disable-wallet mode" to build Dogecoin Core without wallet.
|
||||
#### Wallet
|
||||
BerkeleyDB is required for wallet functionality and use the `wallet.dat` file.
|
||||
|
||||
Optional (see --with-miniupnpc and --enable-upnp-default):
|
||||
By default, **Dogecoin Core expect BerkeleyDB 5.3**.
|
||||
You can use a different version by specifying `--with-incompatible-bdb` flag.
|
||||
|
||||
sudo apt-get install libminiupnpc-dev
|
||||
If no package is available for your distribution in optional dependencies, you can build BerkeleyDB from source :
|
||||
```bash
|
||||
# Install script for BerkeleyDB 5.3
|
||||
|
||||
ZMQ dependencies (provides ZMQ API 4.x):
|
||||
# BerkeleyDB installation directory
|
||||
BDB_PREFIX=$(pwd)/bdb
|
||||
mkdir $BDB_PREFIX
|
||||
|
||||
sudo apt-get install libzmq3-dev
|
||||
# Fetch the source and verify shasum
|
||||
wget 'http://download.oracle.com/berkeley-db/db-5.3.28.NC.tar.gz'
|
||||
echo '76a25560d9e52a198d37a31440fd07632b5f1f8f9f2b6d5438f4bc3e7c9013efdb-5.3.28.NC.tar.gz' | sha256sum -c
|
||||
|
||||
Dependencies for the GUI: Ubuntu & Debian
|
||||
-----------------------------------------
|
||||
# Extract sources
|
||||
tar -xzvf db-5.3.28.NC.tar.gz
|
||||
cd db-5.3.28.NC/build_unix/
|
||||
|
||||
If you want to build Dogecoin-Qt, make sure that the required packages for Qt development
|
||||
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
|
||||
If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass `--with-gui=qt4` to configure to choose Qt4.
|
||||
To build without GUI pass `--without-gui`.
|
||||
# Apply patch (see https://gist.github.com/danieldk/5700533)
|
||||
sed -i 's/__atomic_compare_exchange/__atomic_compare_exchange_db/g' ../src/dbinc/atomic.h
|
||||
|
||||
To build with Qt 5 (recommended) you need the following:
|
||||
# Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime
|
||||
../dist/configure --prefix=$BDB_PREFIX --enable-cxx --disable-shared --with-pic
|
||||
make install
|
||||
```
|
||||
|
||||
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
|
||||
Then use `LDFLAGS` and `CPPFLAGS` during configuration to link the database :
|
||||
```bash
|
||||
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/"
|
||||
```
|
||||
|
||||
Alternatively, to build with Qt 4 you need the following:
|
||||
#### Disable-wallet mode
|
||||
When the intention is to run only a P2P node without a wallet, Dogecoin may be compiled in
|
||||
disable-wallet mode with:
|
||||
|
||||
sudo apt-get install libqt4-dev libprotobuf-dev protobuf-compiler
|
||||
```bash
|
||||
./configure --disable-wallet
|
||||
```
|
||||
|
||||
libqrencode (optional) can be installed with:
|
||||
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
|
||||
call, not `getwork`.
|
||||
|
||||
sudo apt-get install libqrencode-dev
|
||||
|
||||
Once these are installed, they will be found by configure and a dogecoin-qt executable will be
|
||||
built by default.
|
||||
|
||||
Dependency Build Instructions: Fedora
|
||||
-------------------------------------
|
||||
Build requirements:
|
||||
|
||||
sudo dnf install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
|
||||
|
||||
Optional:
|
||||
|
||||
sudo dnf install miniupnpc-devel
|
||||
|
||||
To build with Qt 5 (recommended) you need the following:
|
||||
|
||||
sudo dnf install qt5-qttools-devel qt5-qtbase-devel protobuf-devel
|
||||
|
||||
libqrencode (optional) can be installed with:
|
||||
|
||||
sudo dnf install qrencode-devel
|
||||
|
||||
Notes
|
||||
-----
|
||||
The release is built with GCC and then "strip dogecoind" to strip the debug
|
||||
symbols, which reduces the executable size by about 90%.
|
||||
|
||||
|
||||
miniupnpc
|
||||
---------
|
||||
#### Miniupnpc
|
||||
|
||||
[miniupnpc](http://miniupnp.free.fr/) may be used for UPnP port mapping. It can be downloaded from [here](
|
||||
http://miniupnp.tuxfamily.org/files/). UPnP support is compiled in and
|
||||
turned off by default. See the configure options for upnp behavior desired:
|
||||
|
||||
--without-miniupnpc No UPnP support miniupnp not required
|
||||
--disable-upnp-default (the default) UPnP support turned off by default at runtime
|
||||
--enable-upnp-default UPnP support turned on by default at runtime
|
||||
|
||||
|
||||
Berkeley DB
|
||||
-----------
|
||||
It is recommended to use Berkeley DB 5.1. If you have to build it yourself:
|
||||
|
||||
```bash
|
||||
BITCOIN_ROOT=$(pwd)
|
||||
|
||||
# Pick some path to install BDB to, here we create a directory within the dogecoin directory
|
||||
BDB_PREFIX="${BITCOIN_ROOT}/db5"
|
||||
mkdir -p $BDB_PREFIX
|
||||
|
||||
# Fetch the source and verify that it is not tampered with
|
||||
wget 'http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz'
|
||||
echo '08238e59736d1aacdd47cfb8e68684c695516c37f4fbe1b8267dde58dc3a576c db-5.1.29.NC.tar.gz' | sha256sum -c
|
||||
# -> db-5.1.29.NC.tar.gz: OK
|
||||
tar -xzvf db-5.1.29.NC.tar.gz
|
||||
|
||||
# Build the library and install to our prefix
|
||||
cd db-5.1.29.NC/build_unix/
|
||||
# Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||
make install
|
||||
|
||||
# Configure Dogecoin Core to use our own-built instance of BDB
|
||||
cd $BITCOIN_ROOT
|
||||
./autogen.sh
|
||||
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)
|
||||
--without-miniupnpc #No UPnP support miniupnp not required
|
||||
--disable-upnp-default #(the default) UPnP support turned off by default at runtime
|
||||
--enable-upnp-default #UPnP support turned on by default at runtime
|
||||
```
|
||||
|
||||
**Note**: You only need Berkeley DB if the wallet is enabled (see the section *Disable-Wallet mode* below).
|
||||
|
||||
Boost
|
||||
-----
|
||||
If you need to build Boost yourself:
|
||||
|
||||
sudo su
|
||||
./bootstrap.sh
|
||||
./bjam install
|
||||
|
||||
|
||||
Security
|
||||
--------
|
||||
#### Security
|
||||
To help make your Dogecoin installation more secure by making certain attacks impossible to
|
||||
exploit even if a vulnerability is found, binaries are hardened by default.
|
||||
This can be disabled with:
|
||||
|
||||
Hardening Flags:
|
||||
|
||||
./configure --enable-hardening
|
||||
./configure --disable-hardening
|
||||
|
||||
```bash
|
||||
./configure --enable-hardening
|
||||
./configure --disable-hardening
|
||||
```
|
||||
|
||||
Hardening enables the following features:
|
||||
|
||||
|
@ -221,16 +184,15 @@ Hardening enables the following features:
|
|||
randomly located as well.
|
||||
|
||||
On an AMD64 processor where a library was not compiled with -fPIC, this will cause an error
|
||||
such as: "relocation R_X86_64_32 against `......' can not be used when making a shared object;"
|
||||
such as: `relocation R_X86_64_32 against '......' can not be used when making a shared object;`
|
||||
|
||||
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
|
||||
|
||||
scanelf -e ./dogecoin
|
||||
`scanelf -e ./dogecoin`
|
||||
|
||||
The output should contain:
|
||||
|
||||
TYPE
|
||||
ET_DYN
|
||||
`TYPE ET_DYN`
|
||||
|
||||
* Non-executable Stack
|
||||
If the stack is executable, trivial stack-based buffer overflow exploits are possible if
|
||||
|
@ -243,101 +205,39 @@ Hardening enables the following features:
|
|||
`scanelf -e ./dogecoin`
|
||||
|
||||
the output should contain:
|
||||
STK/REL/PTL
|
||||
RW- R-- RW-
|
||||
`STK/REL/PTL RW- R-- RW-`
|
||||
|
||||
The STK RW- means that the stack is readable and writeable, but not executable.
|
||||
|
||||
Disable-wallet mode
|
||||
--------------------
|
||||
When the intention is to run only a P2P node without a wallet, Dogecoin may be compiled in
|
||||
disable-wallet mode with:
|
||||
|
||||
./configure --disable-wallet
|
||||
|
||||
In this case there is no dependency on Berkeley DB 4.8.
|
||||
|
||||
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
|
||||
call, not `getwork`.
|
||||
|
||||
Additional Configure Flags
|
||||
--------------------------
|
||||
A list of additional configure flags can be displayed with:
|
||||
|
||||
./configure --help
|
||||
The `STK RW-` means that the stack is readable and writeable, but not executable.
|
||||
|
||||
|
||||
Setup and Build Example: Arch Linux
|
||||
-----------------------------------
|
||||
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
|
||||
#### Memory Requirements
|
||||
|
||||
pacman -S git base-devel boost libevent python
|
||||
git clone https://github.com/bitcoin/bitcoin.git
|
||||
cd bitcoin/
|
||||
./autogen.sh
|
||||
./configure --disable-wallet --without-gui --without-miniupnpc
|
||||
make check
|
||||
C++ compilers are memory-hungry. It is recommended to have at
|
||||
least 1.5 GB of memory available when compiling Dogecoin Core.
|
||||
On systems with less, gcc can be tuned to conserve memory with additional CXXFLAGS:
|
||||
|
||||
Note:
|
||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
||||
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
|
||||
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Dogecoin Core distributions and independently built
|
||||
node software is desired, Berkeley DB 4.8 must be used.
|
||||
```bash
|
||||
./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
|
||||
```
|
||||
|
||||
## ARM Cross-compilation
|
||||
|
||||
ARM Cross-compilation
|
||||
-------------------
|
||||
These steps can be performed on, for example, an Ubuntu VM. The depends system
|
||||
will also work on other Linux distributions, however the commands for
|
||||
installing the toolchain will be different.
|
||||
|
||||
Make sure you install the build requirements mentioned above.
|
||||
Then, install the toolchain and curl:
|
||||
|
||||
sudo apt-get install g++-arm-linux-gnueabihf curl
|
||||
```bash
|
||||
sudo apt-get install g++-arm-linux-gnueabihf curl
|
||||
```
|
||||
|
||||
To build executables for ARM:
|
||||
|
||||
cd depends
|
||||
make HOST=arm-linux-gnueabihf NO_QT=1
|
||||
cd ..
|
||||
./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
|
||||
make
|
||||
|
||||
|
||||
```bash
|
||||
cd depends
|
||||
make HOST=arm-linux-gnueabihf NO_QT=1
|
||||
cd ..
|
||||
./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
|
||||
make
|
||||
```
|
||||
For further documentation on the depends system see [README.md](../depends/README.md) in the depends directory.
|
||||
|
||||
Building on FreeBSD
|
||||
--------------------
|
||||
|
||||
(Updated as of FreeBSD 11.0)
|
||||
|
||||
Clang is installed by default as `cc` compiler, this makes it easier to get
|
||||
started than on [OpenBSD](build-openbsd.md). Installing dependencies:
|
||||
|
||||
pkg install autoconf automake libtool pkgconf
|
||||
pkg install boost-libs openssl libevent
|
||||
pkg install gmake
|
||||
|
||||
You need to use GNU make (`gmake`) instead of `make`.
|
||||
(`libressl` instead of `openssl` will also work)
|
||||
|
||||
For the wallet (optional):
|
||||
|
||||
pkg install db5
|
||||
|
||||
This will give a warning "configure: WARNING: Found Berkeley DB other
|
||||
than 4.8; wallets opened by this build will not be portable!", but as FreeBSD never
|
||||
had a binary release, this may not matter. If backwards compatibility
|
||||
with 4.8-built Dogecoin Core is needed follow the steps under "Berkeley DB" above.
|
||||
|
||||
Then build using:
|
||||
|
||||
./autogen.sh
|
||||
./configure --with-incompatible-bdb BDB_CFLAGS="-I/usr/local/include/db5" BDB_LIBS="-L/usr/local/lib -ldb_cxx-5"
|
||||
gmake
|
||||
|
||||
*Note on debugging*: The version of `gdb` installed by default is [ancient and considered harmful](https://wiki.freebsd.org/GdbRetirement).
|
||||
It is not suitable for debugging a multi-threaded C++ program, not even for getting backtraces. Please install the package `gdb` and
|
||||
use the versioned gdb command e.g. `gdb7111`.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
WINDOWS BUILD NOTES
|
||||
====================
|
||||
|
||||
Below are some notes on how to build Bitcoin Core for Windows.
|
||||
Below are some notes on how to build Dogecoin Core for Windows.
|
||||
|
||||
Most developers use cross-compilation from Ubuntu to build executables for
|
||||
Windows. This is also used to build the release binaries.
|
||||
|
@ -26,18 +26,15 @@ Windows](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide).
|
|||
|
||||
To get the bash shell, you must first activate the feature in Windows.
|
||||
|
||||
1. Turn on Developer Mode
|
||||
* Open Settings -> Update and Security -> For developers
|
||||
* Select the Developer Mode radio button
|
||||
* Restart if necessary
|
||||
2. Enable the Windows Subsystem for Linux feature
|
||||
* From Start, search for "Turn Windows features on or off" (type 'turn')
|
||||
* Select Windows Subsystem for Linux (beta)
|
||||
* Click OK
|
||||
* Restart if necessary
|
||||
1. Enable the Windows Subsystem for Linux feature
|
||||
* Open the Windows Features dialog (`OptionalFeatures.exe`)
|
||||
* Enable 'Windows Subsystem for Linux'
|
||||
* Click 'OK' and restart if necessary
|
||||
2. Install Ubuntu
|
||||
* Open Microsoft Store and search for "Ubuntu 18.04" or use [this link](https://www.microsoft.com/store/productId/9N9TNGVNDL3Q)
|
||||
* Click Install
|
||||
3. Complete Installation
|
||||
* Open a cmd prompt and type "bash"
|
||||
* Accept the license
|
||||
* Open a cmd prompt and type "Ubuntu1804"
|
||||
* Create a new UNIX user account (this is a separate account from your Windows account)
|
||||
|
||||
After the bash shell is active, you can follow the instructions below, starting
|
||||
|
@ -53,7 +50,13 @@ installing the toolchain will be different.
|
|||
|
||||
First, install the general dependencies:
|
||||
|
||||
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git
|
||||
|
||||
If you want to build with the wallet and Qt GUI you also want to install the following (this example is under Ubuntu):
|
||||
|
||||
sudo apt-get install libssl-dev libboost-all-dev qt5-default libprotobuf-dev libqrencode4 libdb++-dev libdb-dev miniupnpc
|
||||
|
||||
A host toolchain (`build-essential`) is necessary because some dependency
|
||||
packages (such as `protobuf`) need to build host utilities that are used in the
|
||||
|
@ -63,9 +66,35 @@ build process.
|
|||
|
||||
To build executables for Windows 64-bit, install the following dependencies:
|
||||
|
||||
sudo apt-get install g++-mingw-w64-x86-64 mingw-w64-x86-64-dev
|
||||
sudo apt-get install g++-mingw-w64-x86-64
|
||||
|
||||
Then build using:
|
||||
For Ubuntu 18.04 and 20.04, set the default mingw32 g++ compiler option to posix:
|
||||
|
||||
sudo update-alternatives --config x86_64-w64-mingw32-g++
|
||||
|
||||
...Choose the "posix" (vs 'auto' or 'win32') option, and continue.
|
||||
|
||||
Note that for WSL v1 the Dogecoin Core source path MUST be somewhere in the default mount file system, for
|
||||
example /usr/src/dogecoin, AND not under, for example, /mnt/d/dogecoin.
|
||||
|
||||
If this is not the case the dependency autoconf scripts will fail (silently.)
|
||||
This means you cannot use a directory that is located directly on the host Windows file system to perform the build.
|
||||
|
||||
If using WSL 1, you'll need to turn off WSL Support for Win32 applications temporarily, or you will get ABI errors and format errors for some .o files.
|
||||
|
||||
If using WSL 1 then build using:
|
||||
|
||||
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
|
||||
sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" # Temporarily Disable WSL support for Win32 applications.
|
||||
cd depends
|
||||
make HOST=x86_64-w64-mingw32
|
||||
cd ..
|
||||
./autogen.sh
|
||||
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/
|
||||
make
|
||||
sudo bash -c "echo 1 > /proc/sys/fs/binfmt_misc/status" # Re-Enable WSL support for Win32 applications.
|
||||
|
||||
If using WSL 2 then you should be able to build just with:
|
||||
|
||||
cd depends
|
||||
make HOST=x86_64-w64-mingw32
|
||||
|
@ -73,7 +102,7 @@ Then build using:
|
|||
./autogen.sh # not required when building from tarball
|
||||
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/
|
||||
make
|
||||
|
||||
|
||||
## Building for 32-bit Windows
|
||||
|
||||
To build executables for Windows 32-bit, install the following dependencies:
|
||||
|
@ -99,6 +128,6 @@ Installation
|
|||
After building using the Windows subsystem it can be useful to copy the compiled
|
||||
executables to a directory on the windows drive in the same directory structure
|
||||
as they appear in the release `.zip` archive. This can be done in the following
|
||||
way. This will install to `c:\workspace\bitcoin`, for example:
|
||||
way. This will install to `c:\workspace\dogecoin`, for example:
|
||||
|
||||
make install DESTDIR=/mnt/c/workspace/bitcoin
|
||||
make install DESTDIR=/mnt/c/workspace/dogecoin
|
||||
|
|
BIN
doc/dogecoin_logo_doxygen.png
Normal file
BIN
doc/dogecoin_logo_doxygen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
71
doc/fee-recommendation.md
Normal file
71
doc/fee-recommendation.md
Normal file
|
@ -0,0 +1,71 @@
|
|||
Dogecoin Fee Recommendation
|
||||
----------------------------
|
||||
|
||||
_last updated for 1.14.5_
|
||||
|
||||
The Dogecoin chain has a relatively low block interval, 1 megabyte blockspace
|
||||
and aims to provide a cheap means for people to transact. Therefore, the biggest
|
||||
threat to the Dogecoin chain as a whole is spam and in 2014, a transaction fee
|
||||
and dust disincentive were introduced, to combat on-chain spam.
|
||||
|
||||
Dogecoin Core implements a number of defaults into the software that reflect the
|
||||
developers' recommendations towards fees and dust limits, that at the moment of
|
||||
release represent the developers best estimate of how these limits should be
|
||||
parametrized. The recommended defaults, as implemented in the Dogecoin Core
|
||||
wallet, are:
|
||||
|
||||
- **0.01 DOGE per kilobyte** transaction fee
|
||||
- **1.00 DOGE** dust limit (discard threshold)
|
||||
- **0.001 DOGE** replace-by-fee increments
|
||||
|
||||
The wallet rejects transactions that have outputs under the dust limit, and
|
||||
discards change to fee if it falls under this limit.
|
||||
|
||||
Note: The recommended dust limit is expected to be lowered in a follow-up
|
||||
release, once enough miners and relay nodes have adopted newly introduced
|
||||
relay dust limits touched upon below.
|
||||
|
||||
Note: In the past, Dogecoin has enforced a rounding function in the fee
|
||||
mechanism. As of version 1.14.5, this is no longer the case, and fees are
|
||||
calculated over the exact size of a transaction. For example, a 192 byte
|
||||
transaction only has to pay `0.01 / 1000 * 192 = 0.00192` DOGE fee.
|
||||
|
||||
## Miner default inclusion policies
|
||||
|
||||
The default values for miners to include a transaction in a block has been set
|
||||
to exactly the recommended fee of **0.01 DOGE/kB.** Dust limits are defined by
|
||||
the miner's mempool policy, see below.
|
||||
|
||||
## Relay and mempool policies
|
||||
|
||||
The relay and mempool acceptance policies are lower than the recommendations
|
||||
by default, to allow for a margin to change recommendations in the future (or
|
||||
user preference) without the need for an adopted software release in advance.
|
||||
This greatly simplifies future policy recommendations. As historically, most
|
||||
relay nodes do not change these default settings, these often represent an
|
||||
absolute mininum
|
||||
|
||||
### Transaction fee
|
||||
|
||||
The default minimum transaction fee for relay is set at **0.001 DOGE/kB**,
|
||||
exactly one-tenth of the recommended fee. This gives miners and relay operators
|
||||
a 10x downward margin to operate within from a spam management perspective.
|
||||
|
||||
### Dust limits
|
||||
|
||||
The mempool logic implements 2 dust limits, a hard dust limit under which a
|
||||
transactions is considered non-standard and rejected, and a soft dust limit
|
||||
that requires the limit itself to be added to the transaction fee, making the
|
||||
output economically unviable.
|
||||
|
||||
- The hard dust limit is set at **0.001 DOGE** - outputs under this value are
|
||||
invalid and rejected.
|
||||
- The soft dust limit is set at **0.01 DOGE** - sending a transaction with outputs
|
||||
under this value, are required to add 0.01 DOGE for each such output, or else
|
||||
will be considered to have too low fee and be rejected.
|
||||
|
||||
### Replace-by-fee and mempool limiting increments
|
||||
|
||||
The increments used for replace-by-fee and limiting the mempool once it has
|
||||
reached its locally defined maximum size, is by default set at one-tenth of
|
||||
the relay fee, or **0.0001 DOGE**.
|
98
doc/files.md
98
doc/files.md
|
@ -1,31 +1,75 @@
|
|||
# Dogecoin Core file system
|
||||
|
||||
* banlist.dat: stores the IPs/Subnets of banned nodes
|
||||
* dogecoin.conf: contains configuration settings for dogecoind or dogecoin-qt
|
||||
* dogecoind.pid: stores the process id of dogecoind while running
|
||||
* blocks/blk000??.dat: block data (custom, 128 MiB per file); since 0.8.0
|
||||
* blocks/rev000??.dat; block undo data (custom); since 0.8.0 (format changed since pre-0.8)
|
||||
* blocks/index/*; block index (LevelDB); since 0.8.0
|
||||
* chainstate/*; block chain state database (LevelDB); since 0.8.0
|
||||
* database/*: BDB database environment; only used for wallet since 0.8.0
|
||||
* db.log: wallet database log file
|
||||
* debug.log: contains debug information and general logging generated by dogecoind or dogecoin-qt
|
||||
* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation; since 0.10.0
|
||||
* mempool.dat: dump of the mempool's transactions; since 0.14.0.
|
||||
* peers.dat: peer IP address database (custom format); since 0.7.0
|
||||
* wallet.dat: personal wallet (BDB) with keys and transactions
|
||||
* .cookie: session RPC authentication cookie (written at start when cookie authentication is used, deleted on shutdown): since 0.12.0
|
||||
* onion_private_key: cached Tor hidden service private key for `-listenonion`: since 0.12.0
|
||||
**Contents**
|
||||
|
||||
Only used in pre-0.8.0
|
||||
---------------------
|
||||
* blktree/*; block chain index (LevelDB); since pre-0.8, replaced by blocks/index/* in 0.8.0
|
||||
* coins/*; unspent transaction output database (LevelDB); since pre-0.8, replaced by chainstate/* in 0.8.0
|
||||
- [Data directory location](#data-directory-location)
|
||||
- [Data directory layout](#data-directory-layout)
|
||||
- [GUI settings](#gui-settings)
|
||||
- [Legacy subdirectories and files](#legacy-subdirectories-and-files)
|
||||
- [Notes](#notes)
|
||||
|
||||
Only used before 0.8.0
|
||||
---------------------
|
||||
* blkindex.dat: block chain index database (BDB); replaced by {chainstate/*,blocks/index/*,blocks/rev000??.dat} in 0.8.0
|
||||
* blk000?.dat: block data (custom, 2 GiB per file); replaced by blocks/blk000??.dat in 0.8.0
|
||||
## Data directory location
|
||||
|
||||
Only used before 0.7.0
|
||||
---------------------
|
||||
* addr.dat: peer IP address database (BDB); replaced by peers.dat in 0.7.0
|
||||
The data directory is the default location where the Dogecoin Core files are stored.
|
||||
|
||||
1. The default data directory paths for supported platforms are:
|
||||
|
||||
Platform | Data directory path
|
||||
---------|--------------------
|
||||
Linux | `$HOME/.dogecoin/`
|
||||
macOS | `$HOME/Library/Application Support/Dogecoin/`
|
||||
Windows | `%APPDATA%\Dogecoin\` <sup>[\[1\]](#note1)</sup>
|
||||
|
||||
2. A custom data directory path can be specified with the `-datadir` option.
|
||||
|
||||
3. All content of the data directory, except for the `dogecoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ:
|
||||
|
||||
Chain | Data directory path
|
||||
--------------|------------------------------
|
||||
(default) | *path_to_datadir*`/`
|
||||
`-testnet` | *path_to_datadir*`/testnet3/`
|
||||
`-regtest` | *path_to_datadir*`/regtest/`
|
||||
|
||||
## Data directory layout
|
||||
|
||||
Subdirectory | File(s) | Description
|
||||
-------------------|-----------------------|------------
|
||||
`blocks/` | | Blocks directory
|
||||
`blocks/index/` | LevelDB database | Block and transaction indices
|
||||
`blocks/` | `blkNNNNN.dat` | Actual blocks (in network format, dumped in raw on disk, 128 MiB per file)
|
||||
`blocks/` | `revNNNNN.dat` | Block undo data (custom format)
|
||||
`chainstate/` | LevelDB database | Blockchain state, a.k.a UTXO database
|
||||
`./` | `anchors.dat` | Anchor IP address database, created on shutdown and deleted at startup. Anchors are last known outgoing block-relay-only peers that are tried to re-connect to on startup
|
||||
`./` | `banlist.dat` | Stores the IPs/subnets of banned nodes
|
||||
`./` | `dogecoin.conf` | User-defined configuration settings for `dogecoind` or `dogecoin-qt`; can be specified by `-conf` option
|
||||
`./` | `dogecoind.pid` | Stores the process ID (PID) of `dogecoind` or `dogecoin-qt` while running; can be specified by `-pid` option
|
||||
`./` | `debug.log` | Contains debug information and general logging generated by `dogecoind` or `dogecoin-qt`
|
||||
`./` | `fee_estimates.dat` | Stores statistics used to estimate smart transaction fees and priorities required for confirmation
|
||||
`./` | `mempool.dat` | Dump of the mempool's transactions
|
||||
`./` | `onion_private_key` | Cached Tor onion service private key for `-listenonion` option
|
||||
`./` | `peers.dat` | Peer IP address database
|
||||
`./` | `.cookie` | Session RPC authentication cookie; if used, created at start and deleted on shutdown; can be specified by `-rpccookiefile` option
|
||||
`./` | `.lock` | Data directory lock file
|
||||
`./` | `db.log` | BDB error file
|
||||
`./` | `wallet.dat` | Personal wallet (a BDB database) with keys and transactions
|
||||
`./` | `.walletlock` | BDB wallet lock file
|
||||
|
||||
## GUI settings
|
||||
|
||||
`dogecoin-qt` uses the [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored).
|
||||
|
||||
## Legacy subdirectories and files
|
||||
|
||||
These subdirectories and files are no longer used by Dogecoin Core:
|
||||
|
||||
Path | Description
|
||||
---------------|-------------
|
||||
`blktree/` | Blockchain index; replaced by `blocks/index/` in 1.10.0
|
||||
`coins/` | Unspent transaction output database; replaced by `chainstate/` in 1.10.0
|
||||
`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`} in 1.10.0
|
||||
`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat` in 1.10.0
|
||||
`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in 1.7.0
|
||||
|
||||
## Notes
|
||||
|
||||
<a name="note1">1</a>. The `/` (slash, U+002F) is used as the platform-independent path component separator in this document.
|
||||
|
|
386
doc/getting-started.md
Normal file
386
doc/getting-started.md
Normal file
|
@ -0,0 +1,386 @@
|
|||
## Getting started
|
||||
|
||||
This tutorial will help you to go through the basics to use Dogecoin Core after you completed the [installation instructions](/INSTALL.md). You now have `dogecoind` or `dogecoin-qt` executables available to run a node, and `dogecoin-cli`/`dogecoin-tx` tools to help you transact DOGE.
|
||||
|
||||
> **Note:** For simplicity, this guide assumes that executables can be found under the `PATH` environment variable.
|
||||
If needed, you can specify their location by typing `PATH=$PATH:/path/to/executables`, or prepend the full path to the command like:
|
||||
> ```console
|
||||
> shibetoshi:~$ /path/to/dogecoin-cli [arguments ...]
|
||||
> ```
|
||||
|
||||
### Table of contents
|
||||
|
||||
1. [Starting a dogecoin node](#starting-a-dogecoin-node)
|
||||
2. [Introduction to the JSON-RPC API](#introduction-to-the-json-rpc-api)
|
||||
* [Creating a wallet](#creating-a-wallet)
|
||||
* [Verifying your balance](#verifying-your-balance)
|
||||
* [Sending transactions](#sending-transactions)
|
||||
* [Inspecting blocks and transactions](#inspecting-blocks-and-transactions)
|
||||
3. [Node configuration](#node-configuration)
|
||||
* [Mainnet, testnet and regtest](#mainnet-testnet-and-regtest)
|
||||
* [Data directory](#data-directory)
|
||||
* [RPC credentials](#rpc-credentials)
|
||||
* [Ports](#ports)
|
||||
* [Memory](#memory)
|
||||
* [Troubleshooting](#troubleshooting)
|
||||
|
||||
## Starting a Dogecoin node
|
||||
|
||||
To start your node, you can run an headless server using `dogecoind`:
|
||||
```console
|
||||
shibetoshi:~$ dogecoind -daemon
|
||||
```
|
||||
|
||||
Or you can use the Graphical User Interface (GUI), `dogecoin-qt`:
|
||||
```console
|
||||
shibetoshi:~$ dogecoin-qt
|
||||
```
|
||||
|
||||
Detailed logging is recorded in `debug.log`, located in the [data directory](#data-directory).
|
||||
*Use `-help` to see all available options for each executable.*
|
||||
|
||||
Your node is now running and starts with a *synchronization process* that downloads the entire blockchain from other nodes. This operation will take many hours to complete, but you are now part of the Dogecoin network!
|
||||
|
||||
> **Note:** The rest of this guide assumes the use of an headless node. The RPC server is not exposed with `dogecoin-qt` until you activate the `-server` option as a startup argument, but inside the GUI application, you can use all the commands explored below (without `dogecoin-cli`) by going to `Help -> Debug window` and inside the popup window selecting the tab `Console`.
|
||||
|
||||
## Introduction to the JSON-RPC API
|
||||
|
||||
Dogecoin Core exposes a JSON-RPC interface that allows you to request information about the network, blockchain and individual transactions, send transactions to the networks and manage your wallet.
|
||||
|
||||
The Dogecoin Core installation provides the `dogecoin-cli` tool to interact with the JSON-RPC from the command line, and the interface is exposed over HTTP on port `22555`, so that other tools and libraries can interact with it.
|
||||
|
||||
To have an overview of the available commands, use the `help` command:
|
||||
|
||||
```console
|
||||
#List all commands
|
||||
shibetoshi:~$ dogecoin-cli help
|
||||
|
||||
#Get help for a specific command
|
||||
shibetoshi:~$ dogecoin-cli help COMMAND
|
||||
```
|
||||
|
||||
Some commands are different, but it's possible to use the [bitcoin RPC API documentation](https://developer.bitcoin.org/reference/rpc/).
|
||||
|
||||
### Creating a wallet
|
||||
|
||||
To receive DOGE, you need an address that is securely derived from a private key through a series of automatic, cryptographic operations. The *address* can be shared with anyone to receive DOGE, but the *private key* is sensitive information that allows anyone that knows it to spend the DOGE on the associated address.
|
||||
|
||||
By default, the Dogecoin Core software will automatically create an address for you and securely store the private key in the wallet file.
|
||||
|
||||
You can list wallet addresses using `getaddressesbyaccount`:
|
||||
|
||||
```console
|
||||
shibetoshi:~$ dogecoin-cli getaddressesbyaccount ""
|
||||
[
|
||||
"DA2fBazU8Y4epNJ2fQRZCcWpxKZY9HrhLN"
|
||||
]
|
||||
```
|
||||
|
||||
Using `getnewaddress` will generate a new wallet address:
|
||||
```console
|
||||
shibetoshi:~$ dogecoin-cli getnewaddress
|
||||
DNnGtXk9khadE7EKCmQzxjnehenX92PKAv
|
||||
```
|
||||
|
||||
Private keys are stored in the `wallet.dat` file. You can use `backupwallet` to save a copy:
|
||||
|
||||
```console
|
||||
shibetoshi:~$ dogecoin-cli backupwallet /path/of/wallet/backup
|
||||
```
|
||||
|
||||
**Tip:** Dogecoin addresses start with the letter `D`.
|
||||
|
||||
You now have two wallet addresses to share with other people to receive DOGE! Consider avoiding [address reuse](https://en.bitcoin.it/wiki/Address_reuse) for anonymity and security reasons.
|
||||
|
||||
### Verifying your balance
|
||||
|
||||
The total balance of all addresses held in your wallet can be found with the `getbalance` command.
|
||||
|
||||
```console
|
||||
#Syntax
|
||||
shibetoshi:~$ dogecoin-cli getbalance "*" minconf
|
||||
```
|
||||
|
||||
`minconf` stands for minimum confirmations.
|
||||
For example, to see current balance with transaction having at least 5 confirmations:
|
||||
|
||||
```console
|
||||
shibetoshi:~$ dogecoin-cli getbalance "*" 5
|
||||
421.552000
|
||||
```
|
||||
|
||||
### Sending transactions
|
||||
|
||||
Dogecoin implements the [Unspent Transaction Output (UTXO)](https://en.wikipedia.org/wiki/Unspent_transaction_output) model to track which amounts of coin belong to an address. Owning DOGE means that you know the private key(s) to addresses that are associated with unspent outputs. To spend them, you have to compose a new transaction that spends the value from currently unspent outputs to new outputs.
|
||||
|
||||
##### sendtoaddress
|
||||
|
||||
It's possible to use a single command to create, sign and send a transaction :
|
||||
```console
|
||||
#Syntax
|
||||
shibetoshi:~$ dogecoin-cli sendtoaddress address amount
|
||||
|
||||
#Example
|
||||
shibetoshi:~$ dogecoin-cli sendtoaddress nWSYUqtimF7B6qW4GBdczaG6jvqKutS1Nh 420
|
||||
```
|
||||
|
||||
So much spending power !
|
||||
|
||||
Alternatively, four commands are needed to manually create a transaction: `listunspent`, `createrawtransaction`, `signrawtransaction` and `sendrawtransaction`.
|
||||
|
||||
##### listunspent
|
||||
|
||||
This displays a list of UTXOs associated to addresses kept in the wallet.
|
||||
|
||||
```console
|
||||
#Syntax
|
||||
shibetoshi:~$ dogecoin-cli listunspent minconf maxconf '["address", ...]'
|
||||
|
||||
#Example
|
||||
shibetoshi:~$ dogecoin-cli listunspent 1 9999999 '["nnJDY1xCRgWQc7vBXHUPMPsEynuZW23Y3P"]'
|
||||
[
|
||||
{
|
||||
"txid": "b869ed6606d52e6446dc12db02cf868ab693dd5b9f661116269536f0f8fa2433",
|
||||
"vout": 0,
|
||||
"address": "nnJDY1xCRgWQc7vBXHUPMPsEynuZW23Y3P",
|
||||
"account": "",
|
||||
"scriptPubKey": "76a914c6977da37560e1432c2e14e16952981a4c272cac88ac",
|
||||
"amount": 100.00000000,
|
||||
"confirmations": 1355,
|
||||
"spendable": true,
|
||||
"solvable": true
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
The `minconf` and `maxconf` parameters filter the minimum and maximum number of [confirmations](https://www.pcmag.com/encyclopedia/term/bitcoin-confirmation) of the UTXO returned.
|
||||
|
||||
> **Note:** The example address starts with `n` instead of `D`, because it uses [testnet](#mainnet-testnet-and-regtest).
|
||||
|
||||
##### createrawtransaction
|
||||
|
||||
You can now build a new transaction using the available UTXOs from above.
|
||||
|
||||
```console
|
||||
#Syntax
|
||||
shibetoshi:~$ utxos_to_use='
|
||||
[
|
||||
{
|
||||
"txid": "id",
|
||||
"vout": n
|
||||
},
|
||||
...
|
||||
]'
|
||||
shibetoshi:~$ dogecoin-cli createrawtransaction "$utxos_to_use" '{"address":amount, ...}'
|
||||
|
||||
#Example
|
||||
shibetoshi:~$ utxos_to_use='
|
||||
[
|
||||
{
|
||||
"txid": "b869ed6606d52e6446dc12db02cf868ab693dd5b9f661116269536f0f8fa2433",
|
||||
"vout": 0
|
||||
}
|
||||
]'
|
||||
shibetoshi:~$ dogecoin-cli createrawtransaction "$utxos_to_use" '{"nWSYUqtimF7B6qW4GBdczaG6jvqKutS1Nh":69, "nnJDY1xCRgWQc7vBXHUPMPsEynuZW23Y3P": 30.999}'
|
||||
01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b80000000000ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000
|
||||
```
|
||||
|
||||
You can combine multiple UTXO and send it to multiple recipients by extending the `utxos_to_use` and recipient JSON structures.
|
||||
|
||||
> **Tip:** The transaction returned is encoded in hexadecimal encoding. You can use `dogecoin-cli decoderawtransaction` or `dogecoin-tx -json` to convert the content to JSON format.
|
||||
|
||||
##### signrawtransaction
|
||||
|
||||
Before sending a transaction, it must be signed by the private key that the address was derived from. Dogecoin Core will automatically use the correct private key when spending UTXO known to the wallet.
|
||||
|
||||
```console
|
||||
#Syntax
|
||||
shibetoshi:~$ dogecoin-cli signrawtransaction encoded_transaction
|
||||
|
||||
#Example
|
||||
shibetoshi:~$ dogecoin-cli signrawtransaction "01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b80000000000ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000"
|
||||
{
|
||||
"hex": "01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b8000000006a47304402200e1bf722d4335179de170f7c762755b463b3f7b8f026f30950f701bc834f0e6e022036295fdd5e607ca41c4e0e62e59d0911b607bfabedde2424665ffae13564d0e001210388f8f226d12eccd3ba93c1454ec4498b065cea96e29b918fbdb517872ebbf581ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000",
|
||||
"complete": true
|
||||
}
|
||||
```
|
||||
|
||||
##### sendrawtransaction
|
||||
|
||||
Finally, broadcast the transaction to the network so that it can be included in a block by miners:
|
||||
|
||||
```console
|
||||
#Syntax
|
||||
shibetoshi:~$ dogecoin-cli sendrawtransaction signed_transaction
|
||||
|
||||
#Example
|
||||
shibetoshi:~$ dogecoin-cli sendrawtransaction 01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b8000000006a47304402200e1bf722d4335179de170f7c762755b463b3f7b8f026f30950f701bc834f0e6e022036295fdd5e607ca41c4e0e62e59d0911b607bfabedde2424665ffae13564d0e001210388f8f226d12eccd3ba93c1454ec4498b065cea96e29b918fbdb517872ebbf581ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000
|
||||
b4fae2a43cb35f8016a547e9658e061f1da4a043efafecc42f739d46d95dee21
|
||||
```
|
||||
|
||||
### Inspecting blocks and transactions
|
||||
|
||||
Blocks and transactions are identified by unique *hashes*.
|
||||
Let's find the *[coinbase transaction](https://www.javatpoint.com/coinbase-transaction)* of block 69.
|
||||
|
||||
> **Note:** To be able to query transactions not related to your own wallet, like in this example, you will need to enable the `-txindex` option. This options requires the Dogecoin Core software to re-index the entire blockchain, and can take up to several hours.
|
||||
|
||||
First, request the information about block 69:
|
||||
|
||||
```console
|
||||
#Find block hash from his height
|
||||
shibetoshi:~$ dogecoin-cli getblockhash 69
|
||||
3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b
|
||||
|
||||
#Get block data
|
||||
shibetoshi:~$ dogecoin-cli getblock 3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b
|
||||
{
|
||||
"hash": "3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b",
|
||||
"confirmations": 7816,
|
||||
"strippedsize": 190,
|
||||
"size": 190,
|
||||
"weight": 760,
|
||||
"height": 69,
|
||||
"version": 1,
|
||||
"versionHex": "00000001",
|
||||
"merkleroot": "695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db",
|
||||
"tx": [
|
||||
"695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db"
|
||||
],
|
||||
"time": 1386475225,
|
||||
"mediantime": 1386475209,
|
||||
"nonce": 3923708672,
|
||||
"bits": "1e0ffff0",
|
||||
"difficulty": 0.000244140625,
|
||||
"chainwork": "0000000000000000000000000000000000000000000000000000000004600460",
|
||||
"previousblockhash": "ffa69e04f928b84f19d84da25fb544340e54dca6c03c33930da245719e61c5ea",
|
||||
"nextblockhash": "44bf8abbbb96d4dcfb95df563e606c37987133ea3e013b23bbddde8d7f905fdd"
|
||||
}
|
||||
```
|
||||
|
||||
The `tx` field contains a list of all transactions included in this block. Only one transaction exist in block 69, the coinbase transaction.
|
||||
|
||||
We can see the entire transaction by querying for its identifier:
|
||||
|
||||
```console
|
||||
#Syntax
|
||||
shibetoshi:~$ dogecoin-cli getrawtransaction txid verbose
|
||||
|
||||
#Example
|
||||
shibetoshi:~$ dogecoin-cli getrawtransaction 695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db 1
|
||||
{
|
||||
"hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0e04d9eea3520101062f503253482fffffffff0100ac6156be23000023210340a42a5ad6c4c0cd5ae539657032e0a359bd3e0f95771f34d71691b13460a624ac00000000",
|
||||
"txid": "695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db",
|
||||
"hash": "695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db",
|
||||
"size": 109,
|
||||
"vsize": 109,
|
||||
"version": 1,
|
||||
"locktime": 0,
|
||||
"vin": [
|
||||
{
|
||||
"coinbase": "04d9eea3520101062f503253482f",
|
||||
"sequence": 4294967295
|
||||
}
|
||||
],
|
||||
"vout": [
|
||||
{
|
||||
"value": 393004.00000000,
|
||||
"n": 0,
|
||||
"scriptPubKey": {
|
||||
"asm": "0340a42a5ad6c4c0cd5ae539657032e0a359bd3e0f95771f34d71691b13460a624 OP_CHECKSIG",
|
||||
"hex": "210340a42a5ad6c4c0cd5ae539657032e0a359bd3e0f95771f34d71691b13460a624ac",
|
||||
"reqSigs": 1,
|
||||
"type": "pubkey",
|
||||
"addresses": [
|
||||
"D5TjotnkoXekNQBCn54CBWxjEzCJMMe7WS"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"blockhash": "3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b",
|
||||
"confirmations": 3964556,
|
||||
"time": 1386475225,
|
||||
"blocktime": 1386475225
|
||||
}
|
||||
```
|
||||
|
||||
The `vout` structure will give you information about where the transaction output.
|
||||
|
||||
## Node configuration
|
||||
|
||||
There are many parameters that can be configured to tune your node to your liking. There are two ways to change the configuration.
|
||||
|
||||
Using `dogecoind -help` will display all available configuration parameters that can be added as arguments:
|
||||
|
||||
**Command example :**
|
||||
```console
|
||||
shibetoshi:~$ dogecoind -daemon -paytxfee=0.01 -sendfreetransactions=1 -maxconnections=150
|
||||
```
|
||||
|
||||
Configuration can be persisted by creating a `dogecoin.conf` file. Create it in the directory defined with the `datadir` setting, `$HOME/.dogecoin` by default, or specify the file location with `-conf`.
|
||||
|
||||
**dogecoin.conf example :**
|
||||
```
|
||||
daemon=1
|
||||
server=1
|
||||
listen=1
|
||||
paytxfee=0.01
|
||||
sendfreetransactions=1
|
||||
maxconnections=150
|
||||
```
|
||||
You can see a more concrete example [here](/contrib/debian/examples/dogecoin.conf).
|
||||
|
||||
### Mainnet, testnet and regtest
|
||||
|
||||
When trying out new things, for example to test your application that interacts with the Dogecoin chain, it is recommended to not use the main Dogecoin network. Multiple networks are built-in for this purpose.
|
||||
|
||||
**Mainnet** : The main network where real transaction operate.
|
||||
**Testnet** : The test network, with peers.
|
||||
**Regtest** : The regression test network, to test with only local peers and create blocks on-demand.
|
||||
|
||||
When not specifying any network, *Mainnet* is the network used by default. To enable *testnet*, use the `dogecoind -testnet`.
|
||||
|
||||
To enable *regtest*, use the `-regtest` option.
|
||||
|
||||
> **Tip:** Remember to specify the network when you want to use `dogecoin-cli`.
|
||||
|
||||
### Data directory
|
||||
|
||||
The data directory is the location where Dogecoin Core files are stored, including the wallet, log files and blocks. You can modify the location with the `-datadir` setting.
|
||||
|
||||
**Default location :**
|
||||
|
||||
Platform | Data directory path
|
||||
---------|--------------------
|
||||
Linux | `$HOME/.dogecoin`
|
||||
macOS | `$HOME/Library/Application Support/Dogecoin`
|
||||
Windows | `%APPDATA%\Dogecoin`
|
||||
|
||||
You may need to specify `-datadir` also when using `dogecoin-cli`.
|
||||
|
||||
See the [full documentation on file system](files.md) for more information.
|
||||
|
||||
### RPC credentials
|
||||
|
||||
Authentication is required to interact with the RPC interface. When no credentials are provided, Dogecoin uses a [random cookie](https://bitcoin.org/en/release/v0.12.0#rpc-random-cookie-rpc-authentication) that gets generated when the software is launched. It's possible to define your own credentials using `rpcuser` and `rpcpassword` parameters.
|
||||
|
||||
### Ports
|
||||
|
||||
A node can expose 2 different ports: one port for the **Peer to Peer Network** (P2P) to communicate with other nodes, and a second port for access to the RPC API. By default, the ports are configured as follows:
|
||||
|
||||
| Function | mainnet | testnet | regtest |
|
||||
| :------- | ------: | ------: | ------: |
|
||||
| P2P | 22556 | 44556 | 18444 |
|
||||
| RPC | 22555 | 44555 | 18332 |
|
||||
|
||||
To configure them use the `-port` and `-rpcport` parameters.
|
||||
|
||||
### Memory
|
||||
|
||||
Running Dogecoin Core can require a lot of memory, so in some situations it may be necessary to optimize its usage. You can find more information about reducing the memory footprint in the [related guide](reduce-memory.md).
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
By default, Dogecoin Core keeps detailed logs in the `debug.log` file, located in the `datadir`. Alternatively, the `-printtoconsole` parameter displays the log interactively to the terminal instead.
|
||||
|
||||
To get more verbose log output, you can enable debug mode by using the `-debug=<topic>` parameter to increase logic for a specific topic, or use `-debug=all` to see detailed logs on all topics.
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH BITCOIN-CLI "1" "June 2017" "dogecoin-cli v0.14.2.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
|
||||
.TH DOGECOIN-CLI "1" "November 2021" "dogecoin-cli v1.14.5.0" "User Commands"
|
||||
.SH NAME
|
||||
dogecoin-cli \- manual page for dogecoin-cli v0.14.2.0
|
||||
dogecoin-cli \- manual page for dogecoin-cli v1.14.5.0
|
||||
.SH DESCRIPTION
|
||||
Dogecoin Core RPC client version v0.14.2.0
|
||||
Dogecoin Core RPC client version v1.14.5.0
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
dogecoin\-cli [options] <command> [params]
|
||||
|
@ -71,7 +71,7 @@ Timeout during HTTP requests (default: 900)
|
|||
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
|
||||
(recommended for sensitive information such as passphrases)
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
|
||||
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
|
||||
|
||||
Please contribute if you find Dogecoin Core useful. Visit
|
||||
<https://dogecoin.com> for further information about the software.
|
||||
|
@ -83,4 +83,5 @@ or <https://opensource.org/licenses/MIT>
|
|||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
|
||||
Eric Young and UPnP software written by Thomas Bernard.
|
||||
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
|
||||
provided by Anacoluthia.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH BITCOIN-QT "1" "June 2017" "dogecoin-qt v0.14.2.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
|
||||
.TH DOGECOIN-QT "1" "November 2021" "dogecoin-qt v1.14.5.0" "User Commands"
|
||||
.SH NAME
|
||||
dogecoin-qt \- manual page for dogecoin-qt v0.14.2.0
|
||||
dogecoin-qt \- manual page for dogecoin-qt v1.14.5.0
|
||||
.SH DESCRIPTION
|
||||
Dogecoin Core version v0.14.2.0 (64\-bit)
|
||||
Dogecoin Core version v1.14.5.0
|
||||
Usage:
|
||||
.IP
|
||||
dogecoin\-qt [command\-line options]
|
||||
|
@ -17,6 +17,10 @@ Print this help message and exit
|
|||
.IP
|
||||
Print version and exit
|
||||
.HP
|
||||
\fB\-alerts\fR
|
||||
.IP
|
||||
Receive and display P2P network alerts (default: 1)
|
||||
.HP
|
||||
\fB\-alertnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a relevant alert is received or we see a really
|
||||
|
@ -25,14 +29,14 @@ long fork (%s in cmd is replaced by message)
|
|||
\fB\-blocknotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when the best block changes (%s in cmd is replaced by
|
||||
block hash)
|
||||
block hash, %i is replaced by block number)
|
||||
.HP
|
||||
\fB\-assumevalid=\fR<hex>
|
||||
.IP
|
||||
If this block is in the chain assume that it and its ancestors are valid
|
||||
and potentially skip their script verification (0 to verify all,
|
||||
default:
|
||||
ca5eb72f1e0d160f1481f74d56d7cc4a27d91aa585ba012da8018a5fe934d61b,
|
||||
77e3f4a4bcb4a2c15e8015525e3d15b466f6c022f6ca82698f329edef7d9777e,
|
||||
testnet:
|
||||
6943eaeaba98dc7d09f7e73398daccb4abcabb18b66c8c875e52b07638d93951)
|
||||
.HP
|
||||
|
@ -63,7 +67,7 @@ Keep the transaction memory pool below <n> megabytes (default: 300)
|
|||
\fB\-mempoolexpiry=\fR<n>
|
||||
.IP
|
||||
Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
336)
|
||||
24)
|
||||
.HP
|
||||
\fB\-blockreconstructionextratxn=\fR<n>
|
||||
.IP
|
||||
|
@ -72,7 +76,7 @@ Extra transactions to keep in memory for compact block reconstructions
|
|||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-3\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
|
@ -88,7 +92,7 @@ blocks if a target size in MiB is provided. This mode is
|
|||
incompatible with \fB\-txindex\fR and \fB\-rescan\fR. Warning: Reverting this
|
||||
setting requires re\-downloading the entire blockchain. (default:
|
||||
0 = disable pruning blocks, 1 = allow manual pruning via RPC,
|
||||
>550 = automatically prune block files to stay under the
|
||||
>2200 = automatically prune block files to stay under the
|
||||
specified target size in MiB)
|
||||
.HP
|
||||
\fB\-reindex\-chainstate\fR
|
||||
|
@ -278,19 +282,24 @@ Do not load the wallet and disable wallet RPC calls
|
|||
.IP
|
||||
Set key pool size to <n> (default: 100)
|
||||
.HP
|
||||
\fB\-discardthreshold=\fR<amt>
|
||||
.IP
|
||||
The minimum transaction output size (in DOGE) used to validate wallet
|
||||
transactions and discard change (to fee) (default: 1.00)
|
||||
.HP
|
||||
\fB\-fallbackfee=\fR<amt>
|
||||
.IP
|
||||
A fee rate (in DOGE/kB) that will be used when fee estimation has
|
||||
insufficient data (default: 1.00)
|
||||
insufficient data (default: 0.01)
|
||||
.HP
|
||||
\fB\-mintxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in DOGE/kB) smaller than this are considered zero fee for
|
||||
transaction creation (default: 1.00)
|
||||
transaction creation (default: 0.01)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee (in DOGE/kB) to add to transactions you send (default: 0.00)
|
||||
Fee (in DOGE/kB) to add to transactions you send (default: 0.01)
|
||||
.HP
|
||||
\fB\-rescan\fR
|
||||
.IP
|
||||
|
@ -390,13 +399,13 @@ Prepend debug output with timestamp (default: 1)
|
|||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in DOGE/kB) smaller than this are considered zero fee for
|
||||
relaying, mining and transaction creation (default: 1.00)
|
||||
relaying, mining and transaction creation (default: 0.001)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees (in DOGE) to use in a single wallet transaction or
|
||||
raw transaction; setting this too low may abort large
|
||||
transactions (default: 400.00)
|
||||
transactions (default: 100.00)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
.IP
|
||||
|
@ -414,6 +423,16 @@ Use the test chain
|
|||
.PP
|
||||
Node relay options:
|
||||
.HP
|
||||
\fB\-dustlimit=\fR<amt>
|
||||
.IP
|
||||
Amount under which a transaction output is considered dust, in DOGE
|
||||
(default: 0.01)
|
||||
.HP
|
||||
\fB\-harddustlimit=\fR<amt>
|
||||
.IP
|
||||
Amount under which a transaction output is considered non\-standard and
|
||||
will not be accepted or relayed, in DOGE (default: 0.001)
|
||||
.HP
|
||||
\fB\-bytespersigop\fR
|
||||
.IP
|
||||
Equivalent bytes per sigop in transactions for relay and mining
|
||||
|
@ -450,7 +469,7 @@ Set maximum size of high\-priority/low\-fee transactions in bytes
|
|||
\fB\-blockmintxfee=\fR<amt>
|
||||
.IP
|
||||
Set lowest fee rate (in DOGE/kB) for transactions to be included in
|
||||
block creation. (default: 0.00001)
|
||||
block creation. (default: 0.01)
|
||||
.PP
|
||||
RPC server options:
|
||||
.HP
|
||||
|
@ -531,7 +550,7 @@ Show splash screen on startup (default: 1)
|
|||
.IP
|
||||
Reset all settings changed in the GUI
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
|
||||
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
|
||||
|
||||
Please contribute if you find Dogecoin Core useful. Visit
|
||||
<https://dogecoin.com> for further information about the software.
|
||||
|
@ -543,4 +562,5 @@ or <https://opensource.org/licenses/MIT>
|
|||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
|
||||
Eric Young and UPnP software written by Thomas Bernard.
|
||||
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
|
||||
provided by Anacoluthia.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH BITCOIN-TX "1" "June 2017" "dogecoin-tx v0.14.2.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
|
||||
.TH DOGECOIN-TX "1" "November 2021" "dogecoin-tx v1.14.5.0" "User Commands"
|
||||
.SH NAME
|
||||
dogecoin-tx \- manual page for dogecoin-tx v0.14.2.0
|
||||
dogecoin-tx \- manual page for dogecoin-tx v1.14.5.0
|
||||
.SH DESCRIPTION
|
||||
Dogecoin Core dogecoin\-tx utility version v0.14.2.0
|
||||
Dogecoin Core dogecoin\-tx utility version v1.14.5.0
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
dogecoin\-tx [options] <hex\-tx> [commands]
|
||||
|
@ -107,7 +107,7 @@ set=NAME:JSON\-STRING
|
|||
.IP
|
||||
Set register NAME to given JSON\-STRING
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
|
||||
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
|
||||
|
||||
Please contribute if you find Dogecoin Core useful. Visit
|
||||
<https://dogecoin.com> for further information about the software.
|
||||
|
@ -119,4 +119,5 @@ or <https://opensource.org/licenses/MIT>
|
|||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
|
||||
Eric Young and UPnP software written by Thomas Bernard.
|
||||
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
|
||||
provided by Anacoluthia.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH BITCOIND "1" "June 2017" "dogecoind v0.14.2.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
|
||||
.TH DOGECOIND "1" "November 2021" "dogecoind v1.14.5.0" "User Commands"
|
||||
.SH NAME
|
||||
dogecoind \- manual page for dogecoind v0.14.2.0
|
||||
dogecoind \- manual page for dogecoind v1.14.5.0
|
||||
.SH DESCRIPTION
|
||||
Dogecoin Core Daemon version v0.14.2.0
|
||||
Dogecoin Core Daemon version v1.14.5.0
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
dogecoind [options]
|
||||
|
@ -18,6 +18,10 @@ Print this help message and exit
|
|||
.IP
|
||||
Print version and exit
|
||||
.HP
|
||||
\fB\-alerts\fR
|
||||
.IP
|
||||
Receive and display P2P network alerts (default: 1)
|
||||
.HP
|
||||
\fB\-alertnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a relevant alert is received or we see a really
|
||||
|
@ -26,14 +30,14 @@ long fork (%s in cmd is replaced by message)
|
|||
\fB\-blocknotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when the best block changes (%s in cmd is replaced by
|
||||
block hash)
|
||||
block hash, %i is replaced by block number)
|
||||
.HP
|
||||
\fB\-assumevalid=\fR<hex>
|
||||
.IP
|
||||
If this block is in the chain assume that it and its ancestors are valid
|
||||
and potentially skip their script verification (0 to verify all,
|
||||
default:
|
||||
ca5eb72f1e0d160f1481f74d56d7cc4a27d91aa585ba012da8018a5fe934d61b,
|
||||
77e3f4a4bcb4a2c15e8015525e3d15b466f6c022f6ca82698f329edef7d9777e,
|
||||
testnet:
|
||||
6943eaeaba98dc7d09f7e73398daccb4abcabb18b66c8c875e52b07638d93951)
|
||||
.HP
|
||||
|
@ -68,7 +72,7 @@ Keep the transaction memory pool below <n> megabytes (default: 300)
|
|||
\fB\-mempoolexpiry=\fR<n>
|
||||
.IP
|
||||
Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
336)
|
||||
24)
|
||||
.HP
|
||||
\fB\-blockreconstructionextratxn=\fR<n>
|
||||
.IP
|
||||
|
@ -77,7 +81,7 @@ Extra transactions to keep in memory for compact block reconstructions
|
|||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-3\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
|
@ -93,7 +97,7 @@ blocks if a target size in MiB is provided. This mode is
|
|||
incompatible with \fB\-txindex\fR and \fB\-rescan\fR. Warning: Reverting this
|
||||
setting requires re\-downloading the entire blockchain. (default:
|
||||
0 = disable pruning blocks, 1 = allow manual pruning via RPC,
|
||||
>550 = automatically prune block files to stay under the
|
||||
>2200 = automatically prune block files to stay under the
|
||||
specified target size in MiB)
|
||||
.HP
|
||||
\fB\-reindex\-chainstate\fR
|
||||
|
@ -283,19 +287,24 @@ Do not load the wallet and disable wallet RPC calls
|
|||
.IP
|
||||
Set key pool size to <n> (default: 100)
|
||||
.HP
|
||||
\fB\-discardthreshold=\fR<amt>
|
||||
.IP
|
||||
The minimum transaction output size (in DOGE) used to validate wallet
|
||||
transactions and discard change (to fee) (default: 1.00)
|
||||
.HP
|
||||
\fB\-fallbackfee=\fR<amt>
|
||||
.IP
|
||||
A fee rate (in DOGE/kB) that will be used when fee estimation has
|
||||
insufficient data (default: 1.00)
|
||||
insufficient data (default: 0.01)
|
||||
.HP
|
||||
\fB\-mintxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in DOGE/kB) smaller than this are considered zero fee for
|
||||
transaction creation (default: 1.00)
|
||||
transaction creation (default: 0.01)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee (in DOGE/kB) to add to transactions you send (default: 0.00)
|
||||
Fee (in DOGE/kB) to add to transactions you send (default: 0.01)
|
||||
.HP
|
||||
\fB\-rescan\fR
|
||||
.IP
|
||||
|
@ -395,13 +404,13 @@ Prepend debug output with timestamp (default: 1)
|
|||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in DOGE/kB) smaller than this are considered zero fee for
|
||||
relaying, mining and transaction creation (default: 1.00)
|
||||
relaying, mining and transaction creation (default: 0.001)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees (in DOGE) to use in a single wallet transaction or
|
||||
raw transaction; setting this too low may abort large
|
||||
transactions (default: 400.00)
|
||||
transactions (default: 100.00)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
.IP
|
||||
|
@ -419,6 +428,16 @@ Use the test chain
|
|||
.PP
|
||||
Node relay options:
|
||||
.HP
|
||||
\fB\-dustlimit=\fR<amt>
|
||||
.IP
|
||||
Amount under which a transaction output is considered dust, in DOGE
|
||||
(default: 0.01)
|
||||
.HP
|
||||
\fB\-harddustlimit=\fR<amt>
|
||||
.IP
|
||||
Amount under which a transaction output is considered non\-standard and
|
||||
will not be accepted or relayed, in DOGE (default: 0.001)
|
||||
.HP
|
||||
\fB\-bytespersigop\fR
|
||||
.IP
|
||||
Equivalent bytes per sigop in transactions for relay and mining
|
||||
|
@ -455,7 +474,7 @@ Set maximum size of high\-priority/low\-fee transactions in bytes
|
|||
\fB\-blockmintxfee=\fR<amt>
|
||||
.IP
|
||||
Set lowest fee rate (in DOGE/kB) for transactions to be included in
|
||||
block creation. (default: 0.00001)
|
||||
block creation. (default: 0.01)
|
||||
.PP
|
||||
RPC server options:
|
||||
.HP
|
||||
|
@ -510,7 +529,7 @@ option can be specified multiple times
|
|||
.IP
|
||||
Set the number of threads to service RPC calls (default: 4)
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
|
||||
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
|
||||
|
||||
Please contribute if you find Dogecoin Core useful. Visit
|
||||
<https://dogecoin.com> for further information about the software.
|
||||
|
@ -522,4 +541,5 @@ or <https://opensource.org/licenses/MIT>
|
|||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
|
||||
Eric Young and UPnP software written by Thomas Bernard.
|
||||
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
|
||||
provided by Anacoluthia.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue