ZeroNet Blogs

Static ZeroNet blogs mirror

Shouko's Blog

ZeroMe: shouko@kaffie.bit You may have to visit KaffieID and my hub first or you may be unable to follow my ZeroMe account: (你可能需要在访问我的 ZeroMe 账户之前先访问一次 KaffieID 和我的 Hub 才行:) id.kaffie.bit hub.shouko.bit ZeroMe 2: shouko@zeroid.bit

This is my personal blog. I am an undergraduate Chinese student and is currently learning Japanese. Anime and programming are my favorite.

这里是我的个人博客。我是中国的一名本科学生,目前正在学习日语。动漫和软件开发什么的最喜欢了 ^_^

こんにちは、ここは私のブログです。アニメとプログラムが結構好き。


Firstly, I would like to announce a ZeroMe Hub created by me: hub.shouko.bit. You can seed it and (optionally) join it if you like. This hub provides high quota for content once approved by me (you can contact me by ZeroMail or ZeroVerse's mail to shouko@zeroid.bit).

What's wrong with ZeroMe?

As a (fairly) new user on ZeroNet, I happily started off by joining ZeroMe. It was fun and exciting to experiment with decentralized things which is exactly what Internet is supposed to be. After a while I realized that this site is a merger site (which was not implemented the last time I tried ZeroNet) which includes a lot of sub-sites called hubs and I have to follow one's hub to receive the updates from the person. Therefore I found Get All Hub to add all the hubs provided by maintainer of this site.

However, when the messages from these hubs are comming in, I noticed something that I didn't expect ZeroMe to be.


Incomplete federation

What I mean by incomplete federation is that the hubs of ZeroMe are not quite federated. It is true that posts will be merged on your home timeline if you follow more than one hubs, and you can, sometimes, interact with users on other hubs. However, you can never:

  1. Appear on the new users list with IDs other than zeroid.bit and zeroverse.bit
  2. Comment on a user's post who belong to a hub that do not accept your ID provider
  3. Accept a user's comment who use an ID provdier that is not accepted by your hub

These are severe enough to drive users away from, at least, ZeroMe. The first point is almost fatal: why I must use the selected ID providers in order to appear on everyone's list? (Note: this limitation is set by ZeroMe's user registry) Where is the decentralization promised by ZeroNet the thing itself? (Please, appreciate that the registry also accepts ZeroVerse, otherwise there will be no way to appear on the list of users without leaking your IP address)

Being unable to comment on others make it not as social as one could expect. The thing social itself is almost just about interpersonal interaction. We are not going to be lonely islands that talk without receiving things. It is undeniable that we have the freedom to choose the hubs that we ourselves prefer, but this may make you unreachable by others, which removes a lot of the goodness to have a decentralized set of hubs.

Limits

Limits are the limits set by the hubs. At the time of writing, SunHub has a quota of only 48k for users, and this is true for many other hubs that are cloned from SunHub. This may seem a lot for blog comments or something similar to it, but definitely not enough for social platforms. For me myself, I used up 30k out of the 48k limit set by SunHub and this is the only hub shown on first registration. This became an important part of the reason why I set up Shouko's Hub.

Since it is for now impossible to switch or join additional hubs after first registration, the limit imposes a huge shortcoming on this platform. As is described before, it will be not very practical to set up a new and better hub in order to increase the possible quota set on one account -- that is to say, you have to depend on the maintainers of popular hubs to assign you more quota out of their hubs. Moreover, comments of a post is stored on the hub of the owner of the post, rather than on your own hub. This is also the reason why you could not comment on one's posts if his hub does not accept your ID. This implies that you could run out of limit on any of the existing hubs if you are actively interacting with users on ZeroMe. You will have to contact a bunch of hub maintainers in order to increase your limit on every possible hub if you are running out of limit. This, to me, seems like kind of design flaw and I do not really appreciate such strange limitation.

The "unlimited hubs" are not a good solution either. Besides the limitation described above, since anyone can join these hubs, malicious users can just replicate themselves a lot and start bombing these unlimited hubs to quickly grow the size to make it completely impossible to synchronize and download these sites. Banning users after being bombed is too late -- your hub is already failing.

Centralization

As a result, most of the users tend to join the largest hubs in order to reach as many people as possible. Most of the users will be under the control of the maintainers of the most popular hubs.

