mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-03-10 04:21:18 +00:00
minimal readme
This commit is contained in:
parent
99be67bb55
commit
3cce4ae313
107
README.md
107
README.md
@ -1,21 +1,25 @@
|
||||
Bitcoin integration/staging tree
|
||||
================================
|
||||
twister - p2p microblogging
|
||||
===========================
|
||||
|
||||
http://www.bitcoin.org
|
||||
http://www.twister.net.co
|
||||
|
||||
Copyright (c) 2009-2013 Bitcoin Developers
|
||||
Bitcoin Copyright (c) 2009-2013 Bitcoin Developers
|
||||
libtorrent Copyright (c) 2003 - 2007, Arvid Norberg
|
||||
twister Copyright (c) 2013 Miguel Freitas
|
||||
|
||||
What is Bitcoin?
|
||||
What is twister?
|
||||
----------------
|
||||
|
||||
Bitcoin is an experimental new digital currency that enables instant payments to
|
||||
anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate
|
||||
with no central authority: managing transactions and issuing money are carried
|
||||
out collectively by the network. Bitcoin is also the name of the open source
|
||||
software which enables the use of this currency.
|
||||
twister is an experimental peer-to-peer microblogging software.
|
||||
|
||||
For more information, as well as an immediately useable, binary version of
|
||||
the Bitcoin client sofware, see http://www.bitcoin.org.
|
||||
User registration and authentication is provided by a bitcoin-like network, so
|
||||
it is completely distributed (does not depend on any central authority).
|
||||
|
||||
Post distribution uses kademlia DHT network and bittorrent-like swarms, both
|
||||
are provided by libtorrent.
|
||||
|
||||
Both Bitcoin and libtorrent versions included here are highly patched and do
|
||||
not interoperate with existing networks (on purpose).
|
||||
|
||||
License
|
||||
-------
|
||||
@ -23,60 +27,61 @@ License
|
||||
Bitcoin is released under the terms of the MIT license. See `COPYING` for more
|
||||
information or see http://opensource.org/licenses/MIT.
|
||||
|
||||
libtorrent is released under the BSD-license.
|
||||
|
||||
twister specific code is released under the MIT license or BSD, you choose.
|
||||
(it shouldn't matter anyway, except for the "non-endorsement clause").
|
||||
|
||||
Development process
|
||||
-------------------
|
||||
|
||||
Developers work in their own trees, then submit pull requests when they think
|
||||
their feature or bug fix is ready.
|
||||
There is no development process defined yet.
|
||||
|
||||
If it is a simple/trivial/non-controversial change, then one of the Bitcoin
|
||||
development team members simply pulls it.
|
||||
|
||||
If it is a *more complicated or potentially controversial* change, then the patch
|
||||
submitter will be asked to start a discussion (if they haven't already) on the
|
||||
[mailing list](http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development).
|
||||
|
||||
The patch will be accepted if there is broad consensus that it is a good thing.
|
||||
Developers should expect to rework and resubmit patches if the code doesn't
|
||||
match the project's coding conventions (see `doc/coding.txt`) or are
|
||||
controversial.
|
||||
|
||||
The `master` branch is regularly built and tested, but is not guaranteed to be
|
||||
completely stable. [Tags](https://github.com/bitcoin/bitcoin/tags) are created
|
||||
regularly to indicate new official, stable release versions of Bitcoin.
|
||||
Developers of either bitcoin or libtorrent are welcomed and will be granted
|
||||
immediate write-access to the repository (a small retribution for
|
||||
bastardizing their codebases).
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
||||
Testing and code review is the bottleneck for development; we get more pull
|
||||
requests than we can review and test. Please be patient and help out, and
|
||||
remember this is a security-critical project where any mistake might cost people
|
||||
lots of money.
|
||||
Some security checks are disabled (temporarily) allowing multiple clients per IP.
|
||||
Therefore it is possible to run multiple twisterd instances at the same machine:
|
||||
|
||||
### Automated Testing
|
||||
$ twisterd -datadir=/tmp/twister1 -port=30001 -daemon -rpcuser=user -rpcpassword=pwd -rpcallowip=127.0.0.1 -rpcport=40001
|
||||
$ twisterd -datadir=/tmp/twister2 -port=30002 -daemon -rpcuser=user -rpcpassword=pwd -rpcallowip=127.0.0.1 -rpcport=40002
|
||||
$ twisterd -rpcuser=user -rpcpassword=pwd -rpcallowip=127.0.0.1 -rpcport=40001 addnode <external-ip>:30002 onetry
|
||||
|
||||
Developers are strongly encouraged to write unit tests for new code, and to
|
||||
submit new unit tests for old code.
|
||||
Note: some features (like block generation and dht put/get) do now work unless
|
||||
there are at least two known nodes, like these two instances.
|
||||
|
||||
Unit tests for the core code are in `src/test/`. To compile and run them:
|
||||
Wire protocol
|
||||
-------------
|
||||
|
||||
cd src; make -f makefile.unix test
|
||||
Bitcoin and libtorrent protocol signatures have been changed on purpose to
|
||||
make twister network incompatible. This avoids the so called "merge bug":
|
||||
|
||||
Unit tests for the GUI code are in `src/qt/test/`. To compile and run them:
|
||||
http://blog.notdot.net/2008/6/Nearly-all-DHT-implementations-vulnerable-to-merge-bug
|
||||
|
||||
qmake BITCOIN_QT_TEST=1 -o Makefile.test bitcoin-qt.pro
|
||||
make -f Makefile.test
|
||||
./bitcoin-qt_test
|
||||
- Bitcoin signature changed from "f9 be b4 d9" to "f0 da bb d2".
|
||||
- Bitcoin port changed from 8333 to 28333.
|
||||
- Torrent signature changed from "BitTorrent protocol" to "twister protocollll".
|
||||
- Torrent/DHT query changed from "y" to "z"
|
||||
- Torrent/DHT answer changed from "a" to "x"
|
||||
|
||||
Every pull request is built for both Windows and Linux on a dedicated server,
|
||||
and unit and sanity tests are automatically run. The binaries produced may be
|
||||
used for manual QA testing — a link to them will appear in a comment on the
|
||||
pull request posted by [BitcoinPullTester](https://github.com/BitcoinPullTester). See https://github.com/TheBlueMatt/test-scripts
|
||||
for the build/test scripts.
|
||||
Quick JSON command examples
|
||||
---------------------------
|
||||
|
||||
### Manual Quality Assurance (QA) Testing
|
||||
To create a new user key and send it to the network:
|
||||
./twisterd createwalletuser somebody
|
||||
./twisterd sendnewusertransaction somebody
|
||||
|
||||
To create the first (1) public post:
|
||||
./twisterd newpostmsg somebody 1 "hello world"
|
||||
|
||||
To add this user to the following list:
|
||||
./twisterd follow somebody '["somebody"]'
|
||||
|
||||
To get the last 5 posts from user we follow:
|
||||
./twisterd getposts 5 '[{"username":"somebody"}]'
|
||||
|
||||
Large changes should have a test plan, and should be tested by somebody other
|
||||
than the developer who wrote the code.
|
||||
|
||||
See https://github.com/bitcoin/QA/ for how to create a test plan.
|
||||
|
Loading…
x
Reference in New Issue
Block a user