twister user and promoter arrested in Shanghai. #FreeLoveChan!

Hi people,

I’m still trying to make complete sense of this, so please apologize me for any mistakes. I don’t read Chinese and automatic translations tools sometimes produce nonsense stuff. This is utterly complicated by Orwellian police procedures.

A Chinese guy known as @lovechan64 was arrested by Shanghai police last May 30, on charges of “the crime of destruction of computer information systems”. lovechan (known in twister by ids @lovechan, @z9 and @9z) is a well known twister promoter, having publicly talked about twister using his Twitter account multiple times.

According to some sites:

It is understood that 陈乐福 network called “love chan”, is committed to promoting social networking software twister, on May 30 was arrested by Shanghai police. twister is an open source P2P microblogging network, which is characterized by the message sent can not be blocked, not deleted after content publishing, publisher’s identity can not be tracked.

Chinese activist @wenyunchao reported on Jun 8:

Love Chan @ lovechan64 Chen Yuefu committed to promoting #Twister, authorities Detention he seems to be afraid of this thing. Another reason may be that he helped some of the dissidents face to face counseling over the wall.

I’ve asked chinese twister users about this. Some confirmed and others reported another reasons.

@chinanet explained:

@mfreitas @yangxiao no, it’s NOT because of twister, it’s because @lovechan (aka @z9 @9z ) helps @xiaolan spreading leak of 50-cent party. @xiaolan is anonymous but @lovechan is not, @lovechan even uses his own photo as avatar

I’ve tried to understand a bit more about this, and it seems “50-cent party” is a group of people who receive money from Chinese govt to post good things on public forums and stuff like that. This seems to be officially demised but recently someone (not @lovechan) obtained, and then leaked, a private email containing a list of these people. @lovechan is reported to have helped publicizing such leak.

Either way, this is serious stuff that we should bring awareness about. The guy is definitely detained as reported here. He is married to Lee Funchang who just gave birth to a baby last Jun 5th. The guy is still detained and has not yet seen the baby.

It looks like the guy was found by old police job (he apparently didn’t tried hard to hide his identity) not due to any twister failure. Anyway it is important to realize that, while it is ok to use twister over a plain networks for reading the news and casual chats, if you have really serious and dangerous shit to say by all means: create a new user and only connect twister on top of Tor. twister alone won’t protect you against Orwellian governments!! (note: i’m referring to public posts here, twister’s DM and Group Chat content should be safe even without Tor)


Stay safe and let me know for any corrections.

Update: No, I don’t think @lovechan was identified because he was not using Tor. He posted the leaked files using his wife’s account (see below for @chinanet’s comments). Of course, it doesn’t matter using Tor or not if one signs with his real name.

Update Jul 04 2015: by @chinanet(新人教程, 点我资料): @vegos @thedod @lohang @twister good news is @lovechan was granted bail pending trial with restricted liberty of moving. he used @9z to post just now.

Posted in Uncategorized

Upcoming new features: group chat and favorites

After another great climbing vacation (with two new summits climbed for the first time ;-) ) I’d like to post a quick update on latest twister developments…

Users following our github repositories commits may have noticed that two cool new features have been added to twister-core but are still lacking UI support (twister-html), these are:

  • Group chat: allows users to invite a party for a private group chat. All group chat messages are encrypted and only invited members are able to read them. Any current member may invite another user to join the chat (there is no “exclude” user feature, the alternative is to create a new group without people you want to exclude).
  • Favorites: users can mark some posts as “favorites”, either private (like a personal bookmark only you can see) or public (so everybody will know that you favorited that post). Many thanks to @erkanyuksel for this!

So what this mean, in practice? This means that these two new and experimental features are already available for the brave who want to play with twisterd command line interface. There is no time frame for these to appear in twister-html. In fact, I may attest that we currently have much more experienced Javascript contributors to twister-html than me. I’m not personally working on UI for any of that.

In case of group chat, it is an almost “invite only” feature so far. The thing is that if one invites you from the command line interface, you will then be able to join the group chat using standard twister-html DM screens…

Stay tuned!

Posted in Uncategorized

twister-core 0.9.29: fix connectivity issue

New twister-core 0.9.29 fixes a long standing connectivity bug: sometimes twisterd failed to properly detect when the external IP changes.

IP changes are relatively common, they may be due to a router reboot, ISP forcing an IP change, switching from work to home network etc.

If twisterd fails to detect that our external IP changed then the DHT network doesn’t work. User will see a sluggish UI, failing to load avatars, replies and statuses.

This should be fixed now. Please give it a try!

