ZeroNet Blogs

Static ZeroNet blogs mirror

What I know中文博客

告诉你 我所知道的

contentMe: gx7p99@protonmail.com

数据统计于2017年9月10日


零网现在一共有多少站点?

根据 Zirch Automated Search 的数据,2017年9月10日的时候是3492个。我自己做的ZeroIndex,上面的地址参考了Zirch Automated Search knowledge目录下的realAddress.txt,始终有一部分站点无法同步到我的ZeroIndex的服务器上,或许这些站点再也无法被访问了。准确的说,zeronet一共有3492个站点,但是现在(2017年9月10日)zeronet上有3200左右的站点是可以访问的。

零网有多少博客/论坛/视频站 等?

3000多个站点我是无法一个一个分类的,我只能用脚本筛选出有典型特征的站点 统计结果如下:

  • 1104个博客 举例: 本博客, 东先生的博客leaflet的小屋 依据: 站点的index.html中是否含有<div class="lastcomments"> 或者<title>ZeroBlog Demo</title> 这两个字符串。即,站点是否有最新评论的模块或者站点是否克隆自zeroBlog演示站。
  • 207个论坛 举例: NewGFWTalkZeroTalkGanXingQu 依据: 站点的index.html中是否有<!-- New Topic -->这一行,即站点是否有发表新主题的模块
  • 19个chan 举例:0chanCatChan女装子福利 依据: 站点的index.html是否有<title>0chan</title>这一行,或者是否有src="js/nullchan.js。即,站点是否克隆自0chan或者站点是否调用了js/nullchan.js

ZeroNet每个站点一般占用多少空间?

服务器上一共3282个站点,占用空间80G,平均每个站点占用24MB 大小超过1G的站点如下

1.2G    1DQ1aTtf6dHJfDD99PnNTrsWEddoRdudeQ
1.2G    1F7b27kT38nMYZQg7tvDr33qWDZQgwnQpw
1.2G    1JMuapWVoZWAYgty4fdo3ngopAULbCPC6i
1.2G    1NZNtZQZHQRJXafvJpmY5jgqwRaCEZMsUc
1.3G    1DaXkbpBN7d9h78T5mjB2gTV9Ui46Bjwcv
1.3G    1FygwtRQHaiZ4R6da1QMMS1W8rk23tZaUh
1.3G    1MzV32sv55VSD5Vr7u3mcMPsX2oG9PHusr
1.5G    1Gif7PqWTzVWDQ42Mo7np3zXmGAo3DXc7h
2.0G    1FiSxj2yDPeGuuf6iBwRAXvEMQJATAZNt6
3.4G    14rAzNFvLx2pCsSrXfxEm6TV28xgyf7M1e
5.5G    15T15H8M6DRe7GoQManCsSW2wz57xheC56
13G    1MusicXkuN2pk5hRdmroeyaCLDJtzTicpB

IOL一共有80G的可选文件,但是始终无法下载,我和站点的作者反应过这个问题,他告诉我我需要使用Tor到指定地点下载这80G的文件。


更新

IOL的80G文件使用zeroMail邮件联系 iol索要,iol是站点的拥有者,我同步了一点,大概200MB,看了其中一个文件,文件用的是很小众的zpaq压缩的。然鹅,解压失败了。

还有,服务器现在有点吃不消了。

其他,待续

leaflet的博客 iZero.bit

index.iZero.bit


刚刚还发现个问题,我把火狐浏览器的User-Agent改成IE浏览器的UA,然后就编辑不了博文了,但是博文的标题还是可以修改的。 看来ZeroNet对浏览器还做了限制

ZeroIndex运行log

- Posted in What I know中文博客 by with comments

上线大概两天,发现站点3100+,占用磁盘50G,输出流量20余G,产生日志1.5G


