基于Python开发的ZeroNet,我见过的区块链落地最棒的应用
2018-03-01 19:37
1761 查看
什么是ZeroNet
ZeroNet是一个利用比特币加密和BT技术提供不受审查的网络与通信的BT平台,ZeroNet网络功能已经得到完整的种子的支持和加密连接,保证用户通信和文件共享的安全。使用ZeroNet,你可以匿名上网,你可以在自己电脑搭建网站,但即使你关机,你的网站依然在全球存在,别人无法关闭你的网站。ZeroNet是一个去中心化的类似于Internet的网络,由匈牙利的开发者使用Python制作,完全开源。网站由特殊的"ZeroNet URL"可以被使用一般的浏览器通过ZeroNet程序浏览,就像访问本地主机一样。ZeroNet默认并「不」匿名,但是用户可以通过内置的Tor功能进行匿名化。ZeroNet使用Bitcoin加密算法及BitTorrent网络。
zeroNet github的官方地址:
https://github.com/HelloZeroNet/ZeroNet
下面是其github上的官方文档ZeroNet
使用 Bitcoin 加密和 BitTorrent 网络的去中心化网络 - https://zeronet.io 为什么ZeroNet ?
我们相信开放,自由,无审查的网络不会受单点故障影响:只要有在线的节点,站点就会保持在线
无托管费用: 站点由访问者托管
无法关闭: 因为节点无处不在
快速并可离线运行: 即使没有互联网连接也可以使用
功能
实时站点更新支持 Namecoin 的 .bit 域名
安装方便: 只需解压并运行
一键克隆存在的站点
无需密码、基于 BIP32 的认证:用与比特币钱包相同的加密方法用来保护你的账户 你的账户被使用和比特币钱包相同的加密方法
内建 SQL 服务器和 P2P 数据同步: 让开发更简单并提升加载速度
匿名性: 完整的 Tor 网络支持,支持通过 .onion 隐藏服务相互连接而不是通过IPv4地址连接
TLS 加密连接
自动打开 uPnP 端口
插件和多用户 (开放式代理) 支持
全平台兼容
原理
在你运行zeronet.py后你将可以通过http://127.0.0.1:43110/{zeronet_address} (比如. http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D)。访问 zeronet 中的站点。在你浏览 zeronet 站点时,客户端会尝试通过 BitTorrent 网络来寻找可用的节点,从而下载需要的文件 (html, css, js...)
你将会储存每一个浏览过的站点
每个站点都包含一个名为 content.json ,它储存了其他所有文件的 sha512 hash 值 和一个通过站点私钥建立的签名
如果站点的所有者 (拥有私钥的那个人) 修改了站点, 并且他/她签名了新的 content.json 然后推送至其他节点, 那么所有节点将会在验证 content.json 的真实性 (使用签名)后, 下载修改后的文件并推送至其他节点。
如何加入 ?
下载 ZeroBundle 文件包:Microsoft Windows
Apple macOS
Linux 64bit
Linux 32bit
解压缩
运行
ZeroNet.exe(win),
ZeroNet(.app)(osx),
ZeroNet.sh(linux)
如何创建一个 ZeroNet 站点?
如果 zeronet 在运行,把它关掉 执行:$ zeronet.py siteCreate ... - Site private key: 23DKQpzxhbVBrAtvLEc2uvk7DZweh4qL3fn3jpM3LgHDczMK2TtYUq - Site address: 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2 ... - Site created! $ zeronet.py ...
你已经完成了! 现在任何人都可以通过
http://localhost:43110/13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2来访问你的站点
下一步: ZeroNet 开发者文档
如何评价 ZeroNet?下面这些是来自知乎上的观点
原文链接特性
无需备案:你不需要通知任何人,就能建立网站——注意,你需要把网址告诉别人。
无需审核:你的网站不会被干掉——注意,你可能被干掉;
无需服务器:你不用为了维持你的网站而长期维持服务器——注意,你需要维持用户对你的关注度;
无视防火墙:你发布或获取信息时,某些组织更难阻止你——注意,他们可以阻止你上网。
前景:请发挥你的想象力。
1、是否是革命性的创新?
有。
2、其发展前景如何?
并不能替代WWW,而且也无需替代。共存即可。
3、与传统网站相比有何优缺点?
优点:无需备案(对于国内网站来说),不用关心服务器关闭或者被审查。
缺点:网站数量多了以后,普通用户本地的数据量注定会越来越大。而且涉及私钥地址等类似比特币相关的概念,备份相关的知识还是和普通WWW网站要求的一样(你网站私钥丢了你的网站就不属于你了,不过还是存在),以后也许会被大网站的服务端采用。客户端应该是向轻量级趋势发展,类似比特币一般用户可能不会装Bitcoin Core钱包。
ZeroNe是具有革命性的。它使得WWW的去中心化又前进了一步。
WWW使用统一资源定位符( URL)将分布在世界各地的资源汇聚在一起,同时单个服务器的当机又不影响整个WWW的使用,这是一个伟大的构想,目前来看十分成功。
虽然WWW在整体上是分布式的结构,但是在具体的服务上,WWW并没有提供分布式的功能。在1990年,世界上第一台WWW服务器诞生于欧洲原子核研究委员会,服务器上被贴了个标签:“不要关掉它,这是一台服务器”。
[img]https://pic4.zhimg.com/2fecdebe3c68e07d1a357149bc3c627a_r.j随着WWW规模的扩大,某些站点的压力也越来越大,单台服务器就变为了多台服务器。在早期大多数是通过dns轮询方式避免服务器的单点故障。再后来有了反向代理技术,当客户端访问时由代理服务器挑选一台服务器给客户端连接。
另一方面,服务器与客户端的物理距离有远有近,物理远的访问就慢距离近的访问速度就快,例如中国用户访问美国服务器就比较慢。两千零几年的中国更过分,同一个城市的电信网络用户访问联通网络的服务器就很慢! 这时候google、腾讯等一些大型的服务商,开始研究CDN(Content Delivery Network,即内容分发网络),将一些内容主动推送到离用户较近的服务器,用来提升用户的访问速度。这些也是WWW的使用者在WWW之外做的优化。
回头来看:
(1) 反向代理技术避免了单点故障事实上是采用去中心化的逻辑;
(2) CDN技术提升了用户访问速度也是采用去中心化的逻辑;
(3) 大型互联网提供商的“异地多活”方案也是去中心化的逻辑;
说到这,就不得不提的另外一个具有创新性的东西,就是 , 在BT网络,每台接入设备既是服务器又是客户端, 在BT的P2P协议中,资源的发布者一旦被其他人下载并且没有关机,其他人就可以从所有具有这个资源的节点下载文件。据说在google内部已经使用Bittorrent协议来跨机房更新内容了。
那么WEB服务的去中心化是不是已经呼之欲出了?
结合bitcoin的签名技术和BitTorrent文件分享技术的访问即存储的网络,就是ZeroNet。ZeroNet并不是孤立于互联网,而是具有吞噬互联网的架势。在ZeroNet的语境中,现在的WWW服务可以称为传统互联网,ZeroNet将是它的超集,仍然可以使用域名服务(不是Namecoin和ZeroNet的ZeroID,是传统的DNS服务),仍然可以使用vps 托管你的网站。但采用ZeroNet技术,你的网站将立刻具有异地多活功能、自带N个备份、自带CDN加速功能。
虽然现在ZeroNet尚未成熟,但它的颠覆能力不可小觑。
相关文章推荐
- ASP.NET ZERO 学习 —— (19) 应用开发Demo之多租户
- ArcObjects GIS应用开发——基于C#.NET--PDF下载
- 如何开发一个基于Docker的Python 应用
- ASP.NET ZERO 学习 —— (3) 开发手册之介绍和MVC 应用前端
- cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(一)
- ASP.NET ZERO 学习 —— (11) 应用开发Demo之创建应用服务
- ASP.NET ZERO 学习 —— (10) 应用开发Demo之创建实体对象
- ASP.NET ZERO 学习 —— (17) 应用开发Demo之筛选
- Python和Google AppEngine开发基于Google架构的应用软件
- 在Visual Studio.NET 2005开发基于ASP.NET AJAX的应用
- cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(二)
- 构建基于AgileEAS.NET应用开发平台的简单应用程序
- ASP.NET ZERO 学习 —— (18) 应用开发Demo之扩展电话信息
- “软芯片”畅想-基于Python的应用软件开发框架Softchip(一)
- 区块链课堂|企业级区块链应用落地:超级账本开发实践分享(线上免费)
- ASP.NET ZERO 学习 —— (14) 应用开发Demo之新建People
- 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 应用在线演示/例子
- 基于.Net Framework的N层分布式应用开发
- ASP.NET ZERO 学习 —— (12) 应用开发Demo之测试应用服务
- 如何开发一个基于 Docker 的 Python 应用