I recalled the last time when I decided to give up on ZeroNet. At that time, there was an issue on ZeroNet's repository discussing how merger sites (what ZeroMe is based on) could be implemented. I do really appreciate that the contributors did take decentralization into consideration most of the time, but not for this final ZeroMe "product". I thought that a hub is going to be a collection of similar or familiar people that can be set up easily, interact with others easily and this is what I thought a decentralized social platform should be. From this point of view, even Mastodon is better since it at least guarantees that users different instances can interact just as if they are in a same, huge Fediverse. (but it's not decentralized from the user's perspective.)

That is, basically, what I believe is wrong with ZeroMe.

Shouko's Hub

As a conclusion, it is almost meaningless to have one's own hub. However I'm still going to give it a try. Shouko's Hub will be a hub maintained by me and I will assign higher quota to people that I can confirm real and not spammers. This will be the hub in my imagination -- a technical guy in a group sets up a hub to serve the others, and everyone with such ability can do it on his / her own without any restriction on how the content can be spreaded. I totally believe that the limitations described above are just design flaws and could be corrected some time in the future, thus they would no more be barriers preventing user from freely choosing their beloved hubs. Therefore, more hubs are always beneficial to a decentralized community -- if you are capable to do so, please also set up your own hub and ask us to seed it for you.

How to add trackers to ZeroNet

- Posted in Shouko's Blog by with comments

Yesterday I wrote a blog post on why we should add more trackers to ZeroNet, and here is the guide on how to add trackers to ZeroNet.

(昨天我写了一篇关于为什么我们应该给 ZeroNet 添加更多 Tracker 的文章,这里是添加 Tracker 的教程)


For all OSs / 针对所有操作系统

The first step is the same for all the OSes: save the list of trackers to an txt file. Make sure to include also the default trackers, otherwise ZeroNet would not work as intented.

(第一步对于所有操作系统是一样的:把完整的 Tracker 列表保存到一个 txt 文件里面。记住要包含 ZeroNet 默认的几个 tracker,不然 ZeroNet 将无法工作)

I have posted a list of trackers that I use in my previous blog post, you can find it in the first EDIT section, it's just a long long list of URLs. Save it, for example, as /path/to/trackers.txt (The path here is just a placeholder and please replace them with the actual path to your file, the only requirement is that ZeroNet must be able to read this file.)

(我在昨天的文章里发了一个我自己使用的 Tracker 列表,你可以在第一个 EDIT 下面找到它,就是一个非常长的 URL 列表。把它保存到一个文件里,例如 /path/to/trackers.txt 具体路径请自行决定,唯一的要求是 ZeroNet 必须能读到这个文件)

The next step is to ask ZeroNet to load this file on start. This varies with platforms, but basically it is using --trackers_file option.

(下一步就是让 ZeroNet 加载这个文件。这个在不同平台上是有区别的)

ArchLinux (AUR)

If you install from aur/zeronet on ArchLinux, please read this section.

(如果你是从 ArchLinux AUR 上安装的 ZeroNet,请阅读本节)

Edit /etc/zeronet.conf to include the following:

(在 /etc/zeronet.conf 中加入:)

trackers_file = /path/to/trackers.txt

Please note: for ZeroNet installed from AUR, please always make sure that your trackers.txt can be read by the zeronet user. I personally suggest to put it to /var/lib/zeronet/trackers.txt

(请注意,对于 ArchLinux AUR 上安装的 ZeroNet,请务必确保你的 trackers.txt 能被 zeronet 用户读取,我个人建议把它放置到 /var/lib/zeronet/trackers.txt)

Linux (ZeroBundle)

If you run ZeroNet with ZeroBundle under Linux, please run ZeroNet.sh with the following command:

(如果你在 Linux 上使用 ZeroBundle,那么请使用以下命令来启动 ZeroNet.sh)

./ZeroNet.sh --trackers_file /path/to/trackers.txt

Please note: please make sure your trackers.txt can be read by the user you use to run ZeroNet

(请注意,请确保你的 trackers.txt 能被你执行 ZeroNet 的用户读取)

Windows (ZeroBundle)

If you run ZeroNet with ZeroBundle under Windows, you can create a zeronet.conf within the same directory as zeronet.exe with the following content:

(如果你在 Windows 上使用 ZeroBundle 运行 ZeroNet,请在 zeronet.exe 同一个目录下创建一个 zeronet.conf)

[global]
trackers_file = /path/to/trackers.txt

The /path/to/trackers.txt is still just a placeholder here, please replace it with the absolute or relative path to the trackers.txt. For example, if trackers.txt is also under the same directory, you could just write trackers.txt in the conf without any path