$ du -sh log/* 1.2M cmd.log 1.1G debug-last.log 393M debug.log 8.0K error.log

现在data目录76G了

keywords: 网络协议/通信安全/隐私保护/开源精神

“Arguing that you don’t care about the right to privacy because you have nothing to hide is no different than saying you don’t care about free speech because you have nothing to say.” — Edward Snowden

你说你不关心隐私权,因为你没什么好隐藏的。这无异于你在说:你不关心言论自由因为你无话可说。-- 爱德华 斯诺登


加密通讯,我觉得需要加密的东西有两个,一个是谁和谁进行了通讯,一个是通讯的内容是什么谁和谁进行了通讯 个人觉得对于大多数人而言,选用加密通讯工具的最基本的原则是:此工具不需要使用手机/身份证/邮箱等包含个人信息的东西注册。需要个人信息进行注册的服务往往都是商业性质的公司提供的,出于调试/搜集信息以投放广告等的目的,难免会收集一些信息。至于 搜集了什么信息,一般人无从知晓,因为商业公司的软件往往是不开源的,但是政府/黑客/公司内部人员是可以接触到这类数据的。如果被知晓自己与某关键人物有通信的话,有很大几率会被调查/骚扰,甚者被逼供说出通信内容。 因此,我没有把telegram和whatsapp 放在上面。 当然,可以选择通过使用假手机号/假身份证注册,但是这比较难,不适合大多数人。而且 ,你应该还知道一个东西叫做设备号,百度作业帮和小猿搜题之间的商业竞争的一些细节给了我很大启示。

通讯的内容是什么 通讯加密,就涉及算法和信任链了。一般而言,信任链的问题不大。零网可以看成是一个公告板,任何人都可以访问,但是别人无法修改你所发布的内容。把联系方式和公钥贴在零网,然后别人就可以和你加密通信了。把联系方式和公钥贴在论坛/贴吧/博客上,一般问题也不大,但是需要考虑到:1. 你使用了强加密,有关部门可能会关注你,要知道,你(大多数人)的账号可是绑定了手机的。2. 论坛/贴吧是有管理员的,管理员可以删除或者修改你所发布的信息。

待续

迁移到新VPS上了~

- Posted in What I know中文博客 by with comments

手里有两三个users.json,不知道怎么合并。

一直很好奇,1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D 这样的地址是怎么得到的,前面有个hello,后来问了nofish,他丢给了我官方手册,然后就找到方案了。


需要用到一个叫vanitygen的工具,不停地算,不停地筛选前缀。

官方手册里那个https://bitcointalk.org/index.php?topic=25804.0 链接在国内打不开,我打开后发现文章是2011年写的,可以说是非常久远了,那么文章所提到的工具也是比较落后的了,在github上搜索到了其他更快的工具。

先介绍一下比较老的vanitygen。

github项目地址是https://github.com/samr7/vanitygen 很久没更新了。下载压缩包或者用git,把文件下载下来,linux系统的话,貌似需要先

sudo apt-get install build-essential automake autoconf libtool libgmp3-dev

,进入到目录下运行make就可以了。

make后得到一个可执行文件vanitygen,用这个可执行文件跟着~~谷歌~~百度到的教程做就可以了,或者help一下


$ ./vanitygen -h Vanitygen 0.22 (OpenSSL 1.0.2g 1 Mar 2016) Usage: ./vanitygen [-vqnrik1NT] [-t <threads>] [-f <filename>|-] [<pattern>...] Generates a bitcoin receiving address matching <pattern>, and outputs the address and associated private key. The private key may be stored in a safe location or imported into a bitcoin client to spend any balance received on the address. By default, <pattern> is interpreted as an exact prefix. Options: -v Verbose output -q Quiet output -n Simulate -r Use regular expression match instead of prefix (Feasibility of expression is not checked) -i Case-insensitive prefix search -k Keep pattern and continue search after finding a match -1 Stop after first match -N Generate namecoin address -T Generate bitcoin testnet address -X <version> Generate address with the given version -F <format> Generate address with the given format (pubkey or script) -P <pubkey> Specify base public key for piecewise key generation -e Encrypt private keys, prompt for password -E <password> Encrypt private keys with <password> (UNSAFE) -t <threads> Set number of worker threads (Default: number of CPUs) -f <file> File containing list of patterns, one per line (Use "-" as the file name for stdin) -o <file> Write pattern matches to <file> -s <file> Seed random number generator from <file>

速度大约为100万每秒。

新发现

在github检索后发现 https://github.com/klynastor/supervanitygenhttps://github.com/exploitagency/vanitygen-plus 两个项目,后者在我的机器上运行不起来,报错


./vanitygen: error while loading shared libraries: libcrypto.so.1.0.2: cannot open shared object file: No such file or directory

于是就不了了之了。 前者是没问题的

sudo apt-get install build-essential automake autoconf libtool libgmp3-dev
wget <https://github.com/klynastor/supervanitygen/archive/master.zip>
unzip master.zip
cd supervanitygen-master/
make

在supervanitygen-master/ 目录下,./vanitygen可以看到帮助

Usage: ./vanitygen [options] prefix ...
Options:
  -c count  Stop after 'count' solutions; default=1
#得到count个结果后退出程序,默认得到1个结果就退出
  -i        Match case-insensitive prefixes
#忽略大小写
  -k        Keep looking for solutions indefinitely
#不停地寻找符合前缀的结果
  -q        Be quiet (report solutions in CSV format)
#安静模式,在终端输出csv列表
  -t num    Run 'num' threads; default=4
#线程数,默认4线程
  -v        Be verbose
#输出详细过程

Super Vanitygen v0.3

要得到1abcd开头的地址,就这样

 $ ./vanitygen 1abcd
Difficulty: 264104224
[3245 Kkey/s][Total 111510181][Prob 34.4%][50% in 22.0s]                      
Private Key:   L4fL3Pkao79e45hEvd8m8UYjkxW5zEGmLDpK94zz2siRsJvFRuSg
Address:       1abcdJp7juRwAFDKtVeQ7CadEyFeHAe4t

如果想要得到更多,就加-k一直输出,

$ ./vanitygen -k -q 1abc
L3HBveEwAkaktKQDpoD7v79QhBbx3ggyb299a8ssCJcYu31kKExs,1abcvCnbrSAXiHZKgHJQ4YuWEiE13o5ra
L2AtdDtaE61YvQcRpGTrM2DV3jexewFbMnUZSG3JXEi7fAEtVACt,1abcGaPDh78aMwMEqbExXVEXfZSYRJAnw
KyBLExonEboVfjViPdVuJ6jowgeSHQ8dx6tyJE6RhFAoKkuAK15H,1abci3AsbAYwWryhS5waphDc9yWBp4coF
L3pw7krRHa1f1UGDzSWQGeNZcPw7GtChCR1uP5t7m2mKqNQ4sg7v,1abcfUwJHXL7nyv6LPvFxawsyfarXR6RL
KzZnYfSZU2dydoYkfxeBcXZeuyxkDWSE6rPQnKU1CNepLcthfMBX,1abcAi1vernYsvXXP8aacvgM2Q5DPQjQu
L3JC49Vs2Z6y71hEQupyFmBSeFv3PVbkQSUyn5SGjx8pqCq5PzBB,1abcE4RqiNm5coha6PsUt58YjXZ5iqbut
L1wT387TDxRy8CR32PQD9NKAf1AqaCYLJRFkntiqeC8uioTXerJq,1abcztDJnBwjGtbUjK5NDXK86qDvunJmT
L4nFaUnR3XwMW1Mje8cFZZ941h76rdXvYpg4C9bzGEu8xk8aWpkk,1abcBP3gSPdXPQ7H2MHA5hempVuRENZpa
KzoKcQABPz2b8YAXMNaZRfAohGuoC22aa7TjYj61jpHJs2bit1Ch,1abcV5uP7ZBghrxzSVEC4Z44BZ5PNBtaG

逗号,前面的是私钥,后面是地址.其计算速度大约是旧版vanitygen 的三倍,优点是速度快,缺点是不支持正则表达式。旧版的vanitygen是支持正则表达式的。

得到私钥和地址后(以L4nFaUnR3XwMW1Mje8cFZZ941h76rdXvYpg4C9bzGEu8xk8aWpkk,1abcBP3gSPdXPQ7H2MHA5hempVuRENZpa为例),在data目录下创建一个文件夹1abcBP3gSPdXPQ7H2MHA5hempVuRENZpa,里面随意放点文件,然后在浏览器访问 https://www.zerogate.tk/1abcBP3gSPdXPQ7H2MHA5hempVuRENZpa, 拖动右上角的0,打开这是我的站点签名,输入密钥L4nFaUnR3XwMW1Mje8cFZZ941h76rdXvYpg4C9bzGEu8xk8aWpkk发布 也可以用命令

python zeronet.py siteSign 1abcBP3gSPdXPQ7H2MHA5hempVuRENZpa L4nFaUnR3XwMW1Mje8cFZZ941h76rdXvYpg4C9bzGEu8xk8aWpkk
python zeronet.py sitePublish 1abcBP3gSPdXPQ7H2MHA5hempVuRENZpa

关于计算难度

地址举例 难度 时间
1B 22 小于1秒
1Bi 1,330 小于1秒
1Bit 77,178 小于1秒
1Bitc 4,476,342 (4.48E+6) 小于10秒
1Bitco 259,627,881 (2.6E+8) 3 分钟
1Bitcoi 15,058,417,127 (1.506E+10) 3 小时
1Bitcoin 8.7339E+11 1 星期
1BitcoinE 5.0657E+13 1 年
1BitcoinEa 2.9381E+15 60 年
1BitcoinEat 1.7041E+17 3,500 年
1BitcoinEate 9.8837E+18 200,000 年
1BitcoinEater 5.7325E+20 11,700,000 年
1BitcoinEaterAddressDontSend 1.6209E+47 3.3E+33 年

我想得到1ZeroIndex开头的,会需要很多年,不过也许我运气好,两三秒就会出结果。 如果忽略大小写,那么难度就会很多,我会得到诸如1zeRoiNDex/1ZeRoindEX 的结果。

ZeroIndex/零站索引 上面所有的站点都已经加上了超链接,点击站点的标题就可以打开感兴趣的站点了。


美中不足的是,左键单击标题打开的是空白页,原因貌似是因为请求头有Referrer,我加了rel=noreferrer 还是有问题,不知为何。

鼠标悬停在标题上,右击,在新标签页打开就不会有这样的问题。

或者用鼠标中键点击标题(这需要浏览器支持),也可以正常打开。

再或者,进入data/1Ke63cWnTyqXB916hbYVh6naKUwW2xvsbd/ 这个文件夹,双击index.html ,打开后左键单击就没问题了。


现在按住Ctrl再单击标题就可以正常打开链接了。

Now, use Ctrl + LeftClick to open zites.

感谢 @leaflet 的帮助

demo_index.gif

echo 的颜色总是记不住,发现个有趣的脚本,执行了就知道哪个颜色对应什么颜色了



#!/bin/bash # This program is free software. It comes without any warranty, to # the extent permitted by applicable law. You can redistribute it # and/or modify it under the terms of the Do What The Fuck You Want # To Public License, Version 2, as published by Sam Hocevar. See # <http://sam.zoy.org/wtfpl/COPYING> for more details. #Background for clbg in {40..47} {100..107} 49 ; do #Foreground for clfg in {30..37} {90..97} 39 ; do #Formatting for attr in 0 1 2 4 5 7 ; do #Print the result echo -en "\e[${attr};${clbg};${clfg}m ^[${attr};${clbg};${clfg}m \e[0m" done echo #Newline done done exit 0

echo 颜色太多就一一不截图了

另外,我发的comments别人看不见?

一些tracker

- Posted in What I know中文博客 by with comments

最近下载magnet,发现节点很少速度也很慢,估计是transmission自带的tracker失效得差不多了,添加tracker后速度立刻就上去了23333

zeronet自带的tracker失效了的话,也可以使用。


https://newtrackon.com/list

https://github.com/ngosang/trackerslist

http://www.torrenttrackerlist.com/   #国内不可直接访问

之前有人推荐https://www.zerogate.tk/1LtvsjbtQ2tY7SCtCZzC4KhErqEK3bXD4n/ 这个站点来给新站做种,站点下方还给出了做种的方式,但是curl访问过后并不能做种,这就很可怕/滑稽了。。。

I find that curl --silent <http://$ZERO_HOST:43110/$SITE> > /dev/null provided by this site does NOT work actually, then i repaired it. Use this one curl --silent <http://$ZERO_HOST:43110/$SITE> -H "Accept: text/html" > /dev/null :-)

You can help me at github: https://github.com/freed0nn/seedzer0site/



!/bin/sh
ZERO_DIR=~/ZeroNet-master
ZERO_HOST=127.0.0.1
APP_ID=1LtvsjbtQ2tY7SCtCZzC4KhErqEK3bXD4n
NEW_SITES=sqlite3 $ZERO_DIR/data/$APP_ID/data/zerosites.db "select address from sites order by added desc limit 5;"
for SITE in $NEW_SITES; do
echo Check site $SITE
curl --silent [http://$ZERO_HOST:43110/$SITE](http://$ZERO_HOST:43110/$SITE) > /dev/null
done

curl -L <https://www.zerogate.tk/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/确实会返回一堆信息,貌似访问成功,但实际上是403了。>

$ curl -ILv <https://www.zerogate.tk/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/>
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 43110 (#0)
> HEAD /1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/ HTTP/1.1
> Host: 127.0.0.1:43110
> User-Agent: curl/7.47.0
> Accept: */*
> 
< HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
< Version: HTTP/1.1
Version: HTTP/1.1
< Connection: Keep-Alive
Connection: Keep-Alive
< Keep-Alive: max=25, timeout=30
Keep-Alive: max=25, timeout=30
< X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
< Cache-Control: no-cache, no-store, private, must-revalidate, max-age=0
Cache-Control: no-cache, no-store, private, must-revalidate, max-age=0
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< Date: Mon, 13 Aug 2017 00:06:24 GMT
Date: Mon, 13 Aug 2017 00:06:24 GMT
< Content-Length: 3749
Content-Length: 3749

