Community driven twister-core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.0 KiB

11 years ago
twister - p2p microblogging
===========================
11 years ago
http://www.twister.net.co
11 years ago
Bitcoin Copyright (c) 2009-2013 Bitcoin Developers
libtorrent Copyright (c) 2003 - 2007, Arvid Norberg
twister Copyright (c) 2013 Miguel Freitas
11 years ago
What is twister?
----------------
11 years ago
twister is an experimental peer-to-peer microblogging software.
11 years ago
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
-------
Bitcoin is released under the terms of the MIT license. See `COPYING` for more
information or see http://opensource.org/licenses/MIT.
14 years ago
11 years ago
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
-------------------
14 years ago
11 years ago
There is no development process defined yet.
11 years ago
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).
11 years ago
Testing
-------
11 years ago
Some security checks are disabled (temporarily) allowing multiple clients per IP.
Therefore it is possible to run multiple twisterd instances at the same machine:
$ 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
11 years ago
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.
11 years ago
Wire protocol
-------------
11 years ago
Bitcoin and libtorrent protocol signatures have been changed on purpose to
make twister network incompatible. This avoids the so called "merge bug":
11 years ago
http://blog.notdot.net/2008/6/Nearly-all-DHT-implementations-vulnerable-to-merge-bug
11 years ago
- 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"
11 years ago
Quick JSON command examples
---------------------------
11 years ago
To create a new user key and send it to the network:
./twisterd createwalletuser somebody
./twisterd sendnewusertransaction somebody
11 years ago
To create the first (1) public post:
./twisterd newpostmsg somebody 1 "hello world"
11 years ago
To add this user to the following list:
./twisterd follow somebody '["somebody"]'
11 years ago
To get the last 5 posts from user we follow:
./twisterd getposts 5 '[{"username":"somebody"}]'