(/path/to/trackers.txt 在这里仍然只是一个例子,请把它替换成到你的 trackers.txt 的相对或者绝对路径。比如说,如果 trackers.txt 也在同一个目录下,那么你直接写 trackers.txt 就好了)

macOS (ZeroBundle)

No idea for now. Haven't used macOS and no idea how it will work. I assume that it will work just like on Windows, but I'm not sure.

(不知道。自己不用,也没人来测试,不知道要怎么做。可能和 Windows 上方法差不多,但是我也不清楚)

Linux / Windows / macOS (Manual Python / 手动 Python)

If you run ZeroNet by manually running python(2) zeronet.py or similar stuff, please just add --trackers_file /path/to/trackers.txt after this command.

(如果你使用 python(2) zeronet.py 这样的命令来手动启动 ZeroNet,你只要附上 --trackers_file /path/to/trackers.txt 即可)

Finally / 最后

Please restart your ZeroNet instance.

(请重启你的 ZeroNet)

Extra ZeroNet trackers needed

- Posted in Shouko's Blog by with comments

The official ZeroNet implementation contains hardcoded trackers as following:

trackers = [
  "zero://boot3rdez4rzn36x.onion:15441",
  "zero://zero.booth.moe#f36ca555bee6ba216b14d10f38c16f7769ff064e0e37d887603548cc2e64191d:15441",
  "udp://tracker.coppersurfer.tk:6969",
  "udp://tracker.leechers-paradise.org:6969",
  "udp://9.rarbg.com:2710",
  "http://tracker.opentrackr.org:1337/announce",
  "http://explodie.org:6969/announce",
  "http://tracker1.wasabii.com.tw:6969/announce"
]

which is not good practice since any tracker may be blocked or be abandoned at any time. Since an arbitary version of the ZeroNet client may depend on an arbitary list of trackers, the network might not be as robust as expected.


Fortunately, there is an option in the current ZeroNet client that enables support for extra tackers, --trackers_file, which can be used to load a list of trackers. The trackers_file is simply a .txt file with one tracker address in one line, and existing BT trackers could be also used as an ZeroNet tracker.

However, since most of the ZeroNet users use only the hardcoded trackers, even if one adds more trackers to the list, he will not be able to reach anything because trackers other than the hardcoded ones are just like an isolated island. Furthermore, the ZeroNet protocol is very different from the standard BitTorrent protocol (mainly .onion support). This makes it even harder to extend the list of trackers as a single user. Even with peer exchange, a user still could not load any new Zite that has not been visited by ~~him/her~~ any known peers before. (peer exchange is still a great feature that ensures known zites will at least not break down quickly after losing any of the trackers)

Especially, none of the available trackers are located in China. Since Internet connection tends to be poor in this country, this will be a problem and is currently being a big problem. As long as the tracker list is fixed, the whole network could be blocked easily by just blocking the trackers - and no new sites will ever reach any user any more.

With the --trackers_file option, we still need a lot more trackers to make this network actually work as expected -- uncencorable, permanent and robust. Would you, if possible, set up one tracker like this?

Thinking abou the risk of DDoS attack targeting public BT trackers, I sincerely doubt on the amount of available ZeroNet trackers. Anyway, from any perspective, we do really need a lot more trackers. For now, we may just try with standard BT trackers.

EDIT

A working extra tracker list from https://github.com/ngosang/trackerslist