< 
* Excess found in a non pipelined read: excess = 2 url = /1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/ (zero-length body)
* Connection #0 to host 127.0.0.1 left intact

而浏览器访问https://www.zerogate.tk/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/却是没问题的,经过对比,发现ZeroNet服务端对HTTP头有一定的要求,需要有Accept这一项,可能是为了让访问者选择合适的浏览器吧。 抄一下浏览器的HTTP头就可以了

$ curl <https://www.zerogate.tk/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/> -ILv -H "Accept: text/html,application/xhtml+x…lication/xml;q=0.9,*/*;q=0.8"
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 43110 (#0)
> HEAD /1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/ HTTP/1.1
> Host: 127.0.0.1:43110
> User-Agent: curl/7.47.0
> Accept: text/html,application/xhtml+x…lication/xml;q=0.9,*/*;q=0.8
> 
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Version: HTTP/1.1
Version: HTTP/1.1
< Connection: Keep-Alive
Connection: Keep-Alive
< Keep-Alive: max=25, timeout=30
Keep-Alive: max=25, timeout=30
< X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
< Cache-Control: no-cache, no-store, private, must-revalidate, max-age=0
Cache-Control: no-cache, no-store, private, must-revalidate, max-age=0
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< Date: Mon, 13 Aug 2017 00:13:06 GMT
Date: Mon, 13 Aug 2017 00:13:06 GMT
< Transfer-Encoding: chunked
Transfer-Encoding: chunked

< 
* Excess found in a non pipelined read: excess = 2663 url = /1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/ (zero-length body)
* Connection #0 to host 127.0.0.1 left intact

可以再精简一点curl 'https://www.zerogate.tk/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/' -ILv -H "Accept: text/html"

实际应用中还会出现站点不可访问的问题,我就写了个可以把各种错误记录下来的脚本。

Next shell script maybe better, which can provide kinds of information.

#!/bin/bash
if [ $# != 1 ];then
  echo "Usage: $0 URL"
  echo "Need URL like:"
  echo "  127.0.0.1:43110/13febzmumvtbnGh1o8wBeFS6XtFjP5hM1S"
  echo "  <http://192.168.15.158:43110/0web.bit">
  exit 1
fi
if [ -z "$(echo $1|grep -o '[0-9][0-9]*:[0-9]*/[a-zA-Z0-9][a-zA-Z0-9.-]*')" ];then
  echo "Wrong url"
  exit 1
fi

url="$1"
curl --retry 2 --connect-timeout 6 -m 10 -LsI -H "Accept: text/html" "$url" > _TMP
if [ -n "$(grep -a '^HTTP/1.1 200 OK' _TMP)" ];then
  echo "$url : visited"
  exit 0
elif [ -n "$(grep -a '^HTTP/1.1 403 Forbidden' _TMP)" ];then
  echo "$url : 403 Forbidden happened."|tee -a Fail.log
  exit 403
elif [ -n "$(grep -a '^HTTP/1.1 404 Not Found' _TMP)" ];then
  echo "$url : 404 Not Found."|tee -a Fail.log
  exit 404
else echo "$url : unknown fail"
fi

保存为seed.sh

$ chmod +x seed.sh
$ ./seed.sh <https://www.zerogate.tk/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/>
<https://www.zerogate.tk/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/>  : visited

用这个脚本访问站点,如果站点存在的话,后台会开始做种,如果出错的话,Fail.log里面会有出错的站点和原因。