Skip to content

Commit fb78b58

Browse files
committed
First Commit
0 parents  commit fb78b58

1,119 files changed

Lines changed: 242983 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.travis.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
sudo: required
2+
dist: trusty
3+
4+
#workaround for https://github.com/travis-ci/travis-ci/issues/5227
5+
addons:
6+
hostname: tittiecoin-tester
7+
8+
os: linux
9+
language: generic
10+
cache:
11+
directories:
12+
- depends/built
13+
- depends/sdk-sources
14+
- $HOME/.ccache
15+
env:
16+
global:
17+
- MAKEJOBS=-j3
18+
- RUN_TESTS=false
19+
- CHECK_DOC=0
20+
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
21+
- CCACHE_SIZE=100M
22+
- CCACHE_TEMPDIR=/tmp/.ccache-temp
23+
- CCACHE_COMPRESS=1
24+
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
25+
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
26+
- PYTHON_DEBUG=1
27+
- WINEDEBUG=fixme-all
28+
matrix:
29+
# ARM
30+
- HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
31+
# Win32
32+
- 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"
33+
# 32-bit + dash
34+
- 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"
35+
# Win64
36+
- 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"
37+
# bitcoind
38+
- 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"
39+
# No wallet
40+
# - 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"
41+
# Cross-Mac
42+
- HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-reduce-exports" OSX_SDK=10.11 GOAL="deploy"
43+
44+
before_install:
45+
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
46+
install:
47+
- if [ -n "$PPA" ]; then travis_retry sudo add-apt-repository "$PPA" -y; fi
48+
- if [ -n "$DPKG_ADD_ARCH" ]; then sudo dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
49+
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
50+
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
51+
before_script:
52+
- unset CC; unset CXX
53+
- if [ "$CHECK_DOC" = 1 ]; then contrib/devtools/check-doc.py; fi
54+
- mkdir -p depends/SDKs depends/sdk-sources
55+
- 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
56+
- 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
57+
- make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
58+
script:
59+
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
60+
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
61+
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
62+
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
63+
- depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
64+
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
65+
- ./configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
66+
- make distdir PACKAGE=bitcoin VERSION=$HOST
67+
- cd bitcoin-$HOST
68+
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
69+
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
70+
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
71+
- if [ "$RUN_TESTS" = "true" ]; then make $MAKEJOBS check VERBOSE=1; fi
72+
#- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/rpc-tests.py --coverage; fi
73+
after_script:
74+
- echo $TRAVIS_COMMIT_RANGE
75+
- echo $TRAVIS_COMMIT_LOG
76+
notifications:
77+
slack:
78+
secure: w22XjHoG/3xplxWzddS9Ma7i99Q/hq4FA3Q56xS+RtO2vlFgDT+eDzCppstdx96mn2/4e+/V1aiQ4E6GVEvJMeldqSUhPv9OBnKR0KJVAOwu4haNXt+0ZeQFt8lIndKB5cMVyOJkoq6peGoHNXslClM0lGuBn7g7VC2QPQYNWrJNrrGL7IiVb6fNOIKHWcC4URkzSvXAhO/WIqSSlmKxAAx0B2oEsM8LhdAbcjbp7Sm7zH87TIVGBZ7iTVuMc6B9+SfClbE8bBuRtvjTX57Q4UUZzn0zDtKdPdCte0oXdaQF4RdVim9mDodBGIpDo+avW4WL7EE+AK33fs94pwH5bu0LEandR/aeEvVpbSpQ2XsEKSe+6woizgl5i4GXFVZduJF62y/o1f+S/zC3qW9lIEEpiZc4PpX7pDy30X3p6S5nMrW7T/zNh+SjLhS1VP6XKdQtpD3WRCY4GKZYammZhk5RbOy3jTXAahIXuttWdhl/Q3Rb5VqfFJWlrG/qQXt73qOk2/DgJnABxXE6gnWO4MpHAq+kdomNR+nod4HeXI3DOk1wRuQRVoW1rSjiqQd6Db+TP56RKYgt4M4csOD0DG9G+W0AOtZkuKHTeoEtmQfkKFPZLYAQumv41cDN2UE9gKIECmvJSevj4sMCDTWtozKWqay/W4n2+cmhbzmGflY=

CONTRIBUTING.md