zero://boot3rdez4rzn36x.onion:15441
zero://zero.booth.moe#f36ca555bee6ba216b14d10f38c16f7769ff064e0e37d887603548cc2e64191d:15441
udp://tracker.coppersurfer.tk:6969
udp://tracker.leechers-paradise.org:6969
udp://9.rarbg.com:2710
<http://tracker.opentrackr.org:1337/announce>
<http://explodie.org:6969/announce>
<http://tracker1.wasabii.com.tw:6969/announce>
udp://tracker.skyts.net:6969
udp://tracker.safe.moe:6969
udp://tracker.piratepublic.com:1337
udp://tracker.pirateparty.gr:6969
udp://tracker.coppersurfer.tk:6969
udp://tracker.leechers-paradise.org:6969
udp://allesanddro.de:1337
udp://9.rarbg.com:2710
<http://p4p.arenabg.com:1337/announce>
udp://p4p.arenabg.com:1337
udp://tracker.opentrackr.org:1337
<http://tracker.opentrackr.org:1337/announce>
udp://public.popcorn-tracker.org:6969
udp://tracker2.christianbro.pw:6969
udp://tracker1.xku.tv:6969
udp://tracker1.wasabii.com.tw:6969
udp://tracker.zer0day.to:1337
udp://tracker.mg64.net:6969
udp://peerfect.org:6969
udp://open.facedatabg.net:6969
udp://mgtracker.org:6969
<http://mgtracker.org:6969/announce>
udp://explodie.org:6969
<http://tracker.mg64.net:6881/announce>
<http://ipv4.tracker.harry.lu:80/announce>
udp://ipv4.tracker.harry.lu:80
<http://tracker1.wasabii.com.tw:6969/announce>
<http://tracker.torrentyorg.pl:80/announce>
udp://zephir.monocul.us:6969
udp://z.crazyhd.com:2710
udp://tracker.vanitycore.co:6969
udp://tracker.uw0.xyz:6969
udp://tracker.tvunderground.org.ru:3218
udp://tracker.torrent.eu.org:451
udp://tracker.tiny-vps.com:6969
udp://tracker.swateam.org.uk:2710
udp://tracker.kamigami.org:2710
udp://tracker.internetwarriors.net:1337
udp://tracker.halfchub.club:6969
udp://tracker.grepler.com:6969
udp://tracker.files.fm:6969
udp://tracker.dutchtracking.com:6969
udp://tracker.doko.moe:6969
udp://tracker.dler.org:6969
udp://tracker.desu.sh:6969
udp://tracker.cypherpunks.ru:6969
udp://tracker.christianbro.pw:6969
udp://tracker.bluefrog.pw:2710
udp://tracker.acg.gg:2710
udp://thetracker.org:80
udp://santost12.xyz:6969
udp://sandrotracker.biz:1337
udp://retracker.nts.su:2710
udp://retracker.lanta-net.ru:2710
udp://oscar.reyesleon.xyz:6969
udp://open.stealth.si:80
udp://inferno.demonoid.pw:3418
udp://bt.xxx-tracker.com:2710
udp://bt.aoeex.com:8000
<http://tracker.vanitycore.co:6969/announce>
<http://tracker.electro-torrent.pl:80/announce>
<http://tracker.devil-torrents.pl:80/announce>
<http://tracker.city9x.com:2710/announce>
<http://t.nyaatracker.com:80/announce>
<http://retracker.telecom.by:80/announce>
<http://retracker.mgts.by:80/announce>
<http://pt.lax.mx:80/announce>
<http://open.acgtracker.com:1096/announce>
<http://fxtt.ru:80/announce>
<http://agusiq-torrents.pl:6969/announce>
udp://wambo.club:1337
udp://trackerxyz.tk:1337
udp://tracker4.itzmx.com:2710
udp://tracker.xku.tv:6969
udp://tracker.justseed.it:1337
udp://tracker.cyberia.is:6969
udp://tc.animereactor.ru:8082
udp://packages.crunchbangplusplus.org:6969
udp://86.19.29.160:6969
udp://208.67.16.113:8000
<http://tracker2.itzmx.com:6961/announce>
<http://tracker.videodrugproject.com:80/announce>
<http://tracker.tfile.me:80/announce>
<http://torrentsmd.me:8080/announce>
<http://share.camoe.cn:8080/announce>
<http://retracker.omsk.ru:2710/announce>
<http://omg.wtftrackr.pw:1337/announce>

I added the hardcoded trackers also on the top of this list. For ArchLinux users, put this into somewhere like /var/lib/zeronet/zeronet_trackers.txt (make sure ZeroNet can read it or it would not work) and then add

trackers_file = /var/lib/zeronet/zeronet_trackers.txt

will make ZeroNet use these extra trackers.

EDIT 2

For the udp:// trackers, the /announce path should not be included or ZeroNet will fail to load these trackers. I have updated the list to remove such stuff.

Hello, world.

- Posted in Shouko's Blog by with comments

Finally, I am back on ZeroNet. From now on I will also blog on ZeroNet, without any specific focus. And, I will remember to backup my credentials this time :)

ZeroNet has changed a lot since I left last time. Most suprisingly, the user base is still growing these days. It is really pleasing to see so many people supporting the decentralization of Internet.

This is also a backup plan for me as we might experience Internet "cut off" in some areas in China. Anyway, it is possibly yet another Plan B. The best plan will always be to study abroad and work abroad, seeking for migration if possible.

That's all of my Hello World.

Congratulations!

- Posted in Shouko's Blog by with comments

My zeronet blog has been successfully created!