Posted in Uncategorized

twister-html new language filtering support

We’ve just merged another great contribution by Сёма Мрачный (@tasty) for twister-html client: advanced language filtering support.

This new feature may allow people to follow more users and display only the posts on language they understand. Given the heterogeneous twister community with users speaking Russian, Chinese, French, Portuguese, Turkish and even English, this is a very handy addition!

Language filtering options have been added:



Then, before enabling the filter, one can try how it will work by running the cool “simulation mode”:


Besides language filtering, Top Trends got an optional auto-updating feature every 2 minutes.

Thanks again to everybody involved!



Posted in Uncategorized

VirtualBox image available to compile twister for Android

A new VirtualBox image is available pre-configured with all utilities (android-sdk, ndk…) and dependencies (openssl, boost etc) needed to compile twisterd for Android.

Grab it here:

Ubuntu-12.04-LTS-amd64_twister-gitian-android.ova (2.2GB from Google Drive)

Posted in Uncategorized

twister RPMS for openSUSE, SLE, Fedora and Centos

Thanks to the nice Open Build Service (OBS) provided by openSUSE we now have automatically built RPMS for the following distros:

  • openSUSE 12.2, 12.3, 13.1, 13.2 and tumbleweed
  • SLE 12 (SLE 11 boost too old)
  • Fedora 20 (Fedora 18-19 have no elliptic curves support)
  • CentOS 7 (Centos 6 boost too old)

Download it HERE!

The new RPMS will install two icons under Network menu: “twister” and “twister Control Panel”

The first one should launch twister automatically, that is: creates a random password for browser<=>twisterd authentication, setup an initial ~/.twister/twister.conf, and then open a new browser window.

twister Control Panel will allow users to configure twisterd as a deamon which starts when user first open his graphical desktop session. It is a pretty simple utility which looks like this:


Daily Debian packages are available HERE!

Posted in Uncategorized

A new “business” model

A new “business” model

Posted in Uncategorized

Twister daily traffic visualization

Thanks to @thedod and @twisterio!

Click here for Twister daily traffic.

Posted in Uncategorized

twister-core 0.9.28: enforce DHT upload rate limit

0.9.28 has better enforcement of DHT upload rate limit for non-locally generated requests.

the limit applies to: DHT replies, refreshes of stored items, checking for status/tracker and proxy server.

local requests (eg. dhtgets from the UI) are excluded from this limit, so user experience is not affected.
in other words: we limit only the band contributed back to twister network for maintenance tasks.

this should improve resilience against some sorts of denial-of-service attacks and also
prevents saturating the uplink as observed recently.

Posted in Uncategorized

Some thoughts on next developments

I’d like to share some thoughts on stuff i’d like to implement or improve in twister…

Following the recent introduction of “getmentions” api in twister-core 0.9.27, i’d like to explore the possibilities for creating new user following “types”.

Currently we have only two following types: public and private.

1) Public: the username is stored in public DHT and twister-core starts a torrent to follow this user. Public following are synchronized between computers (twister-html read back the listing from DHT)

2) Private: twister-core starts the torrent, but username is not announced to DHT. Therefore the posts appear in timeline but people don’t know you are following him.

The interface for “Private” is actually awkward / poorly designed: there is no option to follow privately from the start, one has to public follow (propagates the name to DHT) and then change it to private (removes the name from DHT). So for a brief time window one will know about that.

So one obvious improvement here is to change the interface. Perhaps opening a box to inquire the following type would be the least layout disrupting, also allowing for more types:

3) DM/Mentions only: this is a kind of “mute”, that is, the user might be too lousy so you want to follow him form mentions and DMs but not to polute your timeline. This is actually orthogonal to public/private setting.

4) Restrict charset: i’m not sure this should be a per-user setting or global one. The idea is to limit showing only latin, or russian or chinese posts.

Any other suggestions for following or per-user settings?

The above ideas only require HTML/Javascript coding. If someone wants to help it will more than welcomed ;-)

Then there is something i’d like to explore in twister-core: bandwidth limiting.

I’ve being noticing that sometimes twisterd saturates my upload link and it seems to be due to high DHT traffic. I still need to investigate if this is caused by some bug in other twisterd nodes (requesting too much) or if someone is aggressivelly crawling the network.

Either way, i was thinking about creating a new setting to limit the amount of bw that twisterd may use to serve the other nodes. This also improves / works as DDoS protection.

My idea is that DHT requests originated on your own host would always be allowed to go out, while replies to other nodes would be subject to bandwidth accounting.


Posted in Uncategorized