Lines changed: 265 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
Contributing to TittieCoin Core
2+
============================
3+
4+
The TittieCoin Core project operates an open contributor model where anyone is
5+
welcome to contribute towards development in the form of peer review, testing
6+
and patches. This document explains the practical process and guidelines for
7+
contributing.
8+
9+
Firstly in terms of structure, there is no particular concept of "Core
10+
developers" in the sense of privileged people. Open source often naturally
11+
revolves around meritocracy where longer term contributors gain more trust from
12+
the developer community. However, some hierarchy is necessary for practical
13+
purposes. As such there are repository "maintainers" who are responsible for
14+
merging pull requests as well as a "lead maintainer" who is responsible for the
15+
release cycle, overall merging, moderation and appointment of maintainers.
16+
17+
18+
Contributor Workflow
19+
--------------------
20+
21+
The codebase is maintained using the "contributor workflow" where everyone
22+
without exception contributes patch proposals using "pull requests". This
23+
facilitates social contribution, easy testing and peer review.
24+
25+
To contribute a patch, the workflow is as follows:
26+
27+
- Fork repository
28+
- Create topic branch
29+
- Commit patches
30+
31+
The project coding conventions in the [developer notes](doc/developer-notes.md)
32+
must be adhered to.
33+
34+
In general [commits should be atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention)
35+
and diffs should be easy to read. For this reason do not mix any formatting
36+
fixes or code moves with actual code changes.
37+
38+
Commit messages should be verbose by default consisting of a short subject line
39+
(50 chars max), a blank line and detailed explanatory text as separate
40+
paragraph(s), unless the title alone is self-explanatory (like "Corrected typo
41+
in init.cpp") in which case a single title line is sufficient. Commit messages should be
42+
helpful to people reading your code in the future, so explain the reasoning for
43+
your decisions. Further explanation [here](http://chris.beams.io/posts/git-commit/).
44+
45+
If a particular commit references another issue, please add the reference, for
46+
example `refs #1234`, or `fixes #4321`. Using the `fixes` or `closes` keywords
47+
will cause the corresponding issue to be closed when the pull request is merged.
48+
49+
Please refer to the [Git manual](https://git-scm.com/doc) for more information
50+
about Git.
51+
52+
- Push changes to your fork
53+
- Create pull request
54+
55+
The title of the pull request should be prefixed by the component or area that
56+
the pull request affects. Valid areas as:
57+
58+
- *Consensus* for changes to consensus critical code
59+
- *Docs* for changes to the documentation
60+
- *Qt* for changes to tittiecoin-qt
61+
- *Minting* for changes to the minting code
62+
- *Net* or *P2P* for changes to the peer-to-peer network code
63+
- *RPC/REST* for changes to the RPC or REST APIs
64+
- *Scripts and tools* for changes to the scripts and tools
65+
- *Tests* for changes to the tittiecoin unit tests or QA tests
66+
- *Trivial* should **only** be used for PRs that do not change generated
67+
executable code. Notably, refactors (change of function arguments and code
68+
reorganization) and changes in behavior should **not** be marked as trivial.
69+
Examples of trivial PRs are changes to:
70+
- comments
71+
- whitespace
72+
- variable names
73+
- logging and messages
74+
- *Utils and libraries* for changes to the utils and libraries
75+
- *Wallet* for changes to the wallet code
76+
77+
Examples:
78+
79+
Consensus: Add new opcode for BIP-XXXX OP_CHECKAWESOMESIG
80+
Net: Automatically create hidden service, listen on Tor
81+
Qt: Add feed bump button
82+
Trivial: Fix typo in init.cpp
83+
84+
If a pull request is specifically not to be considered for merging (yet) please
85+
prefix the title with [WIP] or use [Tasks Lists](https://help.github.com/articles/basic-writing-and-formatting-syntax/#task-lists)
86+
in the body of the pull request to indicate tasks are pending.
87+
88+
The body of the pull request should contain enough description about what the
89+
patch does together with any justification/reasoning. You should include
90+
references to any discussions (for example other tickets or mailing list
91+
discussions).
92+
93+
At this stage one should expect comments and review from other contributors. You
94+
can add more commits to your pull request by committing them locally and pushing
95+
to your fork until you have satisfied all feedback.
96+
97+
Squashing Commits
98+
---------------------------
99+
If your pull request is accepted for merging, you may be asked by a maintainer
100+
to squash and or [rebase](https://git-scm.com/docs/git-rebase) your commits
101+
before it will be merged. The basic squashing workflow is shown below.
102+
103+
git checkout your_branch_name
104+
git rebase -i HEAD~n
105+
# n is normally the number of commits in the pull
106+
# set commits from 'pick' to 'squash', save and quit
107+
# on the next screen, edit/refine commit messages
108+
# save and quit
109+
git push -f # (force push to GitHub)
110+
111+
If you have problems with squashing (or other workflows with `git`), you can
112+
alternatively enable "Allow edits from maintainers" in the right GitHub
113+
sidebar and ask for help in the pull request.
114+
115+
Please refrain from creating several pull requests for the same change.
116+
Use the pull request that is already open (or was created earlier) to amend
117+
changes. This preserves the discussion and review that happened earlier for
118+
the respective change set.
119+
120+
The length of time required for peer review is unpredictable and will vary from
121+
pull request to pull request.
122+
123+
124+
Pull Request Philosophy
125+
-----------------------
126+
127+
Patch sets should always be focused. For example, a pull request could add a
128+
feature, fix a bug, or refactor code; but not a mixture. Please also avoid super
129+
pull requests which attempt to do too much, are overly large, or overly complex
130+
as this makes review difficult.
131+
132+
133+
### Features
134+
135+
When adding a new feature, thought must be given to the long term technical debt
136+
and maintenance that feature may require after inclusion. Before proposing a new
137+
feature that will require maintenance, please consider if you are willing to
138+
maintain it (including bug fixing). If features get orphaned with no maintainer
139+
in the future, they may be removed by the Repository Maintainer.
140+
141+
142+
### Refactoring
143+
144+
Refactoring is a necessary part of any software project's evolution. The
145+
following guidelines cover refactoring pull requests for the project.
146+
147+
There are three categories of refactoring, code only moves, code style fixes,
148+
code refactoring. In general refactoring pull requests should not mix these
149+
three kinds of activity in order to make refactoring pull requests easy to
150+
review and uncontroversial. In all cases, refactoring PRs must not change the
151+
behavior of code within the pull request (bugs must be preserved as is).
152+
153+
Project maintainers aim for a quick turnaround on refactoring pull requests, so
154+
where possible keep them short, un-complex and easy to verify.
155+
156+
157+
"Decision Making" Process
158+
-------------------------
159+
160+
The following applies to code changes to the TittieCoin Core project, and is not to be
161+
confused with overall TittieCoin Network Protocol consensus changes.
162+
163+
Whether a pull request is merged into TittieCoin Core rests with the project merge
164+
maintainers and ultimately the project lead.
165+
166+
Maintainers will take into consideration if a patch is in line with the general
167+
principles of the project; meets the minimum standards for inclusion; and will
168+
judge the general consensus of contributors.
169+
170+
In general, all pull requests must:
171+
172+
- have a clear use case, fix a demonstrable bug or serve the greater good of
173+
the project (for example refactoring for modularisation);
174+
- be well peer reviewed;
175+
- follow code style guidelines;
176+
177+
Patches that change TittieCoin consensus rules are considerably more involved than
178+
normal because they affect the entire ecosystem and so must be preceded by
179+
extensive discussions and clear detailing. While each case will be different,
180+
one should be prepared to expend more time and effort than for other kinds of
181+
patches because of increased peer review and consensus building requirements.
182+
183+
184+
### Peer Review
185+
186+
Anyone may participate in peer review which is expressed by comments in the pull
187+
request. Typically reviewers will review the code for obvious errors, as well as
188+
test out the patch set and opine on the technical merits of the patch. Project
189+
maintainers take into account the peer review when determining if there is
190+
consensus to merge a pull request (remember that discussions may have been
191+
spread out over GitHub, forums, email, and Slack discussions). The following
192+
language is used within pull-request comments:
193+
194+
- ACK means "I have tested the code and I agree it should be merged";
195+
- NACK means "I disagree this should be merged", and must be accompanied by
196+
sound technical justification (or in certain cases of copyright/patent/licensing
197+
issues, legal justification). NACKs without accompanying reasoning may be
198+
disregarded;
199+
- utACK means "I have not tested the code, but I have reviewed it and it looks
200+
OK, I agree it can be merged";
201+
- Concept ACK means "I agree in the general principle of this pull request";
202+
- Nit refers to trivial, often non-blocking issues.
203+
204+
Reviewers should include the commit hash which they reviewed in their comments.
205+
206+
Project maintainers reserve the right to weigh the opinions of peer reviewers
207+
using common sense judgement and also may weight based on meritocracy: Those
208+
that have demonstrated a deeper commitment and understanding towards the project
209+
(over time) or have clear domain expertise may naturally have more weight, as
210+
one would expect in all walks of life.
211+
212+
Where a patch set affects consensus critical code, the bar will be set much
213+
higher in terms of discussion and peer review requirements, keeping in mind that
214+
mistakes could be very costly to the wider community. This includes refactoring
215+
of consensus critical code.
216+
217+
Where a patch set proposes to change the TittieCoin consensus, it must have been
218+
discussed extensively on the forums and Slack, be accompanied by a widely
219+
discussed Proposal and have a generally widely perceived technical consensus of being
220+
a worthwhile change based on the judgement of the maintainers.
221+
222+
### Finding Reviewers
223+
224+
As most reviewers are themselves developers with their own projects, the review
225+
process can be quite lengthy, and some amount of patience is required. If you find
226+
that you've been waiting for a pull request to be given attention for several
227+
months, there may be a number of reasons for this, some of which you can do something
228+
about:
229+
230+
- It may be because of a feature freeze due to an upcoming release. During this time,
231+
only bug fixes are taken into consideration. If your pull request is a new feature,
232+
it will not be prioritized until the release is over. Wait for release.
233+
- It may be because the changes you are suggesting do not appeal to people. Rather than
234+
nits and critique, which require effort and means they care enough to spend time on your
235+
contribution, thundering silence is a good sign of widespread (mild) dislike of a given change
236+
(because people don't assume *others* won't actually like the proposal). Don't take
237+
that personally, though! Instead, take another critical look at what you are suggesting
238+
and see if it: changes too much, is too broad, doesn't adhere to the
239+
[developer notes](doc/developer-notes.md), is dangerous or insecure, is messily written, etc.
240+
Identify and address any of the issues you find. Then ask e.g. on Slack if someone could give
241+
their opinion on the concept itself.
242+
- It may be because your code is too complex for all but a few people. And those people
243+
may not have realized your pull request even exists. A great way to find people who
244+
are qualified and care about the code you are touching is the
245+
[Git Blame feature](https://help.github.com/articles/tracing-changes-in-a-file/). Simply
246+
find the person touching the code you are touching before you and see if you can find
247+
them and give them a nudge. Don't be incessant about the nudging though.
248+
- Finally, if all else fails, ask on Slack or elsewhere for someone to give your pull request
249+
a look. If you think you've been waiting an unreasonably long amount of time (month+) for
250+
no particular reason (few lines changed, etc), this is totally fine. Try to return the favor
251+
when someone else is asking for feedback on their code, and universe balances out.
252+
253+
254+
Release Policy
255+
--------------
256+
257+
The project leader is the release manager for each TittieCoin Core release.
258+
259+
Copyright
260+
---------
261+
262+
By contributing to this repository, you agree to license your work under the
263+
MIT license unless specified otherwise in `contrib/debian/copyright` or at
264+
the top of the file itself. Any work contributed where you are not the original
265+
author must contain its license header with the original author(s) and source.

COPYING

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Copyright (c) 2009-2015 Bitcoin Developers
2+
Copyright (c) 2014-2015 Dash Developers
3+
Copyright (c) 2015-2017 PIVX Developers
4+
Copyright (c) 2017-2018 TittieCoin Developers
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in
14+
all copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
THE SOFTWARE.

INSTALL

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Building TittieCoin
2+
3+
Use the autogen script to prepare the build environment.
4+
5+
./autogen.sh
6+
./configure
7+
make
8+
9+
Always verify the signatures and checksums.
10+
11+
See doc/build-*.md for instructions on building tittiecoind,
12+
the intended-for-services, no-graphical-interface, reference
13+
implementation of TittieCoin.

0 commit comments

Comments
